UNPKG

@codervisor/devlog-core

Version:

Core devlog management functionality

55 lines 2.13 kB
/** * Comprehensive field change tracking utilities * Extends the existing acceptance criteria tracking to all devlog fields */ import type { DevlogEntry, DevlogNote } from '../types/core.js'; import type { ChangeRecord, FieldChange, ChangeType, ChangeSource, TrackedUpdateRequest } from '../types/change-tracking.js'; /** * Compare two values and generate a field change record */ export declare function createFieldChange(fieldName: keyof DevlogEntry, previousValue: any, newValue: any): FieldChange | null; /** * Detect all field changes between two devlog entries */ export declare function detectFieldChanges(previousEntry: DevlogEntry, updatedEntry: DevlogEntry): FieldChange[]; /** * Create a comprehensive change record */ export declare function createChangeRecord(devlogId: number, changes: FieldChange[], changeType: ChangeType, source: ChangeSource, options?: { reason?: string; sourceDetails?: string; metadata?: Record<string, any>; }): ChangeRecord; /** * Create a change tracking note from field changes */ export declare function createFieldChangeNote(changes: FieldChange[], changeRecord: ChangeRecord): Omit<DevlogNote, 'id' | 'timestamp'>; /** * Extract change tracking context from update request */ export declare function extractChangeContext(updateRequest: TrackedUpdateRequest): { source: ChangeSource; sourceDetails?: string; reason?: string; trackChanges: boolean; }; /** * Remove change tracking metadata from update request */ export declare function cleanUpdateRequest(updateRequest: TrackedUpdateRequest): any; /** * Check if a field should be tracked based on configuration */ export declare function shouldTrackField(fieldName: keyof DevlogEntry): boolean; /** * Get all trackable field names */ export declare function getTrackableFields(): (keyof DevlogEntry)[]; /** * Validate that a rollback is safe (no conflicts with newer changes) */ export declare function validateRollback(targetEntry: DevlogEntry, changesSinceTarget: ChangeRecord[]): { isValid: boolean; conflicts: string[]; }; //# sourceMappingURL=field-change-tracking.d.ts.map