@phroun/paged-buffer
Version:
High-performance buffer system for editing massive files with intelligent memory management and undo/redo capabilities
109 lines • 7.58 kB
JavaScript
;
/**
* @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
* import { PagedBuffer } from '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
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.FileChangeStrategy = exports.NotificationType = exports.BufferState = exports.BufferNotification = exports.OperationDistanceCalculator = exports.OperationDescriptor = exports.OperationPosition = exports.OperationType = exports.OperationGroup = exports.BufferOperation = exports.ExtractedContent = exports.LineOperationResult = exports.PageAddressIndex = exports.PageDescriptor = exports.MarkInfo = exports.LineInfo = exports.PageInfo = exports.MemoryPageStorage = exports.FilePageStorage = exports.PageStorage = exports.LineAndMarksManager = exports.VirtualPageManager = exports.BufferUndoSystem = exports.PagedBuffer = void 0;
const paged_buffer_1 = require("./paged-buffer");
Object.defineProperty(exports, "PagedBuffer", { enumerable: true, get: function () { return paged_buffer_1.PagedBuffer; } });
const buffer_operation_1 = require("./buffer-operation");
Object.defineProperty(exports, "BufferOperation", { enumerable: true, get: function () { return buffer_operation_1.BufferOperation; } });
Object.defineProperty(exports, "OperationType", { enumerable: true, get: function () { return buffer_operation_1.OperationType; } });
const undo_system_1 = require("./undo-system");
Object.defineProperty(exports, "BufferUndoSystem", { enumerable: true, get: function () { return undo_system_1.BufferUndoSystem; } });
Object.defineProperty(exports, "OperationGroup", { enumerable: true, get: function () { return undo_system_1.OperationGroup; } });
const page_storage_1 = require("./storage/page-storage");
Object.defineProperty(exports, "PageStorage", { enumerable: true, get: function () { return page_storage_1.PageStorage; } });
const file_page_storage_1 = require("./storage/file-page-storage");
Object.defineProperty(exports, "FilePageStorage", { enumerable: true, get: function () { return file_page_storage_1.FilePageStorage; } });
const memory_page_storage_1 = require("./storage/memory-page-storage");
Object.defineProperty(exports, "MemoryPageStorage", { enumerable: true, get: function () { return memory_page_storage_1.MemoryPageStorage; } });
const page_info_1 = require("./utils/page-info");
Object.defineProperty(exports, "PageInfo", { enumerable: true, get: function () { return page_info_1.PageInfo; } });
Object.defineProperty(exports, "LineInfo", { enumerable: true, get: function () { return page_info_1.LineInfo; } });
Object.defineProperty(exports, "MarkInfo", { enumerable: true, get: function () { return page_info_1.MarkInfo; } });
const virtual_page_manager_1 = require("./virtual-page-manager");
Object.defineProperty(exports, "VirtualPageManager", { enumerable: true, get: function () { return virtual_page_manager_1.VirtualPageManager; } });
Object.defineProperty(exports, "PageDescriptor", { enumerable: true, get: function () { return virtual_page_manager_1.PageDescriptor; } });
Object.defineProperty(exports, "PageAddressIndex", { enumerable: true, get: function () { return virtual_page_manager_1.PageAddressIndex; } });
const line_marks_manager_1 = require("./utils/line-marks-manager");
Object.defineProperty(exports, "LineAndMarksManager", { enumerable: true, get: function () { return line_marks_manager_1.LineAndMarksManager; } });
Object.defineProperty(exports, "LineOperationResult", { enumerable: true, get: function () { return line_marks_manager_1.LineOperationResult; } });
Object.defineProperty(exports, "ExtractedContent", { enumerable: true, get: function () { return line_marks_manager_1.ExtractedContent; } });
const buffer_types_1 = require("./types/buffer-types");
Object.defineProperty(exports, "BufferState", { enumerable: true, get: function () { return buffer_types_1.BufferState; } });
Object.defineProperty(exports, "FileChangeStrategy", { enumerable: true, get: function () { return buffer_types_1.FileChangeStrategy; } });
const notifications_1 = require("./types/notifications");
Object.defineProperty(exports, "NotificationType", { enumerable: true, get: function () { return notifications_1.NotificationType; } });
Object.defineProperty(exports, "BufferNotification", { enumerable: true, get: function () { return notifications_1.BufferNotification; } });
const operation_distance_1 = require("./utils/operation-distance");
Object.defineProperty(exports, "OperationPosition", { enumerable: true, get: function () { return operation_distance_1.OperationPosition; } });
Object.defineProperty(exports, "OperationDescriptor", { enumerable: true, get: function () { return operation_distance_1.OperationDescriptor; } });
Object.defineProperty(exports, "OperationDistanceCalculator", { enumerable: true, get: function () { return operation_distance_1.OperationDistanceCalculator; } });
// Default export for convenience
exports.default = {
// Core classes
PagedBuffer: paged_buffer_1.PagedBuffer,
BufferUndoSystem: undo_system_1.BufferUndoSystem,
VirtualPageManager: virtual_page_manager_1.VirtualPageManager,
LineAndMarksManager: line_marks_manager_1.LineAndMarksManager,
// Storage implementations
PageStorage: page_storage_1.PageStorage,
FilePageStorage: file_page_storage_1.FilePageStorage,
MemoryPageStorage: memory_page_storage_1.MemoryPageStorage,
// Enhanced utility classes
PageInfo: page_info_1.PageInfo,
LineInfo: page_info_1.LineInfo,
MarkInfo: page_info_1.MarkInfo,
PageDescriptor: virtual_page_manager_1.PageDescriptor,
PageAddressIndex: virtual_page_manager_1.PageAddressIndex,
LineOperationResult: line_marks_manager_1.LineOperationResult,
ExtractedContent: line_marks_manager_1.ExtractedContent,
// Operation and undo system
BufferOperation: buffer_operation_1.BufferOperation,
OperationGroup: undo_system_1.OperationGroup,
OperationType: buffer_operation_1.OperationType,
// Operation distance calculation
OperationPosition: operation_distance_1.OperationPosition,
OperationDescriptor: operation_distance_1.OperationDescriptor,
OperationDistanceCalculator: operation_distance_1.OperationDistanceCalculator,
// Notifications
BufferNotification: notifications_1.BufferNotification,
// Enums and constants
BufferState: buffer_types_1.BufferState,
NotificationType: notifications_1.NotificationType,
FileChangeStrategy: buffer_types_1.FileChangeStrategy
};
//# sourceMappingURL=index.js.map