@hocuspocus/provider 1.0.0-alpha.26 → 1.0.0-alpha.27
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 +17 -0
- package/dist/hocuspocus-provider.cjs.map +1 -1
- package/dist/hocuspocus-provider.esm.js +17 -1
- package/dist/hocuspocus-provider.esm.js.map +1 -1
- package/dist/packages/extension-logger/src/Logger.d.ts +2 -8
- package/dist/packages/provider/src/HocuspocusCloudProvider.d.ts +10 -0
- package/dist/packages/provider/src/index.d.ts +1 -0
- package/dist/packages/server/src/Hocuspocus.d.ts +6 -3
- package/dist/packages/server/src/types.d.ts +12 -0
- package/package.json +2 -2
- package/src/HocuspocusCloudProvider.ts +26 -0
- package/src/HocuspocusProvider.ts +1 -0
- package/src/index.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Extension, onChangePayload, onConfigurePayload, onConnectPayload, onLoadDocumentPayload, onDestroyPayload, onDisconnectPayload,
|
|
1
|
+
import { Extension, onChangePayload, onConfigurePayload, onConnectPayload, onLoadDocumentPayload, onDestroyPayload, onDisconnectPayload, onRequestPayload, onUpgradePayload } from '@hocuspocus/server';
|
|
2
2
|
export interface LoggerConfiguration {
|
|
3
3
|
/**
|
|
4
4
|
* Prepend all logging message with a string.
|
|
@@ -30,10 +30,6 @@ export interface LoggerConfiguration {
|
|
|
30
30
|
* Whether to log something for the `onRequest` hook.
|
|
31
31
|
*/
|
|
32
32
|
onRequest: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Whether to log something for the `onListen` hook.
|
|
35
|
-
*/
|
|
36
|
-
onListen: boolean;
|
|
37
33
|
/**
|
|
38
34
|
* Whether to log something for the `onDestroy` hook.
|
|
39
35
|
*/
|
|
@@ -54,15 +50,13 @@ export declare class Logger implements Extension {
|
|
|
54
50
|
* Constructor
|
|
55
51
|
*/
|
|
56
52
|
constructor(configuration?: Partial<LoggerConfiguration>);
|
|
53
|
+
onConfigure(data: onConfigurePayload): Promise<void>;
|
|
57
54
|
onLoadDocument(data: onLoadDocumentPayload): Promise<void>;
|
|
58
55
|
onChange(data: onChangePayload): Promise<void>;
|
|
59
56
|
onConnect(data: onConnectPayload): Promise<void>;
|
|
60
57
|
onDisconnect(data: onDisconnectPayload): Promise<void>;
|
|
61
58
|
onUpgrade(data: onUpgradePayload): Promise<void>;
|
|
62
59
|
onRequest(data: onRequestPayload): Promise<void>;
|
|
63
|
-
onListen(data: onListenPayload): Promise<void>;
|
|
64
60
|
onDestroy(data: onDestroyPayload): Promise<void>;
|
|
65
|
-
onConfigure(data: onConfigurePayload): Promise<void>;
|
|
66
|
-
private logRawText;
|
|
67
61
|
private log;
|
|
68
62
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HocuspocusProvider, HocuspocusProviderOptions } from './HocuspocusProvider';
|
|
2
|
+
export interface HocuspocusCloudProviderOptions extends HocuspocusProviderOptions {
|
|
3
|
+
/**
|
|
4
|
+
* A Hocuspocus Cloud key, get one here: https://hocuspocus.cloud/
|
|
5
|
+
*/
|
|
6
|
+
key: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class HocuspocusCloudProvider extends HocuspocusProvider {
|
|
9
|
+
constructor(options: HocuspocusCloudProviderOptions);
|
|
10
|
+
}
|
|
@@ -3,13 +3,15 @@ import WebSocket, { WebSocketServer } from 'ws';
|
|
|
3
3
|
import { IncomingMessage, Server as HTTPServer } from 'http';
|
|
4
4
|
import { Configuration, Hook } from './types';
|
|
5
5
|
import { MessageLogger } from './Debugger';
|
|
6
|
+
import { onListenPayload } from '.';
|
|
6
7
|
export declare const defaultConfiguration: {
|
|
7
8
|
name: null;
|
|
8
9
|
port: number;
|
|
9
10
|
timeout: number;
|
|
11
|
+
quiet: boolean;
|
|
10
12
|
};
|
|
11
13
|
/**
|
|
12
|
-
* Hocuspocus
|
|
14
|
+
* Hocuspocus Server
|
|
13
15
|
*/
|
|
14
16
|
export declare class Hocuspocus {
|
|
15
17
|
configuration: Configuration;
|
|
@@ -25,7 +27,8 @@ export declare class Hocuspocus {
|
|
|
25
27
|
/**
|
|
26
28
|
* Start the server
|
|
27
29
|
*/
|
|
28
|
-
listen(): Promise<void>;
|
|
30
|
+
listen(portOrCallback?: number | ((data: onListenPayload) => Promise<any>) | null, callback?: any): Promise<void>;
|
|
31
|
+
private showStartScreen;
|
|
29
32
|
/**
|
|
30
33
|
* Get the total number of active documents
|
|
31
34
|
*/
|
|
@@ -75,7 +78,7 @@ export declare class Hocuspocus {
|
|
|
75
78
|
* Get document name by the given request
|
|
76
79
|
* @private
|
|
77
80
|
*/
|
|
78
|
-
private
|
|
81
|
+
private getDocumentNameFromRequest;
|
|
79
82
|
enableDebugging(): void;
|
|
80
83
|
enableMessageLogging(): void;
|
|
81
84
|
disableLogging(): void;
|
|
@@ -67,6 +67,18 @@ export interface Configuration extends Extension {
|
|
|
67
67
|
* Defines in which interval the server sends a ping, and closes the connection when no pong is sent back.
|
|
68
68
|
*/
|
|
69
69
|
timeout: number;
|
|
70
|
+
/**
|
|
71
|
+
* By default, the servers show a start screen. If passed false, the server will start quietly.
|
|
72
|
+
*/
|
|
73
|
+
quiet: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Function which returns the (customized) document name based on the request
|
|
76
|
+
*/
|
|
77
|
+
getDocumentName?(data: {
|
|
78
|
+
documentName: string;
|
|
79
|
+
request: IncomingMessage;
|
|
80
|
+
requestParameters: URLSearchParams;
|
|
81
|
+
}): string | Promise<string>;
|
|
70
82
|
}
|
|
71
83
|
export interface onAuthenticatePayload {
|
|
72
84
|
documentName: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hocuspocus/provider",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.27",
|
|
4
4
|
"description": "hocuspocus provider",
|
|
5
5
|
"homepage": "https://hocuspocus.dev",
|
|
6
6
|
"keywords": [
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"y-protocols": "^1.0.5",
|
|
34
34
|
"yjs": "^13.5.0"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "1bbb2df1f2be4046ca7e5415cd975e469ec16145"
|
|
37
37
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { HocuspocusProvider, HocuspocusProviderOptions } from './HocuspocusProvider'
|
|
2
|
+
|
|
3
|
+
export interface HocuspocusCloudProviderOptions extends HocuspocusProviderOptions {
|
|
4
|
+
/**
|
|
5
|
+
* A Hocuspocus Cloud key, get one here: https://hocuspocus.cloud/
|
|
6
|
+
*/
|
|
7
|
+
key: string,
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export class HocuspocusCloudProvider extends HocuspocusProvider {
|
|
11
|
+
constructor(options: HocuspocusCloudProviderOptions) {
|
|
12
|
+
if (!options.url) {
|
|
13
|
+
options.url = 'wss://connect.hocuspocus.cloud'
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
if (options.key) {
|
|
17
|
+
if (!options.parameters) {
|
|
18
|
+
options.parameters = {}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
options.parameters.key = options.key
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
super(options as HocuspocusProviderOptions)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -195,6 +195,7 @@ export class HocuspocusProvider extends EventEmitter {
|
|
|
195
195
|
super()
|
|
196
196
|
this.setOptions(options)
|
|
197
197
|
|
|
198
|
+
this.options.document = options.document ? options.document : new Y.Doc()
|
|
198
199
|
this.options.awareness = options.awareness ? options.awareness : new Awareness(this.document)
|
|
199
200
|
this.options.WebSocketPolyfill = options.WebSocketPolyfill ? options.WebSocketPolyfill : WebSocket
|
|
200
201
|
|
package/src/index.ts
CHANGED