@hocuspocus/provider 1.0.0-alpha.4 → 1.0.0-alpha.40

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 (132) hide show
  1. package/dist/{hocuspocus-provider.js → hocuspocus-provider.cjs} +362 -186
  2. package/dist/hocuspocus-provider.cjs.map +1 -0
  3. package/dist/hocuspocus-provider.esm.js +359 -181
  4. package/dist/hocuspocus-provider.esm.js.map +1 -1
  5. package/dist/packages/common/src/CloseEvents.d.ts +23 -0
  6. package/dist/packages/common/src/auth.d.ts +6 -0
  7. package/dist/packages/common/src/awarenessStatesToArray.d.ts +3 -0
  8. package/dist/packages/common/src/index.d.ts +4 -0
  9. package/dist/packages/common/src/types.d.ts +10 -0
  10. package/dist/packages/extension-database/src/Database.d.ts +30 -0
  11. package/dist/packages/extension-database/src/index.d.ts +1 -0
  12. package/dist/packages/extension-logger/src/Logger.d.ts +67 -0
  13. package/dist/packages/extension-logger/src/index.d.ts +1 -0
  14. package/dist/packages/{monitor → extension-monitor}/src/Collector.d.ts +4 -5
  15. package/dist/packages/{monitor → extension-monitor}/src/Dashboard.d.ts +2 -2
  16. package/dist/packages/{monitor → extension-monitor}/src/Storage.d.ts +0 -0
  17. package/dist/packages/{monitor → extension-monitor}/src/index.d.ts +3 -5
  18. package/dist/packages/extension-redis/src/Redis.d.ts +98 -0
  19. package/dist/packages/extension-redis/src/index.d.ts +1 -0
  20. package/dist/packages/extension-sqlite/src/SQLite.d.ts +26 -0
  21. package/dist/packages/extension-sqlite/src/index.d.ts +1 -0
  22. package/dist/packages/extension-throttle/src/index.d.ts +24 -0
  23. package/dist/packages/{webhook → extension-webhook}/src/index.d.ts +5 -11
  24. package/dist/packages/provider/src/EventEmitter.d.ts +1 -1
  25. package/dist/packages/provider/src/HocuspocusCloudProvider.d.ts +11 -0
  26. package/dist/packages/provider/src/HocuspocusProvider.d.ts +116 -32
  27. package/dist/packages/provider/src/IncomingMessage.d.ts +9 -6
  28. package/dist/packages/provider/src/MessageReceiver.d.ts +3 -2
  29. package/dist/packages/provider/src/MessageSender.d.ts +4 -9
  30. package/dist/packages/provider/src/OutgoingMessage.d.ts +5 -4
  31. package/dist/packages/provider/src/OutgoingMessages/AuthenticationMessage.d.ts +7 -0
  32. package/dist/packages/provider/src/OutgoingMessages/UpdateMessage.d.ts +1 -2
  33. package/dist/packages/provider/src/index.d.ts +1 -1
  34. package/dist/packages/provider/src/types.d.ts +54 -2
  35. package/dist/packages/server/src/Connection.d.ts +16 -7
  36. package/dist/packages/server/src/Debugger.d.ts +14 -0
  37. package/dist/packages/server/src/Document.d.ts +11 -5
  38. package/dist/packages/server/src/Hocuspocus.d.ts +63 -17
  39. package/dist/packages/server/src/IncomingMessage.d.ts +11 -7
  40. package/dist/packages/server/src/MessageReceiver.d.ts +13 -0
  41. package/dist/packages/server/src/OutgoingMessage.d.ts +6 -0
  42. package/dist/packages/server/src/index.d.ts +6 -0
  43. package/dist/packages/server/src/types.d.ts +168 -26
  44. package/dist/{demos/backend/src/create-document.d.ts → playground/backend/src/default.d.ts} +0 -0
  45. package/dist/{demos → playground}/backend/src/express.d.ts +0 -0
  46. package/dist/{demos → playground}/backend/src/koa.d.ts +0 -0
  47. package/dist/{demos/backend/src/minimal.d.ts → playground/backend/src/load-document.d.ts} +0 -0
  48. package/dist/{demos → playground}/backend/src/monitor.d.ts +0 -0
  49. package/dist/{demos/backend/src/webhook.d.ts → playground/backend/src/redis.d.ts} +0 -0
  50. package/dist/playground/backend/src/slow.d.ts +1 -0
  51. package/dist/playground/backend/src/webhook.d.ts +1 -0
  52. package/dist/tests/extension-database/fetch.d.ts +1 -0
  53. package/dist/tests/extension-logger/onListen.d.ts +1 -0
  54. package/dist/tests/extension-redis/closeConnections.d.ts +1 -0
  55. package/dist/tests/extension-redis/getConnectionCount.d.ts +1 -0
  56. package/dist/tests/extension-redis/getDocumentsCount.d.ts +1 -0
  57. package/dist/tests/extension-redis/onAwarenessChange.d.ts +1 -0
  58. package/dist/tests/extension-redis/onChange.d.ts +1 -0
  59. package/dist/tests/extension-redis/onStoreDocument.d.ts +1 -0
  60. package/dist/tests/extension-throttle/configuration.d.ts +1 -0
  61. package/dist/tests/provider/configuration.d.ts +1 -0
  62. package/dist/tests/provider/observe.d.ts +1 -0
  63. package/dist/tests/provider/observeDeep.d.ts +1 -0
  64. package/dist/tests/provider/onAuthenticated.d.ts +1 -0
  65. package/dist/tests/provider/onAuthenticationFailed.d.ts +1 -0
  66. package/dist/tests/provider/onAwarenessChange.d.ts +1 -0
  67. package/dist/tests/provider/onAwarenessUpdate.d.ts +1 -0
  68. package/dist/tests/provider/onClose.d.ts +1 -0
  69. package/dist/tests/provider/onConnect.d.ts +1 -0
  70. package/dist/tests/provider/onDisconnect.d.ts +1 -0
  71. package/dist/tests/provider/onMessage.d.ts +1 -0
  72. package/dist/tests/provider/onOpen.d.ts +1 -0
  73. package/dist/tests/provider/onSynced.d.ts +1 -0
  74. package/dist/tests/server/address.d.ts +1 -0
  75. package/dist/tests/server/afterStoreDocument.d.ts +1 -0
  76. package/dist/tests/server/closeConnections.d.ts +1 -0
  77. package/dist/tests/server/getConnectionsCount.d.ts +1 -0
  78. package/dist/tests/server/getDocumentName.d.ts +1 -0
  79. package/dist/tests/server/getDocumentsCount.d.ts +1 -0
  80. package/dist/tests/server/getMessageLogs.d.ts +1 -0
  81. package/dist/tests/server/listen.d.ts +1 -0
  82. package/dist/tests/server/onAuthenticate.d.ts +1 -0
  83. package/dist/tests/server/onAwarenessUpdate.d.ts +1 -0
  84. package/dist/tests/server/onChange.d.ts +1 -0
  85. package/dist/tests/server/onConfigure.d.ts +1 -0
  86. package/dist/tests/server/onConnect.d.ts +1 -0
  87. package/dist/tests/server/onDestroy.d.ts +1 -0
  88. package/dist/tests/server/onDisconnect.d.ts +1 -0
  89. package/dist/tests/server/onListen.d.ts +1 -0
  90. package/dist/tests/server/onLoadDocument.d.ts +1 -0
  91. package/dist/tests/server/onRequest.d.ts +1 -0
  92. package/dist/tests/server/onStoreDocument.d.ts +1 -0
  93. package/dist/tests/server/onUpgrade.d.ts +1 -0
  94. package/dist/tests/server/requiresAuthentication.d.ts +1 -0
  95. package/dist/tests/transformer/TiptapTransformer.d.ts +1 -0
  96. package/dist/tests/utils/createDirectory.d.ts +1 -0
  97. package/dist/tests/utils/flushRedis.d.ts +1 -0
  98. package/dist/tests/utils/index.d.ts +8 -0
  99. package/dist/tests/utils/newHocuspocus.d.ts +2 -0
  100. package/dist/tests/utils/newHocuspocusProvider.d.ts +3 -0
  101. package/dist/tests/utils/randomInteger.d.ts +1 -0
  102. package/dist/tests/utils/redisConnectionSettings.d.ts +4 -0
  103. package/dist/tests/utils/removeDirectory.d.ts +1 -0
  104. package/dist/tests/utils/retryableAssertion.d.ts +2 -0
  105. package/dist/tests/utils/sleep.d.ts +1 -0
  106. package/package.json +15 -11
  107. package/src/EventEmitter.ts +1 -1
  108. package/src/HocuspocusCloudProvider.ts +34 -0
  109. package/src/HocuspocusProvider.ts +389 -159
  110. package/src/IncomingMessage.ts +35 -11
  111. package/src/MessageReceiver.ts +56 -24
  112. package/src/MessageSender.ts +5 -17
  113. package/src/OutgoingMessage.ts +9 -9
  114. package/src/OutgoingMessages/AuthenticationMessage.ts +21 -0
  115. package/src/OutgoingMessages/AwarenessMessage.ts +1 -1
  116. package/src/OutgoingMessages/SyncStepOneMessage.ts +0 -1
  117. package/src/OutgoingMessages/UpdateMessage.ts +4 -4
  118. package/src/index.ts +1 -1
  119. package/src/types.ts +70 -3
  120. package/CHANGELOG.md +0 -24
  121. package/dist/hocuspocus-provider.js.map +0 -1
  122. package/dist/packages/logger/src/index.d.ts +0 -13
  123. package/dist/packages/provider/src/utils/awarenessStatesToArray.d.ts +0 -4
  124. package/dist/packages/provider/src/utils/index.d.ts +0 -1
  125. package/dist/packages/redis/src/Redis.d.ts +0 -22
  126. package/dist/packages/redis/src/RedisCluster.d.ts +0 -4
  127. package/dist/packages/redis/src/index.d.ts +0 -2
  128. package/dist/packages/rocksdb/src/index.d.ts +0 -30
  129. package/dist/packages/server/src/CloseEvents.d.ts +0 -3
  130. package/dist/packages/throttle/src/index.d.ts +0 -28
  131. package/src/utils/awarenessStatesToArray.ts +0 -8
  132. package/src/utils/index.ts +0 -1
@@ -1,25 +1,49 @@
1
- import * as decoding from 'lib0/decoding'
2
- import * as encoding from 'lib0/encoding'
1
+ import {
2
+ createDecoder,
3
+ readVarUint,
4
+ readVarUint8Array,
5
+ Decoder,
6
+ } from 'lib0/decoding'
7
+ import {
8
+ Encoder,
9
+ createEncoder,
10
+ writeVarUint,
11
+ writeVarUint8Array,
12
+ length,
13
+ } from 'lib0/encoding'
3
14
  import { MessageType } from './types'
4
15
 
5
16
  export class IncomingMessage {
6
17
 
7
18
  data: any
8
19
 
9
- encoder: encoding.Encoder
20
+ encoder: Encoder
10
21
 
11
- decoder: decoding.Decoder
12
-
13
- type: MessageType
22
+ decoder: Decoder
14
23
 
15
24
  constructor(data: any) {
16
25
  this.data = data
17
- this.encoder = encoding.createEncoder()
18
- this.decoder = decoding.createDecoder(new Uint8Array(this.data))
19
- this.type = decoding.readVarUint(this.decoder)
26
+ this.encoder = createEncoder()
27
+ this.decoder = createDecoder(new Uint8Array(this.data))
28
+ }
29
+
30
+ readVarUint(): MessageType {
31
+ return readVarUint(this.decoder)
32
+ }
33
+
34
+ readVarUint8Array() {
35
+ return readVarUint8Array(this.decoder)
36
+ }
37
+
38
+ writeVarUint(type: MessageType) {
39
+ return writeVarUint(this.encoder, type)
40
+ }
41
+
42
+ writeVarUint8Array(data: Uint8Array) {
43
+ return writeVarUint8Array(this.encoder, data)
20
44
  }
21
45
 
22
- get name() {
23
- return MessageType[this.type]
46
+ length() {
47
+ return length(this.encoder)
24
48
  }
25
49
  }
@@ -1,22 +1,32 @@
1
- import * as decoding from 'lib0/decoding'
2
- import * as encoding from 'lib0/encoding'
3
1
  import * as awarenessProtocol from 'y-protocols/awareness'
4
- import * as syncProtocol from 'y-protocols/sync'
5
- import * as authProtocol from 'y-protocols/auth'
2
+ import { readSyncMessage, messageYjsSyncStep2, messageYjsUpdate } from 'y-protocols/sync'
3
+ import { readAuthMessage } from '@hocuspocus/common'
6
4
  import { MessageType } from './types'
7
5
  import { HocuspocusProvider } from './HocuspocusProvider'
8
6
  import { IncomingMessage } from './IncomingMessage'
7
+ import { OutgoingMessage } from './OutgoingMessage'
9
8
 
10
9
  export class MessageReceiver {
11
10
 
12
11
  message: IncomingMessage
13
12
 
13
+ broadcasted = false
14
+
14
15
  constructor(message: IncomingMessage) {
15
16
  this.message = message
16
17
  }
17
18
 
19
+ public setBroadcasted(value: boolean) {
20
+ this.broadcasted = value
21
+
22
+ return this
23
+ }
24
+
18
25
  public apply(provider: HocuspocusProvider, emitSynced = true) {
19
- switch (this.message.type) {
26
+ const { message } = this
27
+ const type = message.readVarUint()
28
+
29
+ switch (type) {
20
30
  case MessageType.Sync:
21
31
  this.applySyncMessage(provider, emitSynced)
22
32
  break
@@ -34,51 +44,73 @@ export class MessageReceiver {
34
44
  break
35
45
 
36
46
  default:
37
- throw new Error(`Can’t apply unknown type of message: ${this.message.type}`)
47
+ throw new Error(`Can’t apply message of unknown type: ${type}`)
38
48
  }
39
49
 
40
- return this.message.encoder
50
+ // Reply
51
+ if (message.length() > 1) {
52
+ if (this.broadcasted) {
53
+ // TODO: Some weird TypeScript error
54
+ // @ts-ignore
55
+ provider.broadcast(OutgoingMessage, { encoder: message.encoder })
56
+ } else {
57
+ // TODO: Some weird TypeScript error
58
+ // @ts-ignore
59
+ provider.send(OutgoingMessage, { encoder: message.encoder })
60
+ }
61
+ }
41
62
  }
42
63
 
43
64
  private applySyncMessage(provider: HocuspocusProvider, emitSynced: boolean) {
44
- encoding.writeVarUint(this.message.encoder, MessageType.Sync)
65
+ const { message } = this
66
+
67
+ message.writeVarUint(MessageType.Sync)
45
68
 
46
- const syncMessageType = syncProtocol.readSyncMessage(
47
- this.message.decoder,
48
- this.message.encoder,
69
+ // Apply update
70
+ const syncMessageType = readSyncMessage(
71
+ message.decoder,
72
+ message.encoder,
49
73
  provider.document,
50
74
  provider,
51
75
  )
52
76
 
53
- if (emitSynced && syncMessageType === syncProtocol.messageYjsSyncStep2) {
77
+ // Synced once we receive Step2
78
+ if (emitSynced && (syncMessageType === messageYjsSyncStep2)) {
54
79
  provider.synced = true
55
80
  }
81
+
82
+ if (syncMessageType === messageYjsUpdate || syncMessageType === messageYjsSyncStep2) {
83
+ if (provider.unsyncedChanges > 0) {
84
+ provider.unsyncedChanges -= 1
85
+ }
86
+ }
56
87
  }
57
88
 
58
89
  private applyAwarenessMessage(provider: HocuspocusProvider) {
90
+ const { message } = this
91
+
59
92
  awarenessProtocol.applyAwarenessUpdate(
60
93
  provider.awareness,
61
- decoding.readVarUint8Array(this.message.decoder),
94
+ message.readVarUint8Array(),
62
95
  provider,
63
96
  )
64
97
  }
65
98
 
66
- // TODO: This isn’t really used. Needs to be implemented in the server, or removed here.
67
99
  private applyAuthMessage(provider: HocuspocusProvider) {
68
- authProtocol.readAuthMessage(
69
- this.message.decoder,
70
- provider.document,
71
- // TODO: Add a configureable hook
72
- (provider, reason) => {
73
- console.warn(`Permission denied to access ${provider.url}.\n${reason}`)
74
- },
100
+ const { message } = this
101
+
102
+ readAuthMessage(
103
+ message.decoder,
104
+ provider.permissionDeniedHandler.bind(provider),
105
+ provider.authenticatedHandler.bind(provider),
75
106
  )
76
107
  }
77
108
 
78
109
  private applyQueryAwarenessMessage(provider: HocuspocusProvider) {
79
- encoding.writeVarUint(this.message.encoder, MessageType.Awareness)
80
- encoding.writeVarUint8Array(
81
- this.message.encoder,
110
+ const { message } = this
111
+
112
+ message.writeVarUint(MessageType.Awareness)
113
+ message.writeVarUint8Array(
82
114
  awarenessProtocol.encodeAwarenessUpdate(
83
115
  provider.awareness,
84
116
  Array.from(provider.awareness.getStates().keys()),
@@ -1,32 +1,20 @@
1
- import * as encoding from 'lib0/encoding'
1
+ import { Encoder, toUint8Array } from 'lib0/encoding'
2
2
  import * as bc from 'lib0/broadcastchannel'
3
- import { OutgoingMessage } from './OutgoingMessage'
4
- import { AwarenessMessage } from './OutgoingMessages/AwarenessMessage'
5
- import { QueryAwarenessMessage } from './OutgoingMessages/QueryAwarenessMessage'
6
- import { SyncStepOneMessage } from './OutgoingMessages/SyncStepOneMessage'
7
- import { SyncStepTwoMessage } from './OutgoingMessages/SyncStepTwoMessage'
8
- import { UpdateMessage } from './OutgoingMessages/UpdateMessage'
9
- import { Constructable } from './types'
3
+ import { ConstructableOutgoingMessage } from './types'
10
4
 
11
5
  export class MessageSender {
12
6
 
13
- encoder: encoding.Encoder
7
+ encoder: Encoder
14
8
 
15
9
  message: any
16
10
 
17
- constructor(Message:
18
- Constructable<AwarenessMessage> |
19
- Constructable<QueryAwarenessMessage> |
20
- Constructable<SyncStepOneMessage> |
21
- Constructable<SyncStepTwoMessage> |
22
- Constructable<UpdateMessage>,
23
- args: any = {}) {
11
+ constructor(Message: ConstructableOutgoingMessage, args: any = {}) {
24
12
  this.message = new Message()
25
13
  this.encoder = this.message.get(args)
26
14
  }
27
15
 
28
16
  create() {
29
- return encoding.toUint8Array(this.encoder)
17
+ return toUint8Array(this.encoder)
30
18
  }
31
19
 
32
20
  send(webSocket: any) {
@@ -1,20 +1,20 @@
1
- import * as encoding from 'lib0/encoding'
2
- import { MessageType, OutgoingMessageInterface } from './types'
1
+ import { Encoder, createEncoder, toUint8Array } from 'lib0/encoding'
2
+ import { MessageType, OutgoingMessageArguments, OutgoingMessageInterface } from './types'
3
3
 
4
4
  export class OutgoingMessage implements OutgoingMessageInterface {
5
- encoder: encoding.Encoder
5
+ encoder: Encoder
6
6
 
7
7
  type?: MessageType
8
8
 
9
9
  constructor() {
10
- this.encoder = encoding.createEncoder()
10
+ this.encoder = createEncoder()
11
11
  }
12
12
 
13
- get name() {
14
- if (typeof this.type === 'number') {
15
- return MessageType[this.type]
16
- }
13
+ get(args: Partial<OutgoingMessageArguments>) {
14
+ return args.encoder
15
+ }
17
16
 
18
- throw new Error('Type for outgoing message not set.')
17
+ toUint8Array() {
18
+ return toUint8Array(this.encoder)
19
19
  }
20
20
  }
@@ -0,0 +1,21 @@
1
+ import { writeVarUint } from 'lib0/encoding'
2
+ import { writeAuthentication } from '@hocuspocus/common'
3
+ import { MessageType, OutgoingMessageArguments } from '../types'
4
+ import { OutgoingMessage } from '../OutgoingMessage'
5
+
6
+ export class AuthenticationMessage extends OutgoingMessage {
7
+ type = MessageType.Auth
8
+
9
+ description = 'Authentication'
10
+
11
+ get(args: Partial<OutgoingMessageArguments>) {
12
+ if (typeof args.token === 'undefined') {
13
+ throw new Error('The authentication message requires `token` as an argument.')
14
+ }
15
+
16
+ writeVarUint(this.encoder, this.type)
17
+ writeAuthentication(this.encoder, args.token)
18
+
19
+ return this.encoder
20
+ }
21
+ }
@@ -1,5 +1,5 @@
1
1
  import * as encoding from 'lib0/encoding'
2
- import { Awareness, encodeAwarenessUpdate } from 'y-protocols/awareness'
2
+ import { encodeAwarenessUpdate } from 'y-protocols/awareness'
3
3
  import { MessageType, OutgoingMessageArguments } from '../types'
4
4
  import { OutgoingMessage } from '../OutgoingMessage'
5
5
 
@@ -1,4 +1,3 @@
1
- import * as Y from 'yjs'
2
1
  import * as encoding from 'lib0/encoding'
3
2
  import * as syncProtocol from 'y-protocols/sync'
4
3
  import { MessageType, OutgoingMessageArguments } from '../types'
@@ -1,5 +1,5 @@
1
- import * as encoding from 'lib0/encoding'
2
- import * as syncProtocol from 'y-protocols/sync'
1
+ import { writeVarUint } from 'lib0/encoding'
2
+ import { writeUpdate } from 'y-protocols/sync'
3
3
  import { MessageType, OutgoingMessageArguments } from '../types'
4
4
  import { OutgoingMessage } from '../OutgoingMessage'
5
5
 
@@ -9,8 +9,8 @@ export class UpdateMessage extends OutgoingMessage {
9
9
  description = 'A document update'
10
10
 
11
11
  get(args: Partial<OutgoingMessageArguments>) {
12
- encoding.writeVarUint(this.encoder, this.type)
13
- syncProtocol.writeUpdate(this.encoder, args.update)
12
+ writeVarUint(this.encoder, this.type)
13
+ writeUpdate(this.encoder, args.update)
14
14
 
15
15
  return this.encoder
16
16
  }
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export * from './HocuspocusProvider'
2
+ export * from './HocuspocusCloudProvider'
2
3
  export * from './types'
3
- export * from './utils'
package/src/types.ts CHANGED
@@ -1,6 +1,15 @@
1
1
  import { Awareness } from 'y-protocols/awareness'
2
2
  import * as Y from 'yjs'
3
- import * as encoding from 'lib0/encoding'
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'
4
13
 
5
14
  export enum MessageType {
6
15
  Sync = 0,
@@ -9,20 +18,78 @@ export enum MessageType {
9
18
  QueryAwareness = 3,
10
19
  }
11
20
 
12
- export interface OutgoingMessageInterface {
13
- encoder: encoding.Encoder
21
+ export enum WebSocketStatus {
22
+ Connecting = 'connecting',
23
+ Connected = 'connected',
24
+ Disconnected = 'disconnected',
25
+ }
14
26
 
27
+ export interface OutgoingMessageInterface {
28
+ encoder: Encoder
15
29
  type?: MessageType
16
30
  }
17
31
 
18
32
  export interface OutgoingMessageArguments {
33
+ token: string,
19
34
  document: Y.Doc,
20
35
  awareness: Awareness,
21
36
  clients: number[],
22
37
  states: Map<number, { [key: string]: any; }>,
23
38
  update: any,
39
+ encoder: Encoder,
24
40
  }
25
41
 
26
42
  export interface Constructable<T> {
27
43
  new(...args: any) : T
28
44
  }
45
+
46
+ export type ConstructableOutgoingMessage =
47
+ Constructable<AuthenticationMessage> |
48
+ Constructable<AwarenessMessage> |
49
+ Constructable<QueryAwarenessMessage> |
50
+ Constructable<SyncStepOneMessage> |
51
+ Constructable<SyncStepTwoMessage> |
52
+ Constructable<UpdateMessage>
53
+
54
+ export type onAuthenticationFailedParameters = {
55
+ reason: string,
56
+ }
57
+
58
+ export type onOpenParameters = {
59
+ event: Event,
60
+ }
61
+
62
+ export type onMessageParameters = {
63
+ event: MessageEvent,
64
+ message: IncomingMessage,
65
+ }
66
+
67
+ export type onOutgoingMessageParameters = {
68
+ message: OutgoingMessage,
69
+ }
70
+
71
+ export type onStatusParameters = {
72
+ status: WebSocketStatus,
73
+ }
74
+
75
+ export type onSyncedParameters = {
76
+ state: boolean,
77
+ }
78
+
79
+ export type onDisconnectParameters = {
80
+ event: CloseEvent,
81
+ }
82
+
83
+ export type onCloseParameters = {
84
+ event: CloseEvent,
85
+ }
86
+
87
+ export type onAwarenessUpdateParameters = {
88
+ states: StatesArray
89
+ }
90
+
91
+ export type onAwarenessChangeParameters = {
92
+ states: StatesArray
93
+ }
94
+
95
+ export type StatesArray = { clientId: number, [key: string | number]: any }[]
package/CHANGELOG.md DELETED
@@ -1,24 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [1.0.0-alpha.4](https://github.com/ueberdosis/hocuspocus/compare/@hocuspocus/provider@1.0.0-alpha.3...@hocuspocus/provider@1.0.0-alpha.4) (2021-06-09)
7
-
8
- **Note:** Version bump only for package @hocuspocus/provider
9
-
10
-
11
-
12
-
13
-
14
- # [1.0.0-alpha.3](https://github.com/ueberdosis/hocuspocus/compare/@hocuspocus/provider@1.0.0-alpha.2...@hocuspocus/provider@1.0.0-alpha.3) (2021-06-09)
15
-
16
- **Note:** Version bump only for package @hocuspocus/provider
17
-
18
-
19
-
20
-
21
-
22
- # 1.0.0-alpha.2 (2021-06-08)
23
-
24
- **Note:** Version bump only for package @hocuspocus/provider