@hocuspocus/extension-logger 2.0.6 → 2.1.0
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/dist/hocuspocus-logger.cjs +82 -82
- package/dist/hocuspocus-logger.esm.js +82 -82
- package/dist/packages/common/src/CloseEvents.d.ts +29 -29
- package/dist/packages/common/src/auth.d.ts +6 -6
- package/dist/packages/common/src/awarenessStatesToArray.d.ts +3 -3
- package/dist/packages/common/src/index.d.ts +4 -4
- package/dist/packages/common/src/types.d.ts +10 -10
- package/dist/packages/extension-database/src/Database.d.ts +30 -30
- package/dist/packages/extension-database/src/index.d.ts +1 -1
- package/dist/packages/extension-logger/src/Logger.d.ts +67 -67
- package/dist/packages/extension-logger/src/index.d.ts +1 -1
- package/dist/packages/extension-redis/src/Redis.d.ts +116 -117
- package/dist/packages/extension-redis/src/index.d.ts +1 -1
- package/dist/packages/extension-sqlite/src/SQLite.d.ts +26 -26
- package/dist/packages/extension-sqlite/src/index.d.ts +1 -1
- package/dist/packages/extension-throttle/src/index.d.ts +31 -31
- package/dist/packages/extension-webhook/src/index.d.ts +57 -57
- package/dist/packages/provider/src/EventEmitter.d.ts +9 -9
- package/dist/packages/provider/src/HocuspocusProvider.d.ts +110 -110
- package/dist/packages/provider/src/HocuspocusProviderWebsocket.d.ts +115 -115
- package/dist/packages/provider/src/IncomingMessage.d.ts +16 -16
- package/dist/packages/provider/src/MessageReceiver.d.ts +13 -13
- package/dist/packages/provider/src/MessageSender.d.ts +10 -10
- package/dist/packages/provider/src/OutgoingMessage.d.ts +9 -9
- package/dist/packages/provider/src/OutgoingMessages/AuthenticationMessage.d.ts +7 -7
- package/dist/packages/provider/src/OutgoingMessages/AwarenessMessage.d.ts +8 -8
- package/dist/packages/provider/src/OutgoingMessages/CloseMessage.d.ts +8 -8
- package/dist/packages/provider/src/OutgoingMessages/QueryAwarenessMessage.d.ts +8 -8
- package/dist/packages/provider/src/OutgoingMessages/StatelessMessage.d.ts +7 -7
- package/dist/packages/provider/src/OutgoingMessages/SyncStepOneMessage.d.ts +8 -8
- package/dist/packages/provider/src/OutgoingMessages/SyncStepTwoMessage.d.ts +8 -8
- package/dist/packages/provider/src/OutgoingMessages/UpdateMessage.d.ts +7 -7
- package/dist/packages/provider/src/TiptapCollabProvider.d.ts +11 -11
- package/dist/packages/provider/src/TiptapCollabProviderWebsocket.d.ts +11 -11
- package/dist/packages/provider/src/index.d.ts +5 -5
- package/dist/packages/provider/src/types.d.ts +84 -84
- package/dist/packages/server/src/Connection.d.ts +71 -71
- package/dist/packages/server/src/Debugger.d.ts +14 -14
- package/dist/packages/server/src/DirectConnection.d.ts +13 -0
- package/dist/packages/server/src/Document.d.ts +91 -88
- package/dist/packages/server/src/Hocuspocus.d.ts +111 -108
- package/dist/packages/server/src/IncomingMessage.d.ts +21 -21
- package/dist/packages/server/src/MessageReceiver.d.ts +12 -12
- package/dist/packages/server/src/OutgoingMessage.d.ts +20 -20
- package/dist/packages/server/src/index.d.ts +8 -8
- package/dist/packages/server/src/types.d.ts +266 -264
- package/dist/packages/transformer/src/Prosemirror.d.ts +11 -11
- package/dist/packages/transformer/src/Tiptap.d.ts +10 -10
- package/dist/packages/transformer/src/index.d.ts +3 -3
- package/dist/packages/transformer/src/types.d.ts +5 -5
- package/dist/playground/backend/src/default.d.ts +1 -1
- package/dist/playground/backend/src/express.d.ts +1 -1
- package/dist/playground/backend/src/koa.d.ts +1 -1
- package/dist/playground/backend/src/load-document.d.ts +1 -1
- package/dist/playground/backend/src/redis.d.ts +1 -1
- package/dist/playground/backend/src/slow.d.ts +1 -1
- package/dist/playground/backend/src/tiptapcollab.d.ts +1 -1
- package/dist/playground/backend/src/webhook.d.ts +1 -1
- package/dist/playground/frontend/src/main.d.ts +1 -1
- package/dist/playground/frontend/vite.config.d.ts +2 -2
- package/dist/tests/extension-database/fetch.d.ts +1 -1
- package/dist/tests/extension-logger/onListen.d.ts +1 -1
- package/dist/tests/extension-redis/closeConnections.d.ts +1 -1
- package/dist/tests/extension-redis/getConnectionCount.d.ts +1 -1
- package/dist/tests/extension-redis/getDocumentsCount.d.ts +1 -1
- package/dist/tests/extension-redis/onAwarenessChange.d.ts +1 -1
- package/dist/tests/extension-redis/onChange.d.ts +1 -1
- package/dist/tests/extension-redis/onStateless.d.ts +1 -1
- package/dist/tests/extension-redis/onStoreDocument.d.ts +1 -1
- package/dist/tests/extension-throttle/banning.d.ts +1 -1
- package/dist/tests/extension-throttle/configuration.d.ts +1 -1
- package/dist/tests/provider/observe.d.ts +1 -1
- package/dist/tests/provider/observeDeep.d.ts +1 -1
- package/dist/tests/provider/onAuthenticated.d.ts +1 -1
- package/dist/tests/provider/onAuthenticationFailed.d.ts +1 -1
- package/dist/tests/provider/onAwarenessChange.d.ts +1 -1
- package/dist/tests/provider/onAwarenessUpdate.d.ts +1 -1
- package/dist/tests/provider/onClose.d.ts +1 -1
- package/dist/tests/provider/onConnect.d.ts +1 -1
- package/dist/tests/provider/onDisconnect.d.ts +1 -1
- package/dist/tests/provider/onMessage.d.ts +1 -1
- package/dist/tests/provider/onOpen.d.ts +1 -1
- package/dist/tests/provider/onStateless.d.ts +1 -1
- package/dist/tests/provider/onSynced.d.ts +1 -1
- package/dist/tests/providerwebsocket/configuration.d.ts +1 -1
- package/dist/tests/server/address.d.ts +1 -1
- package/dist/tests/server/afterStoreDocument.d.ts +1 -1
- package/dist/tests/server/beforeBroadcastStateless.d.ts +1 -1
- package/dist/tests/server/beforeHandleMessage.d.ts +1 -1
- package/dist/tests/server/closeConnections.d.ts +1 -1
- package/dist/tests/server/getConnectionsCount.d.ts +1 -1
- package/dist/tests/server/getDocumentsCount.d.ts +1 -1
- package/dist/tests/server/getMessageLogs.d.ts +1 -1
- package/dist/tests/server/listen.d.ts +1 -1
- package/dist/tests/server/onAuthenticate.d.ts +1 -1
- package/dist/tests/server/onAwarenessUpdate.d.ts +1 -1
- package/dist/tests/server/onChange.d.ts +1 -1
- package/dist/tests/server/onClose.d.ts +1 -1
- package/dist/tests/server/onConfigure.d.ts +1 -1
- package/dist/tests/server/onConnect.d.ts +1 -1
- package/dist/tests/server/onDestroy.d.ts +1 -1
- package/dist/tests/server/onDisconnect.d.ts +1 -1
- package/dist/tests/server/onListen.d.ts +1 -1
- package/dist/tests/server/onLoadDocument.d.ts +1 -1
- package/dist/tests/server/onRequest.d.ts +1 -1
- package/dist/tests/server/onStateless.d.ts +1 -1
- package/dist/tests/server/onStoreDocument.d.ts +1 -1
- package/dist/tests/server/onUpgrade.d.ts +1 -1
- package/dist/tests/server/openDirectConnection.d.ts +1 -0
- package/dist/tests/server/requiresAuthentication.d.ts +1 -1
- package/dist/tests/server/websocketError.d.ts +1 -1
- package/dist/tests/transformer/TiptapTransformer.d.ts +1 -1
- package/dist/tests/utils/createDirectory.d.ts +1 -1
- package/dist/tests/utils/flushRedis.d.ts +1 -1
- package/dist/tests/utils/index.d.ts +9 -9
- package/dist/tests/utils/newHocuspocus.d.ts +2 -2
- package/dist/tests/utils/newHocuspocusProvider.d.ts +3 -3
- package/dist/tests/utils/newHocuspocusProviderWebsocket.d.ts +3 -3
- package/dist/tests/utils/randomInteger.d.ts +1 -1
- package/dist/tests/utils/redisConnectionSettings.d.ts +4 -4
- package/dist/tests/utils/removeDirectory.d.ts +1 -1
- package/dist/tests/utils/retryableAssertion.d.ts +2 -2
- package/dist/tests/utils/sleep.d.ts +1 -1
- package/package.json +4 -3
- package/src/index.ts +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import { MessageType, OutgoingMessageArguments } from '../types';
|
|
3
|
-
import { OutgoingMessage } from '../OutgoingMessage';
|
|
4
|
-
export declare class SyncStepOneMessage extends OutgoingMessage {
|
|
5
|
-
type: MessageType;
|
|
6
|
-
description: string;
|
|
7
|
-
get(args: Partial<OutgoingMessageArguments>): encoding.Encoder;
|
|
8
|
-
}
|
|
1
|
+
import * as encoding from 'lib0/encoding';
|
|
2
|
+
import { MessageType, OutgoingMessageArguments } from '../types.js';
|
|
3
|
+
import { OutgoingMessage } from '../OutgoingMessage.js';
|
|
4
|
+
export declare class SyncStepOneMessage extends OutgoingMessage {
|
|
5
|
+
type: MessageType;
|
|
6
|
+
description: string;
|
|
7
|
+
get(args: Partial<OutgoingMessageArguments>): encoding.Encoder;
|
|
8
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as encoding from 'lib0/encoding';
|
|
2
|
-
import { MessageType, OutgoingMessageArguments } from '../types';
|
|
3
|
-
import { OutgoingMessage } from '../OutgoingMessage';
|
|
4
|
-
export declare class SyncStepTwoMessage extends OutgoingMessage {
|
|
5
|
-
type: MessageType;
|
|
6
|
-
description: string;
|
|
7
|
-
get(args: Partial<OutgoingMessageArguments>): encoding.Encoder;
|
|
8
|
-
}
|
|
1
|
+
import * as encoding from 'lib0/encoding';
|
|
2
|
+
import { MessageType, OutgoingMessageArguments } from '../types.js';
|
|
3
|
+
import { OutgoingMessage } from '../OutgoingMessage.js';
|
|
4
|
+
export declare class SyncStepTwoMessage extends OutgoingMessage {
|
|
5
|
+
type: MessageType;
|
|
6
|
+
description: string;
|
|
7
|
+
get(args: Partial<OutgoingMessageArguments>): encoding.Encoder;
|
|
8
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { MessageType, OutgoingMessageArguments } from '../types';
|
|
2
|
-
import { OutgoingMessage } from '../OutgoingMessage';
|
|
3
|
-
export declare class UpdateMessage extends OutgoingMessage {
|
|
4
|
-
type: MessageType;
|
|
5
|
-
description: string;
|
|
6
|
-
get(args: Partial<OutgoingMessageArguments>): import("lib0/encoding").Encoder;
|
|
7
|
-
}
|
|
1
|
+
import { MessageType, OutgoingMessageArguments } from '../types.js';
|
|
2
|
+
import { OutgoingMessage } from '../OutgoingMessage.js';
|
|
3
|
+
export declare class UpdateMessage extends OutgoingMessage {
|
|
4
|
+
type: MessageType;
|
|
5
|
+
description: string;
|
|
6
|
+
get(args: Partial<OutgoingMessageArguments>): import("lib0/encoding").Encoder;
|
|
7
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { HocuspocusProvider, HocuspocusProviderConfiguration } from './HocuspocusProvider';
|
|
2
|
-
export type TiptapCollabProviderConfiguration = Required<Pick<HocuspocusProviderConfiguration, 'name'>> & Partial<HocuspocusProviderConfiguration> & AdditionalTiptapCollabProviderConfiguration;
|
|
3
|
-
export interface AdditionalTiptapCollabProviderConfiguration {
|
|
4
|
-
/**
|
|
5
|
-
* A Hocuspocus Cloud App ID, get one here: https://collab.tiptap.dev
|
|
6
|
-
*/
|
|
7
|
-
appId: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class TiptapCollabProvider extends HocuspocusProvider {
|
|
10
|
-
constructor(configuration: TiptapCollabProviderConfiguration);
|
|
11
|
-
}
|
|
1
|
+
import { HocuspocusProvider, HocuspocusProviderConfiguration } from './HocuspocusProvider.js';
|
|
2
|
+
export type TiptapCollabProviderConfiguration = Required<Pick<HocuspocusProviderConfiguration, 'name'>> & Partial<HocuspocusProviderConfiguration> & AdditionalTiptapCollabProviderConfiguration;
|
|
3
|
+
export interface AdditionalTiptapCollabProviderConfiguration {
|
|
4
|
+
/**
|
|
5
|
+
* A Hocuspocus Cloud App ID, get one here: https://collab.tiptap.dev
|
|
6
|
+
*/
|
|
7
|
+
appId: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class TiptapCollabProvider extends HocuspocusProvider {
|
|
10
|
+
constructor(configuration: TiptapCollabProviderConfiguration);
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket';
|
|
2
|
-
export type TiptapCollabProviderWebsocketConfiguration = Partial<CompleteHocuspocusProviderWebsocketConfiguration> & AdditionalTiptapCollabProviderWebsocketConfiguration;
|
|
3
|
-
export interface AdditionalTiptapCollabProviderWebsocketConfiguration {
|
|
4
|
-
/**
|
|
5
|
-
* A Hocuspocus Cloud App ID, get one here: https://collab.tiptap.dev
|
|
6
|
-
*/
|
|
7
|
-
appId: string;
|
|
8
|
-
}
|
|
9
|
-
export declare class TiptapCollabProviderWebsocket extends HocuspocusProviderWebsocket {
|
|
10
|
-
constructor(configuration: TiptapCollabProviderWebsocketConfiguration);
|
|
11
|
-
}
|
|
1
|
+
import { CompleteHocuspocusProviderWebsocketConfiguration, HocuspocusProviderWebsocket } from './HocuspocusProviderWebsocket.js';
|
|
2
|
+
export type TiptapCollabProviderWebsocketConfiguration = Partial<CompleteHocuspocusProviderWebsocketConfiguration> & AdditionalTiptapCollabProviderWebsocketConfiguration;
|
|
3
|
+
export interface AdditionalTiptapCollabProviderWebsocketConfiguration {
|
|
4
|
+
/**
|
|
5
|
+
* A Hocuspocus Cloud App ID, get one here: https://collab.tiptap.dev
|
|
6
|
+
*/
|
|
7
|
+
appId: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class TiptapCollabProviderWebsocket extends HocuspocusProviderWebsocket {
|
|
10
|
+
constructor(configuration: TiptapCollabProviderWebsocketConfiguration);
|
|
11
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './HocuspocusProvider';
|
|
2
|
-
export * from './TiptapCollabProvider';
|
|
3
|
-
export * from './TiptapCollabProviderWebsocket';
|
|
4
|
-
export * from './HocuspocusProviderWebsocket';
|
|
5
|
-
export * from './types';
|
|
1
|
+
export * from './HocuspocusProvider.js';
|
|
2
|
+
export * from './TiptapCollabProvider.js';
|
|
3
|
+
export * from './TiptapCollabProviderWebsocket.js';
|
|
4
|
+
export * from './HocuspocusProviderWebsocket.js';
|
|
5
|
+
export * from './types.js';
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Awareness } from 'y-protocols/awareness';
|
|
2
|
-
import * as Y from 'yjs';
|
|
3
|
-
import { Encoder } from 'lib0/encoding';
|
|
4
|
-
import type { Event, CloseEvent, MessageEvent } from 'ws';
|
|
5
|
-
import { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage';
|
|
6
|
-
import { AwarenessMessage } from './OutgoingMessages/AwarenessMessage';
|
|
7
|
-
import { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage';
|
|
8
|
-
import { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage';
|
|
9
|
-
import { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage';
|
|
10
|
-
import { UpdateMessage } from './OutgoingMessages/UpdateMessage';
|
|
11
|
-
import { IncomingMessage } from './IncomingMessage';
|
|
12
|
-
import { OutgoingMessage } from './OutgoingMessage';
|
|
13
|
-
export declare enum MessageType {
|
|
14
|
-
Sync = 0,
|
|
15
|
-
Awareness = 1,
|
|
16
|
-
Auth = 2,
|
|
17
|
-
QueryAwareness = 3,
|
|
18
|
-
Stateless = 5,
|
|
19
|
-
CLOSE = 7
|
|
20
|
-
}
|
|
21
|
-
export declare enum WebSocketStatus {
|
|
22
|
-
Connecting = "connecting",
|
|
23
|
-
Connected = "connected",
|
|
24
|
-
Disconnected = "disconnected"
|
|
25
|
-
}
|
|
26
|
-
export interface OutgoingMessageInterface {
|
|
27
|
-
encoder: Encoder;
|
|
28
|
-
type?: MessageType;
|
|
29
|
-
}
|
|
30
|
-
export interface OutgoingMessageArguments {
|
|
31
|
-
documentName: string;
|
|
32
|
-
token: string;
|
|
33
|
-
document: Y.Doc;
|
|
34
|
-
awareness: Awareness;
|
|
35
|
-
clients: number[];
|
|
36
|
-
states: Map<number, {
|
|
37
|
-
[key: string]: any;
|
|
38
|
-
}>;
|
|
39
|
-
update: any;
|
|
40
|
-
payload: string;
|
|
41
|
-
encoder: Encoder;
|
|
42
|
-
}
|
|
43
|
-
export interface Constructable<T> {
|
|
44
|
-
new (...args: any): T;
|
|
45
|
-
}
|
|
46
|
-
export type ConstructableOutgoingMessage = Constructable<AuthenticationMessage> | Constructable<AwarenessMessage> | Constructable<QueryAwarenessMessage> | Constructable<SyncStepOneMessage> | Constructable<SyncStepTwoMessage> | Constructable<UpdateMessage>;
|
|
47
|
-
export type onAuthenticationFailedParameters = {
|
|
48
|
-
reason: string;
|
|
49
|
-
};
|
|
50
|
-
export type onOpenParameters = {
|
|
51
|
-
event: Event;
|
|
52
|
-
};
|
|
53
|
-
export type onMessageParameters = {
|
|
54
|
-
event: MessageEvent;
|
|
55
|
-
message: IncomingMessage;
|
|
56
|
-
};
|
|
57
|
-
export type onOutgoingMessageParameters = {
|
|
58
|
-
message: OutgoingMessage;
|
|
59
|
-
};
|
|
60
|
-
export type onStatusParameters = {
|
|
61
|
-
status: WebSocketStatus;
|
|
62
|
-
};
|
|
63
|
-
export type onSyncedParameters = {
|
|
64
|
-
state: boolean;
|
|
65
|
-
};
|
|
66
|
-
export type onDisconnectParameters = {
|
|
67
|
-
event: CloseEvent;
|
|
68
|
-
};
|
|
69
|
-
export type onCloseParameters = {
|
|
70
|
-
event: CloseEvent;
|
|
71
|
-
};
|
|
72
|
-
export type onAwarenessUpdateParameters = {
|
|
73
|
-
states: StatesArray;
|
|
74
|
-
};
|
|
75
|
-
export type onAwarenessChangeParameters = {
|
|
76
|
-
states: StatesArray;
|
|
77
|
-
};
|
|
78
|
-
export type onStatelessParameters = {
|
|
79
|
-
payload: string;
|
|
80
|
-
};
|
|
81
|
-
export type StatesArray = {
|
|
82
|
-
clientId: number;
|
|
83
|
-
[key: string | number]: any;
|
|
84
|
-
}[];
|
|
1
|
+
import { Awareness } from 'y-protocols/awareness';
|
|
2
|
+
import * as Y from 'yjs';
|
|
3
|
+
import { Encoder } from 'lib0/encoding';
|
|
4
|
+
import type { Event, CloseEvent, MessageEvent } from 'ws';
|
|
5
|
+
import { AuthenticationMessage } from './OutgoingMessages/AuthenticationMessage.js';
|
|
6
|
+
import { AwarenessMessage } from './OutgoingMessages/AwarenessMessage.js';
|
|
7
|
+
import { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage.js';
|
|
8
|
+
import { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage.js';
|
|
9
|
+
import { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage.js';
|
|
10
|
+
import { UpdateMessage } from './OutgoingMessages/UpdateMessage.js';
|
|
11
|
+
import { IncomingMessage } from './IncomingMessage.js';
|
|
12
|
+
import { OutgoingMessage } from './OutgoingMessage.js';
|
|
13
|
+
export declare enum MessageType {
|
|
14
|
+
Sync = 0,
|
|
15
|
+
Awareness = 1,
|
|
16
|
+
Auth = 2,
|
|
17
|
+
QueryAwareness = 3,
|
|
18
|
+
Stateless = 5,
|
|
19
|
+
CLOSE = 7
|
|
20
|
+
}
|
|
21
|
+
export declare enum WebSocketStatus {
|
|
22
|
+
Connecting = "connecting",
|
|
23
|
+
Connected = "connected",
|
|
24
|
+
Disconnected = "disconnected"
|
|
25
|
+
}
|
|
26
|
+
export interface OutgoingMessageInterface {
|
|
27
|
+
encoder: Encoder;
|
|
28
|
+
type?: MessageType;
|
|
29
|
+
}
|
|
30
|
+
export interface OutgoingMessageArguments {
|
|
31
|
+
documentName: string;
|
|
32
|
+
token: string;
|
|
33
|
+
document: Y.Doc;
|
|
34
|
+
awareness: Awareness;
|
|
35
|
+
clients: number[];
|
|
36
|
+
states: Map<number, {
|
|
37
|
+
[key: string]: any;
|
|
38
|
+
}>;
|
|
39
|
+
update: any;
|
|
40
|
+
payload: string;
|
|
41
|
+
encoder: Encoder;
|
|
42
|
+
}
|
|
43
|
+
export interface Constructable<T> {
|
|
44
|
+
new (...args: any): T;
|
|
45
|
+
}
|
|
46
|
+
export type ConstructableOutgoingMessage = Constructable<AuthenticationMessage> | Constructable<AwarenessMessage> | Constructable<QueryAwarenessMessage> | Constructable<SyncStepOneMessage> | Constructable<SyncStepTwoMessage> | Constructable<UpdateMessage>;
|
|
47
|
+
export type onAuthenticationFailedParameters = {
|
|
48
|
+
reason: string;
|
|
49
|
+
};
|
|
50
|
+
export type onOpenParameters = {
|
|
51
|
+
event: Event;
|
|
52
|
+
};
|
|
53
|
+
export type onMessageParameters = {
|
|
54
|
+
event: MessageEvent;
|
|
55
|
+
message: IncomingMessage;
|
|
56
|
+
};
|
|
57
|
+
export type onOutgoingMessageParameters = {
|
|
58
|
+
message: OutgoingMessage;
|
|
59
|
+
};
|
|
60
|
+
export type onStatusParameters = {
|
|
61
|
+
status: WebSocketStatus;
|
|
62
|
+
};
|
|
63
|
+
export type onSyncedParameters = {
|
|
64
|
+
state: boolean;
|
|
65
|
+
};
|
|
66
|
+
export type onDisconnectParameters = {
|
|
67
|
+
event: CloseEvent;
|
|
68
|
+
};
|
|
69
|
+
export type onCloseParameters = {
|
|
70
|
+
event: CloseEvent;
|
|
71
|
+
};
|
|
72
|
+
export type onAwarenessUpdateParameters = {
|
|
73
|
+
states: StatesArray;
|
|
74
|
+
};
|
|
75
|
+
export type onAwarenessChangeParameters = {
|
|
76
|
+
states: StatesArray;
|
|
77
|
+
};
|
|
78
|
+
export type onStatelessParameters = {
|
|
79
|
+
payload: string;
|
|
80
|
+
};
|
|
81
|
+
export type StatesArray = {
|
|
82
|
+
clientId: number;
|
|
83
|
+
[key: string | number]: any;
|
|
84
|
+
}[];
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
|
-
import { IncomingMessage as HTTPIncomingMessage } from 'http';
|
|
4
|
-
import AsyncLock from 'async-lock';
|
|
5
|
-
import WebSocket from 'ws';
|
|
6
|
-
import { CloseEvent } from '@hocuspocus/common';
|
|
7
|
-
import Document from './Document';
|
|
8
|
-
import { Debugger } from './Debugger';
|
|
9
|
-
import { onStatelessPayload } from './types';
|
|
10
|
-
export declare class Connection {
|
|
11
|
-
webSocket: WebSocket;
|
|
12
|
-
context: any;
|
|
13
|
-
document: Document;
|
|
14
|
-
pingInterval: NodeJS.Timeout;
|
|
15
|
-
pongReceived: boolean;
|
|
16
|
-
request: HTTPIncomingMessage;
|
|
17
|
-
timeout: number;
|
|
18
|
-
callbacks: any;
|
|
19
|
-
socketId: string;
|
|
20
|
-
lock: AsyncLock;
|
|
21
|
-
readOnly: Boolean;
|
|
22
|
-
logger: Debugger;
|
|
23
|
-
/**
|
|
24
|
-
* Constructor.
|
|
25
|
-
*/
|
|
26
|
-
constructor(connection: WebSocket, request: HTTPIncomingMessage, document: Document, timeout: number, socketId: string, context: any, readOnly: boolean | undefined, logger: Debugger);
|
|
27
|
-
boundClose: (event?: CloseEvent) => void;
|
|
28
|
-
boundHandleMessage: (data: Uint8Array) => void;
|
|
29
|
-
boundHandlePong: () => void;
|
|
30
|
-
handlePong(): void;
|
|
31
|
-
/**
|
|
32
|
-
* Set a callback that will be triggered when the connection is closed
|
|
33
|
-
*/
|
|
34
|
-
onClose(callback: (document: Document, event?: CloseEvent) => void): Connection;
|
|
35
|
-
/**
|
|
36
|
-
* Set a callback that will be triggered when an stateless message is received
|
|
37
|
-
*/
|
|
38
|
-
onStatelessCallback(callback: (payload: onStatelessPayload) => Promise<void>): Connection;
|
|
39
|
-
/**
|
|
40
|
-
* Set a callback that will be triggered before an message is handled
|
|
41
|
-
*/
|
|
42
|
-
beforeHandleMessage(callback: (connection: Connection, update: Uint8Array) => Promise<any>): Connection;
|
|
43
|
-
/**
|
|
44
|
-
* Send the given message
|
|
45
|
-
*/
|
|
46
|
-
send(message: any): void;
|
|
47
|
-
/**
|
|
48
|
-
* Send a stateless message with payload
|
|
49
|
-
*/
|
|
50
|
-
sendStateless(payload: string): void;
|
|
51
|
-
/**
|
|
52
|
-
* Graceful wrapper around the WebSocket close method.
|
|
53
|
-
*/
|
|
54
|
-
close(event?: CloseEvent): void;
|
|
55
|
-
/**
|
|
56
|
-
* Check if pong was received and close the connection otherwise
|
|
57
|
-
* @private
|
|
58
|
-
*/
|
|
59
|
-
private check;
|
|
60
|
-
/**
|
|
61
|
-
* Send the current document awareness to the client, if any
|
|
62
|
-
* @private
|
|
63
|
-
*/
|
|
64
|
-
private sendCurrentAwareness;
|
|
65
|
-
/**
|
|
66
|
-
* Handle an incoming message
|
|
67
|
-
* @private
|
|
68
|
-
*/
|
|
69
|
-
private handleMessage;
|
|
70
|
-
}
|
|
71
|
-
export default Connection;
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { IncomingMessage as HTTPIncomingMessage } from 'http';
|
|
4
|
+
import AsyncLock from 'async-lock';
|
|
5
|
+
import WebSocket from 'ws';
|
|
6
|
+
import { CloseEvent } from '@hocuspocus/common';
|
|
7
|
+
import Document from './Document.js';
|
|
8
|
+
import { Debugger } from './Debugger.js';
|
|
9
|
+
import { onStatelessPayload } from './types.js';
|
|
10
|
+
export declare class Connection {
|
|
11
|
+
webSocket: WebSocket;
|
|
12
|
+
context: any;
|
|
13
|
+
document: Document;
|
|
14
|
+
pingInterval: NodeJS.Timeout;
|
|
15
|
+
pongReceived: boolean;
|
|
16
|
+
request: HTTPIncomingMessage;
|
|
17
|
+
timeout: number;
|
|
18
|
+
callbacks: any;
|
|
19
|
+
socketId: string;
|
|
20
|
+
lock: AsyncLock;
|
|
21
|
+
readOnly: Boolean;
|
|
22
|
+
logger: Debugger;
|
|
23
|
+
/**
|
|
24
|
+
* Constructor.
|
|
25
|
+
*/
|
|
26
|
+
constructor(connection: WebSocket, request: HTTPIncomingMessage, document: Document, timeout: number, socketId: string, context: any, readOnly: boolean | undefined, logger: Debugger);
|
|
27
|
+
boundClose: (event?: CloseEvent) => void;
|
|
28
|
+
boundHandleMessage: (data: Uint8Array) => void;
|
|
29
|
+
boundHandlePong: () => void;
|
|
30
|
+
handlePong(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Set a callback that will be triggered when the connection is closed
|
|
33
|
+
*/
|
|
34
|
+
onClose(callback: (document: Document, event?: CloseEvent) => void): Connection;
|
|
35
|
+
/**
|
|
36
|
+
* Set a callback that will be triggered when an stateless message is received
|
|
37
|
+
*/
|
|
38
|
+
onStatelessCallback(callback: (payload: onStatelessPayload) => Promise<void>): Connection;
|
|
39
|
+
/**
|
|
40
|
+
* Set a callback that will be triggered before an message is handled
|
|
41
|
+
*/
|
|
42
|
+
beforeHandleMessage(callback: (connection: Connection, update: Uint8Array) => Promise<any>): Connection;
|
|
43
|
+
/**
|
|
44
|
+
* Send the given message
|
|
45
|
+
*/
|
|
46
|
+
send(message: any): void;
|
|
47
|
+
/**
|
|
48
|
+
* Send a stateless message with payload
|
|
49
|
+
*/
|
|
50
|
+
sendStateless(payload: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Graceful wrapper around the WebSocket close method.
|
|
53
|
+
*/
|
|
54
|
+
close(event?: CloseEvent): void;
|
|
55
|
+
/**
|
|
56
|
+
* Check if pong was received and close the connection otherwise
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private check;
|
|
60
|
+
/**
|
|
61
|
+
* Send the current document awareness to the client, if any
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
private sendCurrentAwareness;
|
|
65
|
+
/**
|
|
66
|
+
* Handle an incoming message
|
|
67
|
+
* @private
|
|
68
|
+
*/
|
|
69
|
+
private handleMessage;
|
|
70
|
+
}
|
|
71
|
+
export default Connection;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export declare class Debugger {
|
|
2
|
-
logs: any[];
|
|
3
|
-
listen: boolean;
|
|
4
|
-
output: boolean;
|
|
5
|
-
enable(): void;
|
|
6
|
-
disable(): void;
|
|
7
|
-
verbose(): void;
|
|
8
|
-
quiet(): void;
|
|
9
|
-
log(message: any): this;
|
|
10
|
-
flush(): this;
|
|
11
|
-
get(): {
|
|
12
|
-
logs: any[];
|
|
13
|
-
};
|
|
14
|
-
}
|
|
1
|
+
export declare class Debugger {
|
|
2
|
+
logs: any[];
|
|
3
|
+
listen: boolean;
|
|
4
|
+
output: boolean;
|
|
5
|
+
enable(): void;
|
|
6
|
+
disable(): void;
|
|
7
|
+
verbose(): void;
|
|
8
|
+
quiet(): void;
|
|
9
|
+
log(message: any): this;
|
|
10
|
+
flush(): this;
|
|
11
|
+
get(): {
|
|
12
|
+
logs: any[];
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Document from './Document.js';
|
|
2
|
+
import type { Hocuspocus } from './Hocuspocus.js';
|
|
3
|
+
export declare class DirectConnection {
|
|
4
|
+
document: Document | null;
|
|
5
|
+
instance: Hocuspocus;
|
|
6
|
+
context: any;
|
|
7
|
+
/**
|
|
8
|
+
* Constructor.
|
|
9
|
+
*/
|
|
10
|
+
constructor(document: Document, instance: Hocuspocus, context?: any);
|
|
11
|
+
transact(transaction: (document: Document) => void): Promise<void>;
|
|
12
|
+
disconnect(): void;
|
|
13
|
+
}
|
|
@@ -1,88 +1,91 @@
|
|
|
1
|
-
import WebSocket from 'ws';
|
|
2
|
-
import { Awareness } from 'y-protocols/awareness';
|
|
3
|
-
import { Doc } from 'yjs';
|
|
4
|
-
import { mutex } from 'lib0/mutex.js';
|
|
5
|
-
import Connection from './Connection';
|
|
6
|
-
import { Debugger } from './Debugger';
|
|
7
|
-
export declare class Document extends Doc {
|
|
8
|
-
awareness: Awareness;
|
|
9
|
-
callbacks: {
|
|
10
|
-
onUpdate: (document: Document, connection: Connection, update: Uint8Array) => void;
|
|
11
|
-
beforeBroadcastStateless: (document: Document, stateless: string) => void;
|
|
12
|
-
};
|
|
13
|
-
connections: Map<WebSocket, {
|
|
14
|
-
clients: Set<any>;
|
|
15
|
-
connection: Connection;
|
|
16
|
-
}>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
import { Awareness } from 'y-protocols/awareness';
|
|
3
|
+
import { Doc } from 'yjs';
|
|
4
|
+
import { mutex } from 'lib0/mutex.js';
|
|
5
|
+
import Connection from './Connection.js';
|
|
6
|
+
import { Debugger } from './Debugger.js';
|
|
7
|
+
export declare class Document extends Doc {
|
|
8
|
+
awareness: Awareness;
|
|
9
|
+
callbacks: {
|
|
10
|
+
onUpdate: (document: Document, connection: Connection, update: Uint8Array) => void;
|
|
11
|
+
beforeBroadcastStateless: (document: Document, stateless: string) => void;
|
|
12
|
+
};
|
|
13
|
+
connections: Map<WebSocket, {
|
|
14
|
+
clients: Set<any>;
|
|
15
|
+
connection: Connection;
|
|
16
|
+
}>;
|
|
17
|
+
directConnectionsCount: number;
|
|
18
|
+
name: string;
|
|
19
|
+
mux: mutex;
|
|
20
|
+
logger: Debugger;
|
|
21
|
+
isLoading: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Constructor.
|
|
24
|
+
*/
|
|
25
|
+
constructor(name: string, logger: Debugger, yDocOptions: {});
|
|
26
|
+
/**
|
|
27
|
+
* Check if the Document is empty
|
|
28
|
+
*/
|
|
29
|
+
isEmpty(fieldName: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Merge the given document(s) into this one
|
|
32
|
+
*/
|
|
33
|
+
merge(documents: Doc | Array<Doc>): Document;
|
|
34
|
+
/**
|
|
35
|
+
* Set a callback that will be triggered when the document is updated
|
|
36
|
+
*/
|
|
37
|
+
onUpdate(callback: (document: Document, connection: Connection, update: Uint8Array) => void): Document;
|
|
38
|
+
/**
|
|
39
|
+
* Set a callback that will be triggered before a stateless message is broadcasted
|
|
40
|
+
*/
|
|
41
|
+
beforeBroadcastStateless(callback: (document: Document, stateless: string) => void): Document;
|
|
42
|
+
/**
|
|
43
|
+
* Register a connection and a set of clients on this document keyed by the
|
|
44
|
+
* underlying websocket connection
|
|
45
|
+
*/
|
|
46
|
+
addConnection(connection: Connection): Document;
|
|
47
|
+
/**
|
|
48
|
+
* Is the given connection registered on this document
|
|
49
|
+
*/
|
|
50
|
+
hasConnection(connection: Connection): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Remove the given connection from this document
|
|
53
|
+
*/
|
|
54
|
+
removeConnection(connection: Connection): Document;
|
|
55
|
+
addDirectConnection(): Document;
|
|
56
|
+
removeDirectConnection(): Document;
|
|
57
|
+
/**
|
|
58
|
+
* Get the number of active connections for this document
|
|
59
|
+
*/
|
|
60
|
+
getConnectionsCount(): number;
|
|
61
|
+
/**
|
|
62
|
+
* Get an array of registered connections
|
|
63
|
+
*/
|
|
64
|
+
getConnections(): Array<Connection>;
|
|
65
|
+
/**
|
|
66
|
+
* Get the client ids for the given connection instance
|
|
67
|
+
*/
|
|
68
|
+
getClients(connectionInstance: WebSocket): Set<any>;
|
|
69
|
+
/**
|
|
70
|
+
* Has the document awareness states
|
|
71
|
+
*/
|
|
72
|
+
hasAwarenessStates(): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Apply the given awareness update
|
|
75
|
+
*/
|
|
76
|
+
applyAwarenessUpdate(connection: Connection, update: Uint8Array): Document;
|
|
77
|
+
/**
|
|
78
|
+
* Handle an awareness update and sync changes to clients
|
|
79
|
+
* @private
|
|
80
|
+
*/
|
|
81
|
+
private handleAwarenessUpdate;
|
|
82
|
+
/**
|
|
83
|
+
* Handle an updated document and sync changes to clients
|
|
84
|
+
*/
|
|
85
|
+
private handleUpdate;
|
|
86
|
+
/**
|
|
87
|
+
* Broadcast stateless message to all connections
|
|
88
|
+
*/
|
|
89
|
+
broadcastStateless(payload: string): void;
|
|
90
|
+
}
|
|
91
|
+
export default Document;
|