@atlaskit/collab-provider 7.4.3 → 7.4.4
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/CHANGELOG.md +6 -0
- package/dist/cjs/provider/index.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/channel.js +1 -1
- package/dist/esm/provider/catchup.js +1 -1
- package/dist/esm/provider/index.js +1 -1
- package/dist/esm/version.json +1 -1
- package/package.json +4 -4
- package/report.api.md +289 -0
package/CHANGELOG.md
CHANGED
|
@@ -11,10 +11,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
13
|
|
|
14
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
-
|
|
16
14
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
17
15
|
|
|
16
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
17
|
+
|
|
18
18
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
19
19
|
|
|
20
20
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/version.json
CHANGED
package/dist/esm/channel.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
2
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
4
3
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -7,6 +6,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
|
|
|
7
6
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
8
7
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
9
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
10
|
|
|
11
11
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
12
12
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
|
|
4
4
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
5
5
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
4
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
6
5
|
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
7
6
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
@@ -12,6 +11,7 @@ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstruct
|
|
|
12
11
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
13
12
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
14
13
|
var _excluded = ["type"];
|
|
14
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
15
15
|
|
|
16
16
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
17
17
|
|
package/dist/esm/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/collab-provider",
|
|
3
|
-
"version": "7.4.
|
|
3
|
+
"version": "7.4.4",
|
|
4
4
|
"description": "A provider for collaborative editing.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@atlaskit/analytics-gas-types": "5.0.7",
|
|
25
|
-
"@atlaskit/analytics-listeners": "^8.
|
|
26
|
-
"@atlaskit/editor-common": "^
|
|
25
|
+
"@atlaskit/analytics-listeners": "^8.3.0",
|
|
26
|
+
"@atlaskit/editor-common": "^69.0.0",
|
|
27
27
|
"@atlaskit/editor-json-transformer": "^8.7.0",
|
|
28
28
|
"@atlaskit/util-service-support": "^6.1.0",
|
|
29
29
|
"@babel/runtime": "^7.0.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@atlaskit/editor-test-helpers": "^17.
|
|
47
|
+
"@atlaskit/editor-test-helpers": "^17.1.0",
|
|
48
48
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
49
49
|
"@types/prosemirror-collab": "^1.1.1",
|
|
50
50
|
"@types/prosemirror-model": "^1.11.0",
|
package/report.api.md
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
## API Report File for "@atlaskit/collab-provider"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import type { AnalyticsWebClient } from '@atlaskit/analytics-listeners';
|
|
7
|
+
import { CollabEditProvider } from '@atlaskit/editor-common/collab';
|
|
8
|
+
import type { CollabEventConnectionData } from '@atlaskit/editor-common/collab';
|
|
9
|
+
import type { CollabEventInitData } from '@atlaskit/editor-common/collab';
|
|
10
|
+
import type { CollabEventPresenceData } from '@atlaskit/editor-common/collab';
|
|
11
|
+
import type { CollabEventRemoteData } from '@atlaskit/editor-common/collab';
|
|
12
|
+
import type { CollabEventTelepointerData } from '@atlaskit/editor-common/collab';
|
|
13
|
+
import type { CollabParticipant } from '@atlaskit/editor-common/collab';
|
|
14
|
+
import { EditorState } from 'prosemirror-state';
|
|
15
|
+
import type { Manager } from 'socket.io-client';
|
|
16
|
+
import { ResolvedEditorState } from '@atlaskit/editor-common/collab';
|
|
17
|
+
import type { Step } from 'prosemirror-transform';
|
|
18
|
+
import { SyncUpErrorFunction } from '@atlaskit/editor-common/types';
|
|
19
|
+
import { Transaction } from 'prosemirror-state';
|
|
20
|
+
|
|
21
|
+
declare type BaseEvents = Pick<
|
|
22
|
+
CollabEditProvider<CollabEvents>,
|
|
23
|
+
'setup' | 'send' | 'sendMessage'
|
|
24
|
+
>;
|
|
25
|
+
|
|
26
|
+
export declare type CollabConnectedPayload = CollabEventConnectionData;
|
|
27
|
+
|
|
28
|
+
export declare interface CollabDataPayload extends CollabEventRemoteData {
|
|
29
|
+
version: number;
|
|
30
|
+
json: StepJson[];
|
|
31
|
+
userIds: string[];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export declare interface CollabDisconnectedPayload {
|
|
35
|
+
reason: DisconnectReason;
|
|
36
|
+
sid: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export declare interface CollabErrorPayload {
|
|
40
|
+
status: number;
|
|
41
|
+
code: string;
|
|
42
|
+
message: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export declare interface CollabEvents {
|
|
46
|
+
'metadata:changed': CollabMetadataPayload;
|
|
47
|
+
init: CollabInitPayload;
|
|
48
|
+
connected: CollabConnectedPayload;
|
|
49
|
+
disconnected: CollabDisconnectedPayload;
|
|
50
|
+
data: CollabDataPayload;
|
|
51
|
+
telepointer: CollabTelepointerPayload;
|
|
52
|
+
presence: CollabPresencePayload;
|
|
53
|
+
'local-steps': CollabLocalStepsPayload;
|
|
54
|
+
error: CollabErrorPayload;
|
|
55
|
+
entity: any;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export declare interface CollabInitPayload extends CollabEventInitData {
|
|
59
|
+
doc: any;
|
|
60
|
+
version: number;
|
|
61
|
+
userId?: string;
|
|
62
|
+
metadata?: Metadata_2;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export declare type CollabLocalStepsPayload = {
|
|
66
|
+
steps: Step[];
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export declare type CollabMetadataPayload = Metadata_2;
|
|
70
|
+
|
|
71
|
+
export declare type CollabPresencePayload = CollabEventPresenceData;
|
|
72
|
+
|
|
73
|
+
export declare type CollabTelepointerPayload = CollabEventTelepointerData;
|
|
74
|
+
|
|
75
|
+
declare interface Config {
|
|
76
|
+
url: string;
|
|
77
|
+
documentAri: string;
|
|
78
|
+
lifecycle?: Lifecycle;
|
|
79
|
+
storage?: Storage_2;
|
|
80
|
+
need404?: boolean;
|
|
81
|
+
createSocket(
|
|
82
|
+
path: string,
|
|
83
|
+
auth?: (cb: (data: object) => void) => void,
|
|
84
|
+
): Socket;
|
|
85
|
+
analyticsClient?: AnalyticsWebClient;
|
|
86
|
+
getUser?(
|
|
87
|
+
userId: string,
|
|
88
|
+
): Promise<
|
|
89
|
+
Pick<CollabParticipant, 'avatar' | 'email' | 'name'> & {
|
|
90
|
+
userId: string;
|
|
91
|
+
}
|
|
92
|
+
>;
|
|
93
|
+
permissionTokenRefresh?: () => Promise<string>;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
declare enum DisconnectReason {
|
|
97
|
+
CLIENT_DISCONNECT = 'CLIENT_DISCONNECT',
|
|
98
|
+
SERVER_DISCONNECT = 'SERVER_DISCONNECT',
|
|
99
|
+
SOCKET_CLOSED = 'SOCKET_CLOSED',
|
|
100
|
+
SOCKET_ERROR = 'SOCKET_ERROR',
|
|
101
|
+
SOCKET_TIMEOUT = 'SOCKET_TIMEOUT',
|
|
102
|
+
UNKNOWN_DISCONNECT = 'UNKNOWN_DISCONNECT',
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
declare class Emitter<T = any> {
|
|
106
|
+
private eventEmitter;
|
|
107
|
+
/**
|
|
108
|
+
* Emit events to subscribers
|
|
109
|
+
*/
|
|
110
|
+
protected emit<K extends keyof T>(evt: K, data: T[K]): this;
|
|
111
|
+
/**
|
|
112
|
+
* Subscribe to events emitted by this provider
|
|
113
|
+
*/
|
|
114
|
+
on<K extends keyof T>(evt: K, handler: (args: T[K]) => void): this;
|
|
115
|
+
/**
|
|
116
|
+
* Unsubscribe from events emitted by this provider
|
|
117
|
+
*/
|
|
118
|
+
off<K extends keyof T>(evt: K, handler: (args: T[K]) => void): this;
|
|
119
|
+
/**
|
|
120
|
+
* Unsubscribe from all events emitted by this provider.
|
|
121
|
+
*/
|
|
122
|
+
unsubscribeAll<K extends keyof T>(evt?: K): this;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
declare type EventHandler = () => void;
|
|
126
|
+
|
|
127
|
+
declare interface Lifecycle {
|
|
128
|
+
on(event: LifecycleEvents, handler: EventHandler): void;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
declare type LifecycleEvents = 'save' | 'restore';
|
|
132
|
+
|
|
133
|
+
declare interface Metadata_2 {
|
|
134
|
+
[key: string]: string | number | boolean;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export declare class Provider
|
|
138
|
+
extends Emitter<CollabEvents>
|
|
139
|
+
implements BaseEvents {
|
|
140
|
+
private participants;
|
|
141
|
+
private channel;
|
|
142
|
+
private config;
|
|
143
|
+
private getState;
|
|
144
|
+
private metadata;
|
|
145
|
+
private stepRejectCounter;
|
|
146
|
+
private analyticsClient?;
|
|
147
|
+
private isChannelInitialized;
|
|
148
|
+
private onSyncUpError?;
|
|
149
|
+
private sessionId?;
|
|
150
|
+
private clientId?;
|
|
151
|
+
private userId?;
|
|
152
|
+
private participantUpdateTimeout?;
|
|
153
|
+
private presenceUpdateTimeout?;
|
|
154
|
+
private disconnectedAt?;
|
|
155
|
+
constructor(config: Config);
|
|
156
|
+
private initializeChannel;
|
|
157
|
+
/**
|
|
158
|
+
* Called by collab plugin in editor when it's ready to
|
|
159
|
+
* initialize a collab session.
|
|
160
|
+
*/
|
|
161
|
+
initialize(getState: () => EditorState): this;
|
|
162
|
+
setup({
|
|
163
|
+
getState,
|
|
164
|
+
onSyncUpError,
|
|
165
|
+
}: {
|
|
166
|
+
getState: () => EditorState;
|
|
167
|
+
onSyncUpError?: SyncUpErrorFunction;
|
|
168
|
+
}): this;
|
|
169
|
+
/**
|
|
170
|
+
* We can use this function to throttle/delay
|
|
171
|
+
* Any send steps operation
|
|
172
|
+
*
|
|
173
|
+
* The getState function will return the current EditorState
|
|
174
|
+
* from the EditorView.
|
|
175
|
+
*/
|
|
176
|
+
private sendStepsFromCurrentState;
|
|
177
|
+
/**
|
|
178
|
+
* Send steps from transaction to other participants
|
|
179
|
+
*/
|
|
180
|
+
send(
|
|
181
|
+
_tr: Transaction | null,
|
|
182
|
+
_oldState: EditorState | null,
|
|
183
|
+
newState: EditorState,
|
|
184
|
+
): void;
|
|
185
|
+
/**
|
|
186
|
+
* Called when we receive steps from the service
|
|
187
|
+
*/
|
|
188
|
+
private onStepsAdded;
|
|
189
|
+
private throttledCatchup;
|
|
190
|
+
private fitlerQueue;
|
|
191
|
+
private updateDocumentWithMetadata;
|
|
192
|
+
private applyLocalsteps;
|
|
193
|
+
private getCurrentPmVersion;
|
|
194
|
+
private getUnconfirmedSteps;
|
|
195
|
+
/**
|
|
196
|
+
* Called when:
|
|
197
|
+
* * session established(offline -> online)
|
|
198
|
+
* * try to accept steps but version is behind.
|
|
199
|
+
*/
|
|
200
|
+
private catchup;
|
|
201
|
+
private onErrorHandled;
|
|
202
|
+
private pauseQueue?;
|
|
203
|
+
private queue;
|
|
204
|
+
private queueSteps;
|
|
205
|
+
private processQueue;
|
|
206
|
+
private processSteps;
|
|
207
|
+
/**
|
|
208
|
+
* Send messages, such as telepointers, to other participants.
|
|
209
|
+
*/
|
|
210
|
+
sendMessage(data: any): void;
|
|
211
|
+
private sendPresence;
|
|
212
|
+
/**
|
|
213
|
+
* Called when a participant joins the session.
|
|
214
|
+
*
|
|
215
|
+
* We keep track of participants internally in this class, and emit the `presence` event to update
|
|
216
|
+
* the active avatars in the editor.
|
|
217
|
+
* This method will be triggered from backend to notify all participants to exchange presence
|
|
218
|
+
*
|
|
219
|
+
*/
|
|
220
|
+
private onPresenceJoined;
|
|
221
|
+
private onPresence;
|
|
222
|
+
/**
|
|
223
|
+
* Called when a metadata is changed.
|
|
224
|
+
*
|
|
225
|
+
*/
|
|
226
|
+
private onMetadataChanged;
|
|
227
|
+
/**
|
|
228
|
+
* Called when a participant leaves the session.
|
|
229
|
+
*
|
|
230
|
+
* We emit the `presence` event to update the active avatars in the editor.
|
|
231
|
+
*/
|
|
232
|
+
private onParticipantLeft;
|
|
233
|
+
/**
|
|
234
|
+
* Called when we receive an update event from another participant.
|
|
235
|
+
*/
|
|
236
|
+
private onParticipantUpdated;
|
|
237
|
+
/**
|
|
238
|
+
* Called when we receive a telepointer update from another
|
|
239
|
+
* participant.
|
|
240
|
+
*/
|
|
241
|
+
private onParticipantTelepointer;
|
|
242
|
+
private updateParticipant;
|
|
243
|
+
/**
|
|
244
|
+
* Keep list of participants up to date. Filter out inactive users etc.
|
|
245
|
+
*/
|
|
246
|
+
private updateParticipants;
|
|
247
|
+
private emitTelepointersFromSteps;
|
|
248
|
+
private disconnectedReasonMapper;
|
|
249
|
+
private onDisconnected;
|
|
250
|
+
destroy(): this;
|
|
251
|
+
disconnect(): this;
|
|
252
|
+
setTitle(title: string, broadcast?: boolean): void;
|
|
253
|
+
setEditorWidth(editorWidth: string, broadcast?: boolean): void;
|
|
254
|
+
setMetadata(metadata: Metadata_2): void;
|
|
255
|
+
getFinalAcknowledgedState: () => Promise<ResolvedEditorState>;
|
|
256
|
+
/**
|
|
257
|
+
* Unsubscribe from all events emitted by this provider.
|
|
258
|
+
*/
|
|
259
|
+
unsubscribeAll(): this;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
declare interface SimpleEventEmitter {
|
|
263
|
+
on(event: string, fn: Function): SimpleEventEmitter;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export declare interface Socket extends SimpleEventEmitter {
|
|
267
|
+
id: string;
|
|
268
|
+
connect(): Socket;
|
|
269
|
+
emit(event: string, ...args: any[]): Socket;
|
|
270
|
+
close(): Socket;
|
|
271
|
+
io?: Manager;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
declare type StepJson = {
|
|
275
|
+
from?: number;
|
|
276
|
+
to?: number;
|
|
277
|
+
stepType?: string;
|
|
278
|
+
clientId: string;
|
|
279
|
+
userId: string;
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
declare interface Storage_2 {
|
|
283
|
+
get(key: string): Promise<string>;
|
|
284
|
+
set(key: string, value: string): Promise<void>;
|
|
285
|
+
delete(key: string): Promise<void>;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
export {};
|
|
289
|
+
```
|