@hocuspocus/provider 2.15.2 → 3.0.4-rc.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-provider.cjs +931 -1532
- package/dist/hocuspocus-provider.cjs.map +1 -1
- package/dist/hocuspocus-provider.esm.js +931 -1527
- package/dist/hocuspocus-provider.esm.js.map +1 -1
- package/dist/packages/extension-database/src/Database.d.ts +1 -1
- package/dist/packages/extension-logger/src/Logger.d.ts +1 -1
- package/dist/packages/extension-redis/src/Redis.d.ts +4 -3
- package/dist/packages/extension-sqlite/src/SQLite.d.ts +2 -1
- package/dist/packages/extension-throttle/src/index.d.ts +2 -2
- package/dist/packages/extension-webhook/src/index.d.ts +3 -3
- package/dist/packages/provider/src/HocuspocusProvider.d.ts +12 -45
- package/dist/packages/provider/src/HocuspocusProviderWebsocket.d.ts +5 -9
- package/dist/packages/provider/src/IncomingMessage.d.ts +3 -3
- package/dist/packages/provider/src/MessageReceiver.d.ts +2 -4
- package/dist/packages/provider/src/MessageSender.d.ts +2 -2
- package/dist/packages/provider/src/OutgoingMessage.d.ts +2 -2
- package/dist/packages/provider/src/OutgoingMessages/AuthenticationMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/AwarenessMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/CloseMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/QueryAwarenessMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/StatelessMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/SyncStepOneMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/SyncStepTwoMessage.d.ts +2 -1
- package/dist/packages/provider/src/OutgoingMessages/UpdateMessage.d.ts +2 -1
- package/dist/packages/provider/src/index.d.ts +0 -2
- package/dist/packages/provider/src/types.d.ts +12 -12
- package/dist/packages/server/src/ClientConnection.d.ts +19 -10
- package/dist/packages/server/src/Connection.d.ts +7 -23
- package/dist/packages/server/src/DirectConnection.d.ts +2 -2
- package/dist/packages/server/src/Document.d.ts +3 -7
- package/dist/packages/server/src/Hocuspocus.d.ts +7 -36
- package/dist/packages/server/src/IncomingMessage.d.ts +3 -3
- package/dist/packages/server/src/MessageReceiver.d.ts +4 -6
- package/dist/packages/server/src/OutgoingMessage.d.ts +4 -3
- package/dist/packages/server/src/Server.d.ts +23 -3
- package/dist/packages/server/src/index.d.ts +1 -1
- package/dist/packages/server/src/types.d.ts +15 -29
- package/dist/packages/server/src/util/getParameters.d.ts +1 -1
- package/dist/packages/transformer/src/Prosemirror.d.ts +1 -1
- package/dist/packages/transformer/src/Tiptap.d.ts +3 -3
- package/dist/packages/transformer/src/types.d.ts +1 -1
- package/dist/tests/utils/newHocuspocus.d.ts +2 -2
- package/dist/tests/utils/newHocuspocusProvider.d.ts +2 -2
- package/dist/tests/utils/newHocuspocusProviderWebsocket.d.ts +4 -3
- package/dist/tests/utils/retryableAssertion.d.ts +1 -1
- package/package.json +2 -2
- package/src/EventEmitter.ts +3 -1
- package/src/HocuspocusProvider.ts +74 -200
- package/src/HocuspocusProviderWebsocket.ts +24 -75
- package/src/IncomingMessage.ts +5 -3
- package/src/MessageReceiver.ts +20 -19
- package/src/MessageSender.ts +3 -2
- package/src/OutgoingMessage.ts +3 -2
- package/src/OutgoingMessages/AuthenticationMessage.ts +2 -1
- package/src/OutgoingMessages/AwarenessMessage.ts +2 -1
- package/src/OutgoingMessages/CloseMessage.ts +2 -1
- package/src/OutgoingMessages/QueryAwarenessMessage.ts +2 -1
- package/src/OutgoingMessages/StatelessMessage.ts +2 -1
- package/src/OutgoingMessages/SyncStepOneMessage.ts +2 -1
- package/src/OutgoingMessages/SyncStepTwoMessage.ts +2 -1
- package/src/OutgoingMessages/UpdateMessage.ts +2 -1
- package/src/index.ts +0 -2
- package/src/types.ts +12 -12
- package/dist/packages/provider/src/TiptapCollabProvider.d.ts +0 -161
- package/dist/packages/provider/src/TiptapCollabProviderWebsocket.d.ts +0 -19
- package/dist/packages/server/src/Debugger.d.ts +0 -14
- package/dist/tests/server/getMessageLogs.d.ts +0 -1
- package/dist/tests/server/requiresAuthentication.d.ts +0 -1
- package/src/TiptapCollabProvider.ts +0 -505
- package/src/TiptapCollabProviderWebsocket.ts +0 -38
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import Connection from './Connection.js';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { IncomingMessage } from './IncomingMessage.js';
|
|
1
|
+
import type Connection from './Connection.js';
|
|
2
|
+
import type Document from './Document.js';
|
|
3
|
+
import type { IncomingMessage } from './IncomingMessage.js';
|
|
5
4
|
export declare class MessageReceiver {
|
|
6
5
|
message: IncomingMessage;
|
|
7
|
-
logger: Debugger;
|
|
8
6
|
defaultTransactionOrigin?: string;
|
|
9
|
-
constructor(message: IncomingMessage,
|
|
7
|
+
constructor(message: IncomingMessage, defaultTransactionOrigin?: string);
|
|
10
8
|
apply(document: Document, connection?: Connection, reply?: (message: Uint8Array) => void): void;
|
|
11
9
|
readSyncMessage(message: IncomingMessage, document: Document, connection?: Connection, reply?: (message: Uint8Array) => void, requestFirstSync?: boolean): 0 | 1 | 2;
|
|
12
10
|
applyQueryAwarenessMessage(document: Document, reply?: (message: Uint8Array) => void): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Encoder } from 'lib0/encoding';
|
|
2
|
-
import { Awareness } from 'y-protocols/awareness';
|
|
3
|
-
import Document from './Document.js';
|
|
1
|
+
import type { Encoder } from 'lib0/encoding';
|
|
2
|
+
import type { Awareness } from 'y-protocols/awareness';
|
|
3
|
+
import type Document from './Document.js';
|
|
4
4
|
export declare class OutgoingMessage {
|
|
5
5
|
encoder: Encoder;
|
|
6
6
|
type?: number;
|
|
@@ -17,5 +17,6 @@ export declare class OutgoingMessage {
|
|
|
17
17
|
writeStateless(payload: string): OutgoingMessage;
|
|
18
18
|
writeBroadcastStateless(payload: string): OutgoingMessage;
|
|
19
19
|
writeSyncStatus(updateSaved: boolean): OutgoingMessage;
|
|
20
|
+
writeCloseMessage(reason: string): OutgoingMessage;
|
|
20
21
|
toUint8Array(): Uint8Array;
|
|
21
22
|
}
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { IncomingMessage, Server as HTTPServer, ServerResponse } from 'http';
|
|
3
|
-
import {
|
|
2
|
+
import type { IncomingMessage, Server as HTTPServer, ServerResponse } from 'http';
|
|
3
|
+
import { WebSocketServer } from 'ws';
|
|
4
|
+
import type { AddressInfo, ServerOptions } from 'ws';
|
|
4
5
|
import { Hocuspocus } from './Hocuspocus.js';
|
|
6
|
+
import type { Configuration } from './types';
|
|
7
|
+
export interface ServerConfiguration extends Configuration {
|
|
8
|
+
port?: number;
|
|
9
|
+
address?: string;
|
|
10
|
+
stopOnSignals?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const defaultServerConfiguration: {
|
|
13
|
+
port: number;
|
|
14
|
+
address: string;
|
|
15
|
+
stopOnSignals: boolean;
|
|
16
|
+
};
|
|
5
17
|
export declare class Server {
|
|
6
18
|
httpServer: HTTPServer;
|
|
7
19
|
webSocketServer: WebSocketServer;
|
|
8
20
|
hocuspocus: Hocuspocus;
|
|
9
|
-
|
|
21
|
+
configuration: ServerConfiguration;
|
|
22
|
+
constructor(configuration?: Partial<ServerConfiguration>, websocketOptions?: ServerOptions);
|
|
10
23
|
setupWebsocketConnection: () => void;
|
|
11
24
|
setupHttpUpgrade: () => void;
|
|
12
25
|
requestHandler: (request: IncomingMessage, response: ServerResponse) => Promise<void>;
|
|
26
|
+
listen(port?: number, callback?: any): Promise<Hocuspocus>;
|
|
27
|
+
get address(): AddressInfo;
|
|
28
|
+
destroy(): Promise<any>;
|
|
29
|
+
get URL(): string;
|
|
30
|
+
get webSocketURL(): string;
|
|
31
|
+
get httpURL(): string;
|
|
32
|
+
private showStartScreen;
|
|
13
33
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * from './Connection.js';
|
|
2
|
-
export * from './Debugger.js';
|
|
3
2
|
export * from './Document.js';
|
|
4
3
|
export * from './Hocuspocus.js';
|
|
5
4
|
export * from './IncomingMessage.js';
|
|
6
5
|
export * from './MessageReceiver.js';
|
|
7
6
|
export * from './OutgoingMessage.js';
|
|
7
|
+
export * from './Server.js';
|
|
8
8
|
export * from './types.js';
|
|
9
9
|
export * from './util/debounce.js';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
4
|
+
/// <reference types="node" />
|
|
5
|
+
import type { IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'http';
|
|
6
|
+
import type { URLSearchParams } from 'url';
|
|
7
|
+
import type { Awareness } from 'y-protocols/awareness';
|
|
8
|
+
import type Connection from './Connection.js';
|
|
9
|
+
import type Document from './Document.js';
|
|
10
|
+
import type { Hocuspocus } from './Hocuspocus.js';
|
|
10
11
|
export declare enum MessageType {
|
|
11
12
|
Unknown = -1,
|
|
12
13
|
Sync = 0,
|
|
@@ -26,7 +27,6 @@ export interface AwarenessUpdate {
|
|
|
26
27
|
}
|
|
27
28
|
export interface ConnectionConfiguration {
|
|
28
29
|
readOnly: boolean;
|
|
29
|
-
requiresAuthentication: boolean;
|
|
30
30
|
isAuthenticated: boolean;
|
|
31
31
|
}
|
|
32
32
|
export interface Extension {
|
|
@@ -87,14 +87,6 @@ export interface Configuration extends Extension {
|
|
|
87
87
|
* A list of hocuspocus extensions.
|
|
88
88
|
*/
|
|
89
89
|
extensions: Array<Extension>;
|
|
90
|
-
/**
|
|
91
|
-
* The port which the server listens on.
|
|
92
|
-
*/
|
|
93
|
-
port?: number;
|
|
94
|
-
/**
|
|
95
|
-
* The address which the server listens on.
|
|
96
|
-
*/
|
|
97
|
-
address?: string;
|
|
98
90
|
/**
|
|
99
91
|
* Defines in which interval the server sends a ping, and closes the connection when no pong is sent back.
|
|
100
92
|
*/
|
|
@@ -120,12 +112,6 @@ export interface Configuration extends Extension {
|
|
|
120
112
|
* your onStoreDocument is rate-limited.
|
|
121
113
|
*/
|
|
122
114
|
unloadImmediately: boolean;
|
|
123
|
-
/**
|
|
124
|
-
* the server will gracefully stop if SIGINT, SIGQUIT or SIGTERM is received.
|
|
125
|
-
*
|
|
126
|
-
* Set this to false if you don't want that.
|
|
127
|
-
*/
|
|
128
|
-
stopOnSignals: boolean;
|
|
129
115
|
/**
|
|
130
116
|
* options to pass to the ydoc document
|
|
131
117
|
*/
|
|
@@ -149,7 +135,7 @@ export interface onAuthenticatePayload {
|
|
|
149
135
|
request: IncomingMessage;
|
|
150
136
|
socketId: string;
|
|
151
137
|
token: string;
|
|
152
|
-
|
|
138
|
+
connectionConfig: ConnectionConfiguration;
|
|
153
139
|
}
|
|
154
140
|
export interface onCreateDocumentPayload {
|
|
155
141
|
context: any;
|
|
@@ -158,7 +144,7 @@ export interface onCreateDocumentPayload {
|
|
|
158
144
|
requestHeaders: IncomingHttpHeaders;
|
|
159
145
|
requestParameters: URLSearchParams;
|
|
160
146
|
socketId: string;
|
|
161
|
-
|
|
147
|
+
connectionConfig: ConnectionConfiguration;
|
|
162
148
|
}
|
|
163
149
|
export interface onConnectPayload {
|
|
164
150
|
context: any;
|
|
@@ -168,7 +154,7 @@ export interface onConnectPayload {
|
|
|
168
154
|
requestHeaders: IncomingHttpHeaders;
|
|
169
155
|
requestParameters: URLSearchParams;
|
|
170
156
|
socketId: string;
|
|
171
|
-
|
|
157
|
+
connectionConfig: ConnectionConfiguration;
|
|
172
158
|
}
|
|
173
159
|
export interface connectedPayload {
|
|
174
160
|
context: any;
|
|
@@ -178,8 +164,8 @@ export interface connectedPayload {
|
|
|
178
164
|
requestHeaders: IncomingHttpHeaders;
|
|
179
165
|
requestParameters: URLSearchParams;
|
|
180
166
|
socketId: string;
|
|
181
|
-
|
|
182
|
-
|
|
167
|
+
connectionConfig: ConnectionConfiguration;
|
|
168
|
+
connection: Connection;
|
|
183
169
|
}
|
|
184
170
|
export interface onLoadDocumentPayload {
|
|
185
171
|
context: any;
|
|
@@ -189,7 +175,7 @@ export interface onLoadDocumentPayload {
|
|
|
189
175
|
requestHeaders: IncomingHttpHeaders;
|
|
190
176
|
requestParameters: URLSearchParams;
|
|
191
177
|
socketId: string;
|
|
192
|
-
|
|
178
|
+
connectionConfig: ConnectionConfiguration;
|
|
193
179
|
}
|
|
194
180
|
export interface afterLoadDocumentPayload {
|
|
195
181
|
context: any;
|
|
@@ -199,7 +185,7 @@ export interface afterLoadDocumentPayload {
|
|
|
199
185
|
requestHeaders: IncomingHttpHeaders;
|
|
200
186
|
requestParameters: URLSearchParams;
|
|
201
187
|
socketId: string;
|
|
202
|
-
|
|
188
|
+
connectionConfig: ConnectionConfiguration;
|
|
203
189
|
}
|
|
204
190
|
export interface onChangePayload {
|
|
205
191
|
clientsCount: number;
|
|
@@ -269,7 +255,7 @@ export interface fetchPayload {
|
|
|
269
255
|
requestHeaders: IncomingHttpHeaders;
|
|
270
256
|
requestParameters: URLSearchParams;
|
|
271
257
|
socketId: string;
|
|
272
|
-
|
|
258
|
+
connectionConfig: ConnectionConfiguration;
|
|
273
259
|
}
|
|
274
260
|
export interface storePayload extends onStoreDocumentPayload {
|
|
275
261
|
state: Buffer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Doc } from 'yjs';
|
|
2
2
|
import { Schema } from '@tiptap/pm/model';
|
|
3
|
-
import { Transformer } from './types.js';
|
|
3
|
+
import type { Transformer } from './types.js';
|
|
4
4
|
declare class Prosemirror implements Transformer {
|
|
5
5
|
defaultSchema: Schema;
|
|
6
6
|
schema(schema: Schema): Prosemirror;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Doc } from 'yjs';
|
|
2
|
-
import { Extensions } from '@tiptap/core';
|
|
3
|
-
import { Transformer } from './types.js';
|
|
1
|
+
import type { Doc } from 'yjs';
|
|
2
|
+
import type { Extensions } from '@tiptap/core';
|
|
3
|
+
import type { Transformer } from './types.js';
|
|
4
4
|
export declare class Tiptap implements Transformer {
|
|
5
5
|
defaultExtensions: Extensions;
|
|
6
6
|
extensions(extensions: Extensions): Tiptap;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const newHocuspocus: (options?: Partial<
|
|
1
|
+
import type { ServerConfiguration } from '@hocuspocus/server';
|
|
2
|
+
export declare const newHocuspocus: (options?: Partial<ServerConfiguration>) => Promise<import("@hocuspocus/server").Hocuspocus>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { HocuspocusProvider, HocuspocusProviderConfiguration, HocuspocusProviderWebsocket, HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
|
|
2
|
-
import { Hocuspocus } from '@hocuspocus/server';
|
|
1
|
+
import { HocuspocusProvider, type HocuspocusProviderConfiguration, type HocuspocusProviderWebsocket, type HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
|
|
2
|
+
import type { Hocuspocus } from '@hocuspocus/server';
|
|
3
3
|
export declare const newHocuspocusProvider: (server: Hocuspocus, options?: Partial<HocuspocusProviderConfiguration>, websocketOptions?: Partial<HocuspocusProviderWebsocketConfiguration>, websocketProvider?: HocuspocusProviderWebsocket) => HocuspocusProvider;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import type { HocuspocusProviderWebsocketConfiguration } from '@hocuspocus/provider';
|
|
2
|
+
import { HocuspocusProviderWebsocket } from '@hocuspocus/provider';
|
|
3
|
+
import type { Hocuspocus } from '@hocuspocus/server';
|
|
4
|
+
export declare const newHocuspocusProviderWebsocket: (hocuspocus: Hocuspocus, options?: Partial<Omit<HocuspocusProviderWebsocketConfiguration, 'url'>>) => HocuspocusProviderWebsocket;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ExecutionContext } from 'ava';
|
|
1
|
+
import type { ExecutionContext } from 'ava';
|
|
2
2
|
export declare const retryableAssertion: (t: ExecutionContext, recoverableTry: (tt: ExecutionContext) => void) => Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hocuspocus/provider",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.4-rc.0",
|
|
4
4
|
"description": "hocuspocus provider",
|
|
5
5
|
"homepage": "https://hocuspocus.dev",
|
|
6
6
|
"keywords": [
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"dist"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@hocuspocus/common": "^
|
|
32
|
+
"@hocuspocus/common": "^3.0.4-rc.0",
|
|
33
33
|
"@lifeomic/attempt": "^3.0.2",
|
|
34
34
|
"lib0": "^0.2.87",
|
|
35
35
|
"ws": "^8.17.1"
|
package/src/EventEmitter.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export default class EventEmitter {
|
|
2
|
-
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
3
3
|
public callbacks: { [key: string]: Function[] } = {}
|
|
4
4
|
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
5
6
|
public on(event: string, fn: Function): this {
|
|
6
7
|
if (!this.callbacks[event]) {
|
|
7
8
|
this.callbacks[event] = []
|
|
@@ -22,6 +23,7 @@ export default class EventEmitter {
|
|
|
22
23
|
return this
|
|
23
24
|
}
|
|
24
25
|
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
25
27
|
public off(event: string, fn?: Function): this {
|
|
26
28
|
const callbacks = this.callbacks[event]
|
|
27
29
|
|