UNPKG

@phroun/paged-buffer

Version:

High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities

83 lines 2.97 kB
"use strict"; /** * @fileoverview Enhanced Paged Buffer System with Line Tracking and Named Marks * @description High-performance buffer system for handling arbitrarily large files * with constant memory usage, intelligent undo/redo, robust address translation, * comprehensive line tracking, named marks support, and pluggable storage backends. * * @example * const { PagedBuffer } = require('paged-buffer-system'); * * const buffer = new PagedBuffer(); * buffer.enableUndo(); * await buffer.loadFile('large-file.txt'); * * // Basic operations * await buffer.insertBytes(100, Buffer.from('Hello')); * * // Line operations * const lineCount = await buffer.getLineCount(); * const lineInfo = await buffer.getLineInfo(5); // Get info about line 5 * * // Named marks * buffer.setMark('bookmark1', 100); * const bookmarkPos = buffer.getMark('bookmark1'); * const allMarks = buffer.getAllMarks(); * * // Enhanced operations with marks * const result = await buffer.getBytes(0, 100, true); // Include marks * await buffer.insertBytes(50, Buffer.from('text'), [ * { name: 'mark1', relativeOffset: 0 }, * { name: 'mark2', relativeOffset: 4 } * ]); * * @author Jeffrey R. Day * @version 2.2.0 */ const { PagedBuffer } = require('./paged-buffer'); const { BufferUndoSystem, BufferOperation, OperationGroup, OperationType } = require('./undo-system'); const { PageStorage } = require('./storage/page-storage'); const { FilePageStorage } = require('./storage/file-page-storage'); const { MemoryPageStorage } = require('./storage/memory-page-storage'); const { PageInfo, LineInfo, MarkInfo } = require('./utils/page-info'); const { VirtualPageManager, PageDescriptor, PageAddressIndex } = require('./virtual-page-manager'); const { LineAndMarksManager, LineOperationResult, ExtractedContent } = require('./utils/line-marks-manager'); const { BufferState, FileChangeStrategy } = require('./types/buffer-types'); const { NotificationType, BufferNotification } = require('./types/notifications'); const { OperationPosition, OperationDescriptor, OperationDistanceCalculator } = require('./utils/operation-distance'); module.exports = { // Core classes PagedBuffer, BufferUndoSystem, VirtualPageManager, LineAndMarksManager, // Storage implementations PageStorage, FilePageStorage, MemoryPageStorage, // Enhanced utility classes PageInfo, LineInfo, MarkInfo, PageDescriptor, PageAddressIndex, LineOperationResult, ExtractedContent, // Operation and undo system BufferOperation, OperationGroup, OperationType, // Operation distance calculation OperationPosition, OperationDescriptor, OperationDistanceCalculator, // Notifications BufferNotification, // Enums and constants BufferState, NotificationType, FileChangeStrategy }; // For CommonJS compatibility module.exports.default = module.exports; //# sourceMappingURL=index.js.map