recoder-code
Version:
Complete AI-powered development platform with ML model training, plugin registry, real-time collaboration, monitoring, infrastructure automation, and enterprise deployment capabilities
136 lines (135 loc) • 4.36 kB
TypeScript
/**
* Operational Transform Implementation
* Complete operational transform library for real-time collaborative editing
*/
export interface Operation {
type: 'retain' | 'insert' | 'delete';
length?: number;
text?: string;
attributes?: Record<string, any>;
}
export interface TextOperation {
ops: Operation[];
baseLength: number;
targetLength: number;
}
/**
* Convert TextOperation to JSON
*/
export declare function textOperationToJSON(operation: TextOperation): any;
/**
* Add toJSON method to TextOperation objects
*/
export declare function addToJSONMethod(operation: TextOperation): TextOperation & {
toJSON(): any;
};
/**
* Create a new TextOperation
*/
export declare function createTextOperation(): TextOperation;
/**
* Retain operation - keep existing characters
*/
export declare function retain(operation: TextOperation, length: number, attributes?: Record<string, any>): TextOperation;
/**
* Insert operation - add new text
*/
export declare function insert(operation: TextOperation, text: string, attributes?: Record<string, any>): TextOperation;
/**
* Delete operation - remove existing characters
*/
export declare function deleteOp(operation: TextOperation, length: number): TextOperation;
/**
* Apply an operation to a document
*/
export declare function apply(operation: TextOperation, document: string): string;
/**
* Transform operation A against operation B (when B was applied first)
* Returns the transformed operation A'
*/
export declare function transform(opA: TextOperation, opB: TextOperation, priority?: 'left' | 'right'): TextOperation;
/**
* Compose two operations (apply operation B after operation A)
*/
export declare function compose(opA: TextOperation, opB: TextOperation): TextOperation;
/**
* Invert an operation (create an operation that undoes this operation)
*/
export declare function invert(operation: TextOperation, document: string): TextOperation;
/**
* Create an operation from a simple text diff
*/
export declare function fromDiff(oldText: string, newText: string): TextOperation;
/**
* Validate that an operation is well-formed
*/
export declare function isValid(operation: TextOperation): boolean;
export declare class Delta {
ops: Operation[];
baseLength: number;
targetLength: number;
meta?: any;
constructor(ops?: Operation[], baseLength?: number, targetLength?: number);
static fromJSON(json: any): Delta;
toJSON(): any;
}
export type SelectionRange = {
start: {
line: number;
column: number;
};
end: {
line: number;
column: number;
};
};
export interface DocumentStateInterface {
content: string;
version: number;
operations: TextOperation[];
}
export declare class DocumentState implements DocumentStateInterface {
content: string;
version: number;
operations: TextOperation[];
constructor(content?: string, version?: number);
getContent(): string;
getRevision(): number;
applyConcurrentOperation(operation: TextOperation, baseRevision: number, userId: string): {
success: boolean;
newRevision?: number;
transformedOperation?: TextOperation;
error?: string;
};
getOperationsSince(revision: number): TextOperation[];
}
export declare class OperationalTransform {
static transform: typeof transform;
static apply: typeof apply;
static compose: typeof compose;
static invert: typeof invert;
static fromDiff: typeof fromDiff;
static isValid: typeof isValid;
}
export declare class SelectionManager {
private selections;
updateSelection(userId: string, selection: SelectionRange): void;
getSelections(): Map<string, SelectionRange>;
transformSelections(operation: TextOperation): void;
static transformSelection(selection: SelectionRange, operation: TextOperation): SelectionRange;
}
declare const _default: {
createTextOperation: typeof createTextOperation;
retain: typeof retain;
insert: typeof insert;
delete: typeof deleteOp;
apply: typeof apply;
transform: typeof transform;
compose: typeof compose;
invert: typeof invert;
fromDiff: typeof fromDiff;
isValid: typeof isValid;
OperationalTransform: typeof OperationalTransform;
SelectionManager: typeof SelectionManager;
};
export default _default;