@hocuspocus/provider 2.1.0-alpha.0 → 2.2.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.
Files changed (146) hide show
  1. package/dist/hocuspocus-provider.cjs +917 -915
  2. package/dist/hocuspocus-provider.cjs.map +1 -1
  3. package/dist/hocuspocus-provider.esm.js +917 -915
  4. package/dist/hocuspocus-provider.esm.js.map +1 -1
  5. package/dist/packages/common/src/CloseEvents.d.ts +29 -29
  6. package/dist/packages/common/src/auth.d.ts +6 -6
  7. package/dist/packages/common/src/awarenessStatesToArray.d.ts +3 -3
  8. package/dist/packages/common/src/index.d.ts +4 -4
  9. package/dist/packages/common/src/types.d.ts +10 -10
  10. package/dist/packages/extension-database/src/Database.d.ts +30 -30
  11. package/dist/packages/extension-database/src/index.d.ts +1 -1
  12. package/dist/packages/extension-logger/src/Logger.d.ts +67 -67
  13. package/dist/packages/extension-logger/src/index.d.ts +1 -1
  14. package/dist/packages/extension-redis/src/Redis.d.ts +116 -95
  15. package/dist/packages/extension-redis/src/index.d.ts +1 -1
  16. package/dist/packages/extension-sqlite/src/SQLite.d.ts +26 -26
  17. package/dist/packages/extension-sqlite/src/index.d.ts +1 -1
  18. package/dist/packages/extension-throttle/src/index.d.ts +31 -31
  19. package/dist/packages/extension-webhook/src/index.d.ts +57 -57
  20. package/dist/packages/provider/src/EventEmitter.d.ts +9 -9
  21. package/dist/packages/provider/src/HocuspocusProvider.d.ts +110 -110
  22. package/dist/packages/provider/src/HocuspocusProviderWebsocket.d.ts +115 -115
  23. package/dist/packages/provider/src/IncomingMessage.d.ts +16 -16
  24. package/dist/packages/provider/src/MessageReceiver.d.ts +13 -13
  25. package/dist/packages/provider/src/MessageSender.d.ts +10 -10
  26. package/dist/packages/provider/src/OutgoingMessage.d.ts +9 -9
  27. package/dist/packages/provider/src/OutgoingMessages/AuthenticationMessage.d.ts +7 -7
  28. package/dist/packages/provider/src/OutgoingMessages/AwarenessMessage.d.ts +8 -8
  29. package/dist/packages/provider/src/OutgoingMessages/CloseMessage.d.ts +8 -8
  30. package/dist/packages/provider/src/OutgoingMessages/QueryAwarenessMessage.d.ts +8 -8
  31. package/dist/packages/provider/src/OutgoingMessages/StatelessMessage.d.ts +7 -7
  32. package/dist/packages/provider/src/OutgoingMessages/SyncStepOneMessage.d.ts +8 -8
  33. package/dist/packages/provider/src/OutgoingMessages/SyncStepTwoMessage.d.ts +8 -8
  34. package/dist/packages/provider/src/OutgoingMessages/UpdateMessage.d.ts +7 -7
  35. package/dist/packages/provider/src/TiptapCollabProvider.d.ts +11 -11
  36. package/dist/packages/provider/src/TiptapCollabProviderWebsocket.d.ts +11 -11
  37. package/dist/packages/provider/src/index.d.ts +5 -5
  38. package/dist/packages/provider/src/types.d.ts +84 -84
  39. package/dist/packages/server/src/ClientConnection.d.ts +56 -0
  40. package/dist/packages/server/src/Connection.d.ts +71 -71
  41. package/dist/packages/server/src/Debugger.d.ts +14 -14
  42. package/dist/packages/server/src/DirectConnection.d.ts +14 -0
  43. package/dist/packages/server/src/Document.d.ts +91 -88
  44. package/dist/packages/server/src/Hocuspocus.d.ts +103 -108
  45. package/dist/packages/server/src/IncomingMessage.d.ts +21 -21
  46. package/dist/packages/server/src/MessageReceiver.d.ts +12 -12
  47. package/dist/packages/server/src/OutgoingMessage.d.ts +20 -20
  48. package/dist/packages/server/src/index.d.ts +8 -8
  49. package/dist/packages/server/src/types.d.ts +270 -264
  50. package/dist/packages/server/src/util/getParameters.d.ts +8 -0
  51. package/dist/packages/transformer/src/Prosemirror.d.ts +11 -11
  52. package/dist/packages/transformer/src/Tiptap.d.ts +10 -10
  53. package/dist/packages/transformer/src/index.d.ts +3 -3
  54. package/dist/packages/transformer/src/types.d.ts +5 -5
  55. package/dist/playground/backend/src/default.d.ts +1 -1
  56. package/dist/playground/backend/src/express.d.ts +1 -1
  57. package/dist/playground/backend/src/koa.d.ts +1 -1
  58. package/dist/playground/backend/src/load-document.d.ts +1 -1
  59. package/dist/playground/backend/src/redis.d.ts +1 -1
  60. package/dist/playground/backend/src/slow.d.ts +1 -1
  61. package/dist/playground/backend/src/tiptapcollab.d.ts +1 -1
  62. package/dist/playground/backend/src/webhook.d.ts +1 -1
  63. package/dist/playground/frontend/src/main.d.ts +1 -1
  64. package/dist/playground/frontend/vite.config.d.ts +2 -2
  65. package/dist/tests/extension-database/fetch.d.ts +1 -1
  66. package/dist/tests/extension-logger/onListen.d.ts +1 -1
  67. package/dist/tests/extension-redis/closeConnections.d.ts +1 -1
  68. package/dist/tests/extension-redis/getConnectionCount.d.ts +1 -1
  69. package/dist/tests/extension-redis/getDocumentsCount.d.ts +1 -1
  70. package/dist/tests/extension-redis/onAwarenessChange.d.ts +1 -1
  71. package/dist/tests/extension-redis/onChange.d.ts +1 -1
  72. package/dist/tests/extension-redis/onStateless.d.ts +1 -1
  73. package/dist/tests/extension-redis/onStoreDocument.d.ts +1 -1
  74. package/dist/tests/extension-throttle/banning.d.ts +1 -1
  75. package/dist/tests/extension-throttle/configuration.d.ts +1 -1
  76. package/dist/tests/provider/observe.d.ts +1 -1
  77. package/dist/tests/provider/observeDeep.d.ts +1 -1
  78. package/dist/tests/provider/onAuthenticated.d.ts +1 -1
  79. package/dist/tests/provider/onAuthenticationFailed.d.ts +1 -1
  80. package/dist/tests/provider/onAwarenessChange.d.ts +1 -1
  81. package/dist/tests/provider/onAwarenessUpdate.d.ts +1 -1
  82. package/dist/tests/provider/onClose.d.ts +1 -1
  83. package/dist/tests/provider/onConnect.d.ts +1 -1
  84. package/dist/tests/provider/onDisconnect.d.ts +1 -1
  85. package/dist/tests/provider/onMessage.d.ts +1 -1
  86. package/dist/tests/provider/onOpen.d.ts +1 -1
  87. package/dist/tests/provider/onStateless.d.ts +1 -1
  88. package/dist/tests/provider/onSynced.d.ts +1 -1
  89. package/dist/tests/providerwebsocket/configuration.d.ts +1 -1
  90. package/dist/tests/server/address.d.ts +1 -1
  91. package/dist/tests/server/afterStoreDocument.d.ts +1 -1
  92. package/dist/tests/server/beforeBroadcastStateless.d.ts +1 -1
  93. package/dist/tests/server/beforeHandleMessage.d.ts +1 -1
  94. package/dist/tests/server/closeConnections.d.ts +1 -1
  95. package/dist/tests/server/getConnectionsCount.d.ts +1 -1
  96. package/dist/tests/server/getDocumentsCount.d.ts +1 -1
  97. package/dist/tests/server/getMessageLogs.d.ts +1 -1
  98. package/dist/tests/server/listen.d.ts +1 -1
  99. package/dist/tests/server/onAuthenticate.d.ts +1 -1
  100. package/dist/tests/server/onAwarenessUpdate.d.ts +1 -1
  101. package/dist/tests/server/onChange.d.ts +1 -1
  102. package/dist/tests/server/onClose.d.ts +1 -1
  103. package/dist/tests/server/onConfigure.d.ts +1 -1
  104. package/dist/tests/server/onConnect.d.ts +1 -1
  105. package/dist/tests/server/onDestroy.d.ts +1 -1
  106. package/dist/tests/server/onDisconnect.d.ts +1 -1
  107. package/dist/tests/server/onListen.d.ts +1 -1
  108. package/dist/tests/server/onLoadDocument.d.ts +1 -1
  109. package/dist/tests/server/onRequest.d.ts +1 -1
  110. package/dist/tests/server/onStateless.d.ts +1 -1
  111. package/dist/tests/server/onStoreDocument.d.ts +1 -1
  112. package/dist/tests/server/onUpgrade.d.ts +1 -1
  113. package/dist/tests/server/openDirectConnection.d.ts +1 -0
  114. package/dist/tests/server/requiresAuthentication.d.ts +1 -1
  115. package/dist/tests/server/websocketError.d.ts +1 -1
  116. package/dist/tests/transformer/TiptapTransformer.d.ts +1 -1
  117. package/dist/tests/utils/createDirectory.d.ts +1 -1
  118. package/dist/tests/utils/flushRedis.d.ts +1 -1
  119. package/dist/tests/utils/index.d.ts +9 -9
  120. package/dist/tests/utils/newHocuspocus.d.ts +2 -2
  121. package/dist/tests/utils/newHocuspocusProvider.d.ts +3 -3
  122. package/dist/tests/utils/newHocuspocusProviderWebsocket.d.ts +3 -3
  123. package/dist/tests/utils/randomInteger.d.ts +1 -1
  124. package/dist/tests/utils/redisConnectionSettings.d.ts +4 -4
  125. package/dist/tests/utils/removeDirectory.d.ts +1 -1
  126. package/dist/tests/utils/retryableAssertion.d.ts +2 -2
  127. package/dist/tests/utils/sleep.d.ts +1 -1
  128. package/package.json +4 -3
  129. package/src/HocuspocusProvider.ts +20 -16
  130. package/src/HocuspocusProviderWebsocket.ts +4 -3
  131. package/src/IncomingMessage.ts +1 -1
  132. package/src/MessageReceiver.ts +4 -4
  133. package/src/MessageSender.ts +1 -1
  134. package/src/OutgoingMessage.ts +1 -1
  135. package/src/OutgoingMessages/AuthenticationMessage.ts +2 -2
  136. package/src/OutgoingMessages/AwarenessMessage.ts +2 -2
  137. package/src/OutgoingMessages/CloseMessage.ts +2 -2
  138. package/src/OutgoingMessages/QueryAwarenessMessage.ts +2 -2
  139. package/src/OutgoingMessages/StatelessMessage.ts +2 -2
  140. package/src/OutgoingMessages/SyncStepOneMessage.ts +2 -2
  141. package/src/OutgoingMessages/SyncStepTwoMessage.ts +2 -2
  142. package/src/OutgoingMessages/UpdateMessage.ts +2 -2
  143. package/src/TiptapCollabProvider.ts +2 -2
  144. package/src/TiptapCollabProviderWebsocket.ts +1 -1
  145. package/src/index.ts +5 -5
  146. package/src/types.ts +8 -8
@@ -1,16 +1,16 @@
1
- import { Decoder } from 'lib0/decoding';
2
- import { Encoder } from 'lib0/encoding';
3
- import { MessageType } from './types';
4
- export declare class IncomingMessage {
5
- data: any;
6
- encoder: Encoder;
7
- decoder: Decoder;
8
- constructor(data: any);
9
- readVarUint(): MessageType;
10
- readVarString(): string;
11
- readVarUint8Array(): Uint8Array;
12
- writeVarUint(type: MessageType): void;
13
- writeVarString(string: string): void;
14
- writeVarUint8Array(data: Uint8Array): void;
15
- length(): number;
16
- }
1
+ import { Decoder } from 'lib0/decoding';
2
+ import { Encoder } from 'lib0/encoding';
3
+ import { MessageType } from './types.js';
4
+ export declare class IncomingMessage {
5
+ data: any;
6
+ encoder: Encoder;
7
+ decoder: Decoder;
8
+ constructor(data: any);
9
+ readVarUint(): MessageType;
10
+ readVarString(): string;
11
+ readVarUint8Array(): Uint8Array;
12
+ writeVarUint(type: MessageType): void;
13
+ writeVarString(string: string): void;
14
+ writeVarUint8Array(data: Uint8Array): void;
15
+ length(): number;
16
+ }
@@ -1,13 +1,13 @@
1
- import { HocuspocusProvider } from './HocuspocusProvider';
2
- import { IncomingMessage } from './IncomingMessage';
3
- export declare class MessageReceiver {
4
- message: IncomingMessage;
5
- broadcasted: boolean;
6
- constructor(message: IncomingMessage);
7
- setBroadcasted(value: boolean): this;
8
- apply(provider: HocuspocusProvider, emitSynced?: boolean): void;
9
- private applySyncMessage;
10
- private applyAwarenessMessage;
11
- private applyAuthMessage;
12
- private applyQueryAwarenessMessage;
13
- }
1
+ import { HocuspocusProvider } from './HocuspocusProvider.js';
2
+ import { IncomingMessage } from './IncomingMessage.js';
3
+ export declare class MessageReceiver {
4
+ message: IncomingMessage;
5
+ broadcasted: boolean;
6
+ constructor(message: IncomingMessage);
7
+ setBroadcasted(value: boolean): this;
8
+ apply(provider: HocuspocusProvider, emitSynced?: boolean): void;
9
+ private applySyncMessage;
10
+ private applyAwarenessMessage;
11
+ private applyAuthMessage;
12
+ private applyQueryAwarenessMessage;
13
+ }
@@ -1,10 +1,10 @@
1
- import { Encoder } from 'lib0/encoding';
2
- import { ConstructableOutgoingMessage } from './types';
3
- export declare class MessageSender {
4
- encoder: Encoder;
5
- message: any;
6
- constructor(Message: ConstructableOutgoingMessage, args?: any);
7
- create(): Uint8Array;
8
- send(webSocket: any): void;
9
- broadcast(channel: string): void;
10
- }
1
+ import { Encoder } from 'lib0/encoding';
2
+ import { ConstructableOutgoingMessage } from './types.js';
3
+ export declare class MessageSender {
4
+ encoder: Encoder;
5
+ message: any;
6
+ constructor(Message: ConstructableOutgoingMessage, args?: any);
7
+ create(): Uint8Array;
8
+ send(webSocket: any): void;
9
+ broadcast(channel: string): void;
10
+ }
@@ -1,9 +1,9 @@
1
- import { Encoder } from 'lib0/encoding';
2
- import { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types';
3
- export declare class OutgoingMessage implements OutgoingMessageInterface {
4
- encoder: Encoder;
5
- type?: MessageType;
6
- constructor();
7
- get(args: Partial<OutgoingMessageArguments>): Encoder | undefined;
8
- toUint8Array(): Uint8Array;
9
- }
1
+ import { Encoder } from 'lib0/encoding';
2
+ import { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types.js';
3
+ export declare class OutgoingMessage implements OutgoingMessageInterface {
4
+ encoder: Encoder;
5
+ type?: MessageType;
6
+ constructor();
7
+ get(args: Partial<OutgoingMessageArguments>): Encoder | undefined;
8
+ toUint8Array(): Uint8Array;
9
+ }
@@ -1,7 +1,7 @@
1
- import { MessageType, OutgoingMessageArguments } from '../types';
2
- import { OutgoingMessage } from '../OutgoingMessage';
3
- export declare class AuthenticationMessage 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 AuthenticationMessage extends OutgoingMessage {
4
+ type: MessageType;
5
+ description: string;
6
+ get(args: Partial<OutgoingMessageArguments>): import("lib0/encoding").Encoder;
7
+ }
@@ -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 AwarenessMessage 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 AwarenessMessage 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 CloseMessage 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 CloseMessage 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 QueryAwarenessMessage 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 QueryAwarenessMessage 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 StatelessMessage 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 StatelessMessage extends OutgoingMessage {
4
+ type: MessageType;
5
+ description: string;
6
+ get(args: Partial<OutgoingMessageArguments>): import("lib0/encoding").Encoder;
7
+ }
@@ -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
+ }[];
@@ -0,0 +1,56 @@
1
+ /// <reference types="node" />
2
+ import { IncomingMessage } from 'http';
3
+ import WebSocket from 'ws';
4
+ import { Debugger } from './Debugger.js';
5
+ import Document from './Document.js';
6
+ import { Hocuspocus } from './Hocuspocus.js';
7
+ import { onDisconnectPayload } from './types.js';
8
+ /**
9
+ * The `ClientConnection` class is responsible for handling an incoming WebSocket
10
+ *
11
+ * TODO-refactor:
12
+ * - use event handlers instead of calling hooks directly, hooks should probably be called from Hocuspocus.ts
13
+ */
14
+ export declare class ClientConnection {
15
+ private readonly websocket;
16
+ private readonly request;
17
+ private readonly documentProvider;
18
+ private readonly hooks;
19
+ private readonly debuggerTool;
20
+ private readonly opts;
21
+ private readonly defaultContext;
22
+ private readonly documentConnections;
23
+ private readonly incomingMessageQueue;
24
+ private readonly documentConnectionsEstablished;
25
+ private readonly hookPayloads;
26
+ private readonly callbacks;
27
+ private readonly closeIdleConnectionTimeout;
28
+ private readonly socketId;
29
+ /**
30
+ * The `ClientConnection` class receives incoming WebSocket connections,
31
+ * runs all hooks:
32
+ *
33
+ * - onConnect for all connections
34
+ * - onAuthenticate only if required
35
+ *
36
+ * … and if nothings fails it’ll fully establish the connection and
37
+ * load the Document then.
38
+ */
39
+ constructor(websocket: WebSocket, request: IncomingMessage, documentProvider: {
40
+ createDocument: Hocuspocus['createDocument'];
41
+ }, hooks: Hocuspocus['hooks'], debuggerTool: Debugger, opts: {
42
+ requiresAuthentication: boolean;
43
+ timeout: number;
44
+ }, defaultContext?: any);
45
+ /**
46
+ * Set a callback that will be triggered when the connection is closed
47
+ */
48
+ onClose(callback: (document: Document, payload: onDisconnectPayload) => void): ClientConnection;
49
+ /**
50
+ * Create a new connection by the given request and document
51
+ */
52
+ private createConnection;
53
+ private setUpNewConnection;
54
+ private handleQueueingMessage;
55
+ private messageHandler;
56
+ }