UNPKG

@funish/basis

Version:

A unified development toolkit with CLI for package management, versioning, publishing, linting, and git hooks management for JavaScript/TypeScript projects.

179 lines (170 loc) 6.03 kB
import { B as BasisConfig, I as InitOptions, V as VersionOptions, P as PublishOptions, a as VersionUpdateResult, b as PublishResult, C as CommitMessage, G as GitConfig, c as GitConfigData, L as LintConfig } from './shared/basis.DoHZYvYm.js'; export { f as CommitMsgConfig, j as GitConfigSection, i as GitConfigValue, l as PublishConfig, g as VALID_GIT_HOOKS, h as ValidGitHook, k as VersionConfig, e as defaultConfig, d as defineBasisConfig } from './shared/basis.DoHZYvYm.js'; import * as c12 from 'c12'; import { LoadConfigOptions } from 'c12'; /** * Basis core utilities for programmatic usage * Only includes methods that provide actual value beyond simple function calls */ declare class Basis { private config; private cwd; constructor(cwd?: string); /** * Get current working directory */ getCwd(): string; /** * Set working directory and reset cached config */ setCwd(cwd: string): void; /** * Load configuration from file or cache */ getConfig(): Promise<BasisConfig>; /** * Reload configuration from file */ reloadConfig(): Promise<BasisConfig>; /** * Run complete project setup (init + git setup) */ setup(options?: InitOptions): Promise<boolean>; /** * Run complete release workflow (lint + version + publish) */ release(versionOptions?: VersionOptions, publishOptions?: PublishOptions): Promise<{ version: VersionUpdateResult; publish: PublishResult; }>; } /** * Create a new Basis instance */ declare function createBasis(cwd?: string): Basis; /** * Parse commit message into structured format */ declare function parseCommitMessage(message: string): CommitMessage | null; /** * Validate commit message against rules */ declare function validateCommitMessage(message: string, config?: GitConfig["commitMsg"]): { valid: boolean; errors: string[]; }; /** * Lint commit message from Git */ declare function lintCommitMessage(cwd?: string, config?: GitConfig["commitMsg"]): Promise<boolean>; /** * Read Git configuration from .git/config using ini parser */ declare function readGitConfig(cwd?: string): Promise<GitConfigData>; /** * Write Git configuration to .git/config using ini format */ declare function writeGitConfig(config: GitConfigData, cwd?: string): Promise<void>; /** * Setup Git configuration with backup and safe merging */ declare function setupGitConfig(cwd?: string, config?: GitConfig["config"]): Promise<boolean>; /** * Reset Git configuration with backup */ declare function resetGitConfig(cwd?: string, keepUser?: boolean, options?: { updateConfig?: boolean; }): Promise<boolean>; /** * Setup Git hooks */ declare function setupGitHooks(cwd?: string, config?: GitConfig["hooks"]): Promise<boolean>; /** * Initialize Git repository */ declare function initGitRepo(cwd?: string): Promise<boolean>; /** * Run comprehensive Git setup */ declare function setupGit(cwd?: string): Promise<boolean>; /** * Remove Git hooks */ declare function removeGitHooks(cwd?: string, hooksToRemove?: string[], options?: { updateConfig?: boolean; }): Promise<boolean>; /** * Initialize basis configuration in the current project */ declare function init(cwd?: string, options?: InitOptions): Promise<boolean>; /** * Get staged files (only existing files, not deleted ones) */ declare function getStagedFiles(): string[]; /** * Get all project files based on patterns using fast-glob */ declare function getProjectFiles(cwd: string, patterns?: string[], exclude?: string[]): Promise<string[]>; /** * Lint staged files */ declare function lintStaged(cwd?: string, config?: LintConfig["staged"]): Promise<boolean>; /** * Lint entire project using commands (similar to staged but for all project files) */ declare function lintProject(cwd?: string, config?: LintConfig["project"]): Promise<boolean>; /** * Check dependencies */ declare function lintDependencies(cwd?: string, config?: LintConfig["dependencies"], fix?: boolean): Promise<boolean>; /** * Check project structure */ declare function lintStructure(cwd?: string, config?: LintConfig["structure"], fix?: boolean): Promise<boolean>; /** * Check documentation */ declare function lintDocs(cwd?: string, config?: LintConfig["docs"], fix?: boolean): Promise<boolean>; /** * Run all lint checks */ declare function lintAll(cwd?: string, fix?: boolean): Promise<boolean>; /** * Publish package to npm registry */ declare function publishPackage(cwd: string, options?: PublishOptions): Promise<PublishResult>; /** * Update package.json version */ declare function updatePackageVersion(cwd: string, options?: VersionOptions): Promise<VersionUpdateResult>; declare function loadConfig(options?: LoadConfigOptions<BasisConfig>): Promise<c12.ResolvedConfig<BasisConfig, c12.ConfigLayerMeta>>; /** * Check if file or directory exists */ declare function fileExists(path: string): Promise<boolean>; /** * Get package manager specific commands */ declare function getPackageManagerCommands(packageManager: string): { outdated: string; audit: string; execPrefix: string; remove: string; update: string; auditFix: string; } | { outdated: string; audit: null; execPrefix: string; remove: string; update: string; auditFix: null; } | { outdated: null; audit: null; execPrefix: string; remove: null; update: null; auditFix: null; }; export { Basis, BasisConfig, CommitMessage, GitConfig, GitConfigData, InitOptions, LintConfig, PublishOptions, PublishResult, VersionOptions, VersionUpdateResult, createBasis, fileExists, getPackageManagerCommands, getProjectFiles, getStagedFiles, init, initGitRepo, lintAll, lintCommitMessage, lintDependencies, lintDocs, lintProject, lintStaged, lintStructure, loadConfig, parseCommitMessage, publishPackage, readGitConfig, removeGitHooks, resetGitConfig, setupGit, setupGitConfig, setupGitHooks, updatePackageVersion, validateCommitMessage, writeGitConfig };