UNPKG

@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
"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 * 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