@hereugo/open-collaboration-monaco 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -0
- package/lib/collaboration-connection.d.ts +10 -0
- package/lib/collaboration-connection.d.ts.map +1 -0
- package/lib/collaboration-connection.js +64 -0
- package/lib/collaboration-connection.js.map +1 -0
- package/lib/collaboration-instance.d.ts +98 -0
- package/lib/collaboration-instance.d.ts.map +1 -0
- package/lib/collaboration-instance.js +606 -0
- package/lib/collaboration-instance.js.map +1 -0
- package/lib/collaboration-peer.d.ts +19 -0
- package/lib/collaboration-peer.d.ts.map +1 -0
- package/lib/collaboration-peer.js +113 -0
- package/lib/collaboration-peer.js.map +1 -0
- package/lib/example.d.ts +2 -0
- package/lib/example.d.ts.map +1 -0
- package/lib/example.js +84 -0
- package/lib/example.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/lib/monaco-api.d.ts +49 -0
- package/lib/monaco-api.d.ts.map +1 -0
- package/lib/monaco-api.js +168 -0
- package/lib/monaco-api.js.map +1 -0
- package/lib/types.d.ts +4 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +7 -0
- package/lib/types.js.map +1 -0
- package/package.json +75 -0
- package/src/collaboration-connection.ts +69 -0
- package/src/collaboration-instance.ts +688 -0
- package/src/collaboration-peer.ts +133 -0
- package/src/example.ts +96 -0
- package/src/index.ts +11 -0
- package/src/monaco-api.ts +235 -0
- package/src/types.ts +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# open-collaboration-monaco
|
|
2
|
+
|
|
3
|
+
A TypeScript library that enables real-time collaborative editing in Monaco Editor.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This package provides a seamless integration between Monaco Editor and real-time collaboration features, allowing multiple users to edit code simultaneously with features like:
|
|
8
|
+
- Real-time cursor and selection sharing
|
|
9
|
+
- User presence indicators
|
|
10
|
+
- User following
|
|
11
|
+
- Room-based collaboration
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install open-collaboration-monaco
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## API Reference
|
|
20
|
+
|
|
21
|
+
### Methods
|
|
22
|
+
|
|
23
|
+
#### Room Management
|
|
24
|
+
- `createRoom()`: Creates a new collaboration room and returns the room token
|
|
25
|
+
- `joinRoom(roomToken)`: Joins an existing room using the provided token
|
|
26
|
+
|
|
27
|
+
#### User Management
|
|
28
|
+
- `login()`: Authenticates the user and returns the user token
|
|
29
|
+
- `isLoggedIn()`: Checks if the user is currently authenticated
|
|
30
|
+
- `getUserData()`: Retrieves the current user's data
|
|
31
|
+
|
|
32
|
+
#### Editor Integration
|
|
33
|
+
- `setEditor(editor)`: Connects a Monaco Editor instance to the collaboration features
|
|
34
|
+
|
|
35
|
+
#### Collaboration Features
|
|
36
|
+
- `onUsersChanged(evt)`: Registers a callback for user presence changes
|
|
37
|
+
- `followUser(id?)`: Sets the user to follow (pass undefined to stop following)
|
|
38
|
+
- `getFollowedUser()`: Returns the ID of the currently followed user
|
|
39
|
+
|
|
40
|
+
## Configuration Options
|
|
41
|
+
|
|
42
|
+
The `MonacoCollabApi` constructor accepts the following options:
|
|
43
|
+
|
|
44
|
+
### Required Options
|
|
45
|
+
|
|
46
|
+
- `serverUrl`: The URL of your collaboration server. This is where the API will connect to for real-time communication.
|
|
47
|
+
- `callbacks`: An object containing callback functions for various events. See the Callbacks section below for details.
|
|
48
|
+
|
|
49
|
+
### Optional Options
|
|
50
|
+
|
|
51
|
+
- `userToken`: If you already have a user authentication token, you can provide it here to skip the login process.
|
|
52
|
+
- `roomToken`: If you want to join a specific room immediately, provide the room token here.
|
|
53
|
+
- `loginPageOpener`: A custom function to handle the opening of the login page. This is useful if you need to customize how the login flow works in your application.
|
|
54
|
+
|
|
55
|
+
## Usage Example
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import { MonacoCollabApi } from 'open-collaboration-monaco';
|
|
59
|
+
|
|
60
|
+
// Initialize the API
|
|
61
|
+
const collabApi = new MonacoCollabApi({
|
|
62
|
+
serverUrl: 'https://your-collab-server.com',
|
|
63
|
+
callbacks: {
|
|
64
|
+
onUserRequestsAccess: ...
|
|
65
|
+
},
|
|
66
|
+
loginPageOpener: (url, token) => {
|
|
67
|
+
// Custom login page handling
|
|
68
|
+
window.open(url, '_blank');
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Create or join a room
|
|
73
|
+
const roomToken = await collabApi.createRoom();
|
|
74
|
+
|
|
75
|
+
// Set up your Monaco editor
|
|
76
|
+
const editor = monaco.editor.create(/* ... */);
|
|
77
|
+
collabApi.setEditor(editor);
|
|
78
|
+
|
|
79
|
+
// Handle user changes
|
|
80
|
+
collabApi.onUsersChanged((event) => {
|
|
81
|
+
console.log('Users in room:', event.users);
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## License
|
|
86
|
+
|
|
87
|
+
MIT License - see LICENSE file for details
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ConnectionProvider, CreateRoomResponse, JoinRoomResponse } from '@hereugo/open-collaboration-protocol';
|
|
2
|
+
import { CollaborationInstance } from './collaboration-instance.js';
|
|
3
|
+
import { MonacoCollabCallbacks } from './monaco-api.js';
|
|
4
|
+
export declare function login(connectionProvider: ConnectionProvider): Promise<void>;
|
|
5
|
+
export declare function createRoom(connectionProvider: ConnectionProvider, callbacks: MonacoCollabCallbacks): Promise<CollaborationInstance | undefined>;
|
|
6
|
+
export declare function joinRoom(connectionProvider: ConnectionProvider, callbacks: MonacoCollabCallbacks, roomId?: string): Promise<CollaborationInstance | {
|
|
7
|
+
message: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function connectToRoom(connectionProvider: ConnectionProvider, roomClaim: CreateRoomResponse | JoinRoomResponse, isHost: boolean, callbacks: MonacoCollabCallbacks): Promise<CollaborationInstance>;
|
|
10
|
+
//# sourceMappingURL=collaboration-connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-connection.d.ts","sourceRoot":"","sources":["../src/collaboration-connection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAkB,MAAM,sCAAsC,CAAC;AAChI,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,wBAAsB,KAAK,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKjF;AAED,wBAAsB,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAYrJ;AAED,wBAAsB,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAsB5K;AAED,wBAAsB,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,GAAG,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,kCAa9K"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// ******************************************************************************
|
|
2
|
+
// Copyright 2024 TypeFox GmbH
|
|
3
|
+
// This program and the accompanying materials are made available under the
|
|
4
|
+
// terms of the MIT License, which is available in the project root.
|
|
5
|
+
// ******************************************************************************
|
|
6
|
+
import { stringifyError } from '@hereugo/open-collaboration-protocol';
|
|
7
|
+
import { CollaborationInstance } from './collaboration-instance.js';
|
|
8
|
+
export async function login(connectionProvider) {
|
|
9
|
+
const valid = await connectionProvider.validate();
|
|
10
|
+
if (!valid) {
|
|
11
|
+
await connectionProvider.login({});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export async function createRoom(connectionProvider, callbacks) {
|
|
15
|
+
if (!connectionProvider) {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const roomClaim = await connectionProvider.createRoom({ reporter: callbacks.statusReporter });
|
|
19
|
+
if (roomClaim.loginToken) {
|
|
20
|
+
const userToken = roomClaim.loginToken;
|
|
21
|
+
console.log('User Token:', userToken);
|
|
22
|
+
}
|
|
23
|
+
console.log('Room ID:', roomClaim.roomId);
|
|
24
|
+
return await connectToRoom(connectionProvider, roomClaim, true, callbacks);
|
|
25
|
+
}
|
|
26
|
+
export async function joinRoom(connectionProvider, callbacks, roomId) {
|
|
27
|
+
if (!roomId) {
|
|
28
|
+
console.log('No room ID provided');
|
|
29
|
+
// TODO show input box to enter the room ID
|
|
30
|
+
// roomId = await vscode.window.showInputBox({ placeHolder: 'Enter the room ID' })
|
|
31
|
+
}
|
|
32
|
+
if (roomId && connectionProvider) {
|
|
33
|
+
try {
|
|
34
|
+
const roomClaim = await connectionProvider.joinRoom({ roomId, reporter: callbacks.statusReporter });
|
|
35
|
+
const instance = await connectToRoom(connectionProvider, roomClaim, false, callbacks);
|
|
36
|
+
if (!instance) {
|
|
37
|
+
console.log('No collaboration instance found');
|
|
38
|
+
return { message: 'Joining room failed' };
|
|
39
|
+
}
|
|
40
|
+
const workspace = roomClaim.workspace;
|
|
41
|
+
console.log('Workspace:', workspace);
|
|
42
|
+
return instance;
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return { message: stringifyError(error) };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return { message: 'No room ID provided' };
|
|
49
|
+
}
|
|
50
|
+
export async function connectToRoom(connectionProvider, roomClaim, isHost, callbacks) {
|
|
51
|
+
const host = 'host' in roomClaim ? roomClaim.host : undefined;
|
|
52
|
+
const connection = await connectionProvider.connect(roomClaim.roomToken, host);
|
|
53
|
+
const instance = new CollaborationInstance({
|
|
54
|
+
connection,
|
|
55
|
+
host: isHost,
|
|
56
|
+
callbacks,
|
|
57
|
+
roomClaim
|
|
58
|
+
});
|
|
59
|
+
connection.onDisconnect(() => {
|
|
60
|
+
instance?.dispose();
|
|
61
|
+
});
|
|
62
|
+
return instance;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=collaboration-connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-connection.js","sourceRoot":"","sources":["../src/collaboration-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Deferred, DisposableCollection, ProtocolBroadcastConnection } from '@hereugo/open-collaboration-protocol';
|
|
2
|
+
import * as Y from 'yjs';
|
|
3
|
+
import * as monaco from 'monaco-editor';
|
|
4
|
+
import * as awarenessProtocol from 'y-protocols/awareness';
|
|
5
|
+
import * as types from '@hereugo/open-collaboration-protocol';
|
|
6
|
+
import { OpenCollaborationYjsProvider } from '@hereugo/open-collaboration-yjs';
|
|
7
|
+
import { MonacoCollabCallbacks } from './monaco-api.js';
|
|
8
|
+
import { DisposablePeer } from './collaboration-peer.js';
|
|
9
|
+
export type UsersChangeEvent = () => void;
|
|
10
|
+
export type FileNameChangeEvent = (fileName: string) => void;
|
|
11
|
+
export interface Disposable {
|
|
12
|
+
dispose(): void;
|
|
13
|
+
}
|
|
14
|
+
export interface CollaborationInstanceOptions {
|
|
15
|
+
connection: ProtocolBroadcastConnection;
|
|
16
|
+
host: boolean;
|
|
17
|
+
callbacks: MonacoCollabCallbacks;
|
|
18
|
+
editor?: monaco.editor.IStandaloneCodeEditor;
|
|
19
|
+
roomClaim: types.CreateRoomResponse | types.JoinRoomResponse;
|
|
20
|
+
}
|
|
21
|
+
export declare class CollaborationInstance implements Disposable {
|
|
22
|
+
protected options: CollaborationInstanceOptions;
|
|
23
|
+
protected readonly yjs: Y.Doc;
|
|
24
|
+
protected readonly yjsAwareness: awarenessProtocol.Awareness;
|
|
25
|
+
protected readonly yjsProvider: OpenCollaborationYjsProvider;
|
|
26
|
+
protected readonly yjsMutex: import("lib0/mutex").mutex;
|
|
27
|
+
protected readonly identity: Deferred<types.Peer>;
|
|
28
|
+
protected readonly documentDisposables: Map<string, DisposableCollection>;
|
|
29
|
+
protected readonly peers: Map<string, DisposablePeer>;
|
|
30
|
+
protected readonly throttles: Map<string, () => void>;
|
|
31
|
+
protected readonly decorations: Map<DisposablePeer, monaco.editor.IEditorDecorationsCollection>;
|
|
32
|
+
protected readonly usersChangedCallbacks: UsersChangeEvent[];
|
|
33
|
+
protected readonly fileNameChangeCallbacks: FileNameChangeEvent[];
|
|
34
|
+
protected _permissions: types.Permissions;
|
|
35
|
+
protected effectiveReadonly: boolean;
|
|
36
|
+
protected currentPath?: string;
|
|
37
|
+
protected stopPropagation: boolean;
|
|
38
|
+
protected _following?: string;
|
|
39
|
+
protected _fileName: string;
|
|
40
|
+
protected previousFileName?: string;
|
|
41
|
+
protected _workspaceName: string;
|
|
42
|
+
protected connection: ProtocolBroadcastConnection;
|
|
43
|
+
get following(): string | undefined;
|
|
44
|
+
get connectedUsers(): DisposablePeer[];
|
|
45
|
+
get ownUserData(): Promise<types.Peer>;
|
|
46
|
+
get isHost(): boolean;
|
|
47
|
+
get host(): types.Peer | undefined;
|
|
48
|
+
get roomId(): string;
|
|
49
|
+
get fileName(): string;
|
|
50
|
+
get workspaceName(): string;
|
|
51
|
+
set workspaceName(_workspaceName: string);
|
|
52
|
+
/**
|
|
53
|
+
* access token for the room. allow to join or reconnect as host
|
|
54
|
+
*/
|
|
55
|
+
get roomToken(): string;
|
|
56
|
+
onUsersChanged(callback: UsersChangeEvent): void;
|
|
57
|
+
onFileNameChange(callback: FileNameChangeEvent): void;
|
|
58
|
+
constructor(options: CollaborationInstanceOptions);
|
|
59
|
+
private setupConnectionHandlers;
|
|
60
|
+
private applyPermissionsUpdate;
|
|
61
|
+
private updateEditorReadonly;
|
|
62
|
+
private setupFileSystemHandlers;
|
|
63
|
+
private handleReadFile;
|
|
64
|
+
private handleStat;
|
|
65
|
+
private handleReaddir;
|
|
66
|
+
private handleFileChange;
|
|
67
|
+
private notifyUsersChanged;
|
|
68
|
+
private notifyFileNameChanged;
|
|
69
|
+
setEditor(editor: monaco.editor.IStandaloneCodeEditor): void;
|
|
70
|
+
setFileName(fileName: string): Promise<void>;
|
|
71
|
+
dispose(): void;
|
|
72
|
+
leaveRoom(): void;
|
|
73
|
+
getCurrentConnection(): ProtocolBroadcastConnection;
|
|
74
|
+
protected pushDocumentDisposable(path: string, disposable: Disposable): void;
|
|
75
|
+
protected registerEditorEvents(): void;
|
|
76
|
+
followUser(id?: string): void;
|
|
77
|
+
protected updateFollow(): void;
|
|
78
|
+
protected followSelection(selection: types.ClientTextSelection): Promise<void>;
|
|
79
|
+
protected updateTextSelection(editor: monaco.editor.IStandaloneCodeEditor): void;
|
|
80
|
+
protected registerTextDocument(document: monaco.editor.ITextModel): Promise<void>;
|
|
81
|
+
protected registerTextObserver(path: string, document: monaco.editor.ITextModel, yjsText: Y.Text): void;
|
|
82
|
+
protected updateDocument(document: monaco.editor.ITextModel, edits: monaco.editor.IIdentifiedSingleEditOperation[]): void;
|
|
83
|
+
private createEditsFromTextEvent;
|
|
84
|
+
protected updateTextDocument(event: monaco.editor.IModelContentChangedEvent, document: monaco.editor.ITextModel): void;
|
|
85
|
+
protected getOrCreateThrottle(path: string, document: monaco.editor.ITextModel): () => void;
|
|
86
|
+
private updateDocumentContent;
|
|
87
|
+
protected rerenderPresence(): void;
|
|
88
|
+
protected setDecorations(peer: DisposablePeer, decorations: monaco.editor.IModelDeltaDecoration[]): void;
|
|
89
|
+
protected setSharedSelection(selection?: types.ClientSelection): void;
|
|
90
|
+
protected updateSelectionPath(newPath: string): void;
|
|
91
|
+
protected createSelectionFromRelative(selection: types.RelativeTextSelection, model: monaco.editor.ITextModel): monaco.Selection | undefined;
|
|
92
|
+
protected getHostPath(path: string): string;
|
|
93
|
+
initialize(data: types.InitData): Promise<void>;
|
|
94
|
+
getProtocolPath(uri?: monaco.Uri): string | undefined;
|
|
95
|
+
getResourceUri(path?: string): monaco.Uri | undefined;
|
|
96
|
+
readFile(): Promise<string>;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=collaboration-instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaboration-instance.d.ts","sourceRoot":"","sources":["../src/collaboration-instance.ts"],"names":[],"mappings":"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"}
|