@atlaskit/collab-provider 14.1.1 → 14.1.2
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 +7 -0
- package/dist/cjs/document/null-document-service.js +5 -0
- package/dist/cjs/provider/get-offline-steps-length.js +36 -0
- package/dist/cjs/provider/index.js +4 -0
- package/dist/es2019/document/null-document-service.js +3 -0
- package/dist/es2019/provider/get-offline-steps-length.js +25 -0
- package/dist/es2019/provider/index.js +4 -0
- package/dist/esm/document/null-document-service.js +5 -0
- package/dist/esm/provider/get-offline-steps-length.js +29 -0
- package/dist/esm/provider/index.js +4 -0
- package/dist/types/document/null-document-service.d.ts +1 -0
- package/dist/types/provider/get-offline-steps-length.d.ts +4 -0
- package/dist/types/types.d.ts +2 -0
- package/dist/types-ts4.5/document/null-document-service.d.ts +1 -0
- package/dist/types-ts4.5/provider/get-offline-steps-length.d.ts +4 -0
- package/dist/types-ts4.5/types.d.ts +2 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/collab-provider
|
|
2
2
|
|
|
3
|
+
## 14.1.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`0d4df322f7f0b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0d4df322f7f0b) -
|
|
8
|
+
Add additional offline analytics on reconnection
|
|
9
|
+
|
|
3
10
|
## 14.1.1
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
|
@@ -59,6 +59,11 @@ var NullDocumentService = exports.NullDocumentService = /*#__PURE__*/function ()
|
|
|
59
59
|
value: function getUnconfirmedSteps() {
|
|
60
60
|
return undefined;
|
|
61
61
|
}
|
|
62
|
+
}, {
|
|
63
|
+
key: "getUnconfirmedStepsOrigins",
|
|
64
|
+
value: function getUnconfirmedStepsOrigins() {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
62
67
|
}, {
|
|
63
68
|
key: "getCurrentPmVersion",
|
|
64
69
|
value: function getCurrentPmVersion() {
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getOfflineReplaceStepsLength = getOfflineReplaceStepsLength;
|
|
7
|
+
exports.getOfflineStepsLength = getOfflineStepsLength;
|
|
8
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
9
|
+
function getOfflineSteps(steps, origins) {
|
|
10
|
+
if (!steps || !origins || steps.length !== origins.length) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if (origins.some(function (s) {
|
|
14
|
+
return (s === null || s === void 0 ? void 0 : s.getMeta('isOffline')) === true || (s === null || s === void 0 ? void 0 : s.getMeta('wasOffline')) === true;
|
|
15
|
+
})) {
|
|
16
|
+
var mapped = steps.filter(function (step, idx) {
|
|
17
|
+
var origin = origins[idx];
|
|
18
|
+
if (!origin) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
var createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
|
|
22
|
+
return createdOffline;
|
|
23
|
+
});
|
|
24
|
+
return mapped;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function getOfflineStepsLength(steps, origins) {
|
|
28
|
+
var _getOfflineSteps;
|
|
29
|
+
return (_getOfflineSteps = getOfflineSteps(steps, origins)) === null || _getOfflineSteps === void 0 ? void 0 : _getOfflineSteps.length;
|
|
30
|
+
}
|
|
31
|
+
function getOfflineReplaceStepsLength(steps, origins) {
|
|
32
|
+
var _getOfflineSteps2;
|
|
33
|
+
return (_getOfflineSteps2 = getOfflineSteps(steps, origins)) === null || _getOfflineSteps2 === void 0 ? void 0 : _getOfflineSteps2.filter(function (s) {
|
|
34
|
+
return s instanceof _transform.ReplaceStep;
|
|
35
|
+
}).length;
|
|
36
|
+
}
|
|
@@ -17,6 +17,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
17
17
|
var _uuid = require("uuid");
|
|
18
18
|
var _emitter = require("../emitter");
|
|
19
19
|
var _channel = require("../channel");
|
|
20
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
20
21
|
var _utils = require("../helpers/utils");
|
|
21
22
|
var _analyticsHelper = _interopRequireDefault(require("../analytics/analytics-helper"));
|
|
22
23
|
var _telepointersHelper = require("../participants/telepointers-helper");
|
|
@@ -34,6 +35,7 @@ var _api = require("../api/api");
|
|
|
34
35
|
var _performance = require("../analytics/performance");
|
|
35
36
|
var _nullApi = require("../api/null-api");
|
|
36
37
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
38
|
+
var _getOfflineStepsLength = require("./get-offline-steps-length");
|
|
37
39
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
38
40
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
39
41
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
@@ -146,6 +148,8 @@ var Provider = exports.Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
146
148
|
Date.now() - _this.disconnectedAt >= OUT_OF_SYNC_PERIOD) {
|
|
147
149
|
_this.documentService.throttledCatchupv2(_const.CatchupEventReason.RECONNECTED, {
|
|
148
150
|
disconnectionPeriodSeconds: Math.floor((Date.now() - _this.disconnectedAt) / 1000),
|
|
151
|
+
offlineStepsLength: (0, _experiments.editorExperiment)('platform_editor_offline_editing_web', true) ? (0, _getOfflineStepsLength.getOfflineStepsLength)(_this.documentService.getUnconfirmedSteps(), _this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
152
|
+
offlineReplaceStepsLength: (0, _experiments.editorExperiment)('platform_editor_offline_editing_web', true) ? (0, _getOfflineStepsLength.getOfflineReplaceStepsLength)(_this.documentService.getUnconfirmedSteps(), _this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
149
153
|
unconfirmedStepsLength: unconfirmedStepsLength
|
|
150
154
|
}, (0, _platformFeatureFlags.fg)('add_session_id_to_catchup_query') ? _this.sessionId : undefined);
|
|
151
155
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
|
|
2
|
+
function getOfflineSteps(steps, origins) {
|
|
3
|
+
if (!steps || !origins || steps.length !== origins.length) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (origins.some(s => (s === null || s === void 0 ? void 0 : s.getMeta('isOffline')) === true || (s === null || s === void 0 ? void 0 : s.getMeta('wasOffline')) === true)) {
|
|
7
|
+
const mapped = steps.filter((step, idx) => {
|
|
8
|
+
const origin = origins[idx];
|
|
9
|
+
if (!origin) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
const createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
|
|
13
|
+
return createdOffline;
|
|
14
|
+
});
|
|
15
|
+
return mapped;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function getOfflineStepsLength(steps, origins) {
|
|
19
|
+
var _getOfflineSteps;
|
|
20
|
+
return (_getOfflineSteps = getOfflineSteps(steps, origins)) === null || _getOfflineSteps === void 0 ? void 0 : _getOfflineSteps.length;
|
|
21
|
+
}
|
|
22
|
+
export function getOfflineReplaceStepsLength(steps, origins) {
|
|
23
|
+
var _getOfflineSteps2;
|
|
24
|
+
return (_getOfflineSteps2 = getOfflineSteps(steps, origins)) === null || _getOfflineSteps2 === void 0 ? void 0 : _getOfflineSteps2.filter(s => s instanceof ReplaceStep).length;
|
|
25
|
+
}
|
|
@@ -3,6 +3,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
4
4
|
import { Emitter } from '../emitter';
|
|
5
5
|
import { Channel } from '../channel';
|
|
6
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
6
7
|
import { createLogger, logObfuscatedSteps } from '../helpers/utils';
|
|
7
8
|
import AnalyticsHelper from '../analytics/analytics-helper';
|
|
8
9
|
import { telepointerCallback } from '../participants/telepointers-helper';
|
|
@@ -20,6 +21,7 @@ import { Api } from '../api/api';
|
|
|
20
21
|
import { shouldTelepointerBeSampled } from '../analytics/performance';
|
|
21
22
|
import { NullApi } from '../api/null-api';
|
|
22
23
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
24
|
+
import { getOfflineStepsLength, getOfflineReplaceStepsLength } from './get-offline-steps-length';
|
|
23
25
|
const logger = createLogger('Provider', 'black');
|
|
24
26
|
const OUT_OF_SYNC_PERIOD = 3 * 1000; // 3 seconds
|
|
25
27
|
|
|
@@ -126,6 +128,8 @@ export class Provider extends Emitter {
|
|
|
126
128
|
Date.now() - this.disconnectedAt >= OUT_OF_SYNC_PERIOD) {
|
|
127
129
|
this.documentService.throttledCatchupv2(CatchupEventReason.RECONNECTED, {
|
|
128
130
|
disconnectionPeriodSeconds: Math.floor((Date.now() - this.disconnectedAt) / 1000),
|
|
131
|
+
offlineStepsLength: editorExperiment('platform_editor_offline_editing_web', true) ? getOfflineStepsLength(this.documentService.getUnconfirmedSteps(), this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
132
|
+
offlineReplaceStepsLength: editorExperiment('platform_editor_offline_editing_web', true) ? getOfflineReplaceStepsLength(this.documentService.getUnconfirmedSteps(), this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
129
133
|
unconfirmedStepsLength: unconfirmedStepsLength
|
|
130
134
|
}, fg('add_session_id_to_catchup_query') ? this.sessionId : undefined);
|
|
131
135
|
}
|
|
@@ -52,6 +52,11 @@ export var NullDocumentService = /*#__PURE__*/function () {
|
|
|
52
52
|
value: function getUnconfirmedSteps() {
|
|
53
53
|
return undefined;
|
|
54
54
|
}
|
|
55
|
+
}, {
|
|
56
|
+
key: "getUnconfirmedStepsOrigins",
|
|
57
|
+
value: function getUnconfirmedStepsOrigins() {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
55
60
|
}, {
|
|
56
61
|
key: "getCurrentPmVersion",
|
|
57
62
|
value: function getCurrentPmVersion() {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReplaceStep } from '@atlaskit/editor-prosemirror/transform';
|
|
2
|
+
function getOfflineSteps(steps, origins) {
|
|
3
|
+
if (!steps || !origins || steps.length !== origins.length) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
if (origins.some(function (s) {
|
|
7
|
+
return (s === null || s === void 0 ? void 0 : s.getMeta('isOffline')) === true || (s === null || s === void 0 ? void 0 : s.getMeta('wasOffline')) === true;
|
|
8
|
+
})) {
|
|
9
|
+
var mapped = steps.filter(function (step, idx) {
|
|
10
|
+
var origin = origins[idx];
|
|
11
|
+
if (!origin) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
var createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
|
|
15
|
+
return createdOffline;
|
|
16
|
+
});
|
|
17
|
+
return mapped;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function getOfflineStepsLength(steps, origins) {
|
|
21
|
+
var _getOfflineSteps;
|
|
22
|
+
return (_getOfflineSteps = getOfflineSteps(steps, origins)) === null || _getOfflineSteps === void 0 ? void 0 : _getOfflineSteps.length;
|
|
23
|
+
}
|
|
24
|
+
export function getOfflineReplaceStepsLength(steps, origins) {
|
|
25
|
+
var _getOfflineSteps2;
|
|
26
|
+
return (_getOfflineSteps2 = getOfflineSteps(steps, origins)) === null || _getOfflineSteps2 === void 0 ? void 0 : _getOfflineSteps2.filter(function (s) {
|
|
27
|
+
return s instanceof ReplaceStep;
|
|
28
|
+
}).length;
|
|
29
|
+
}
|
|
@@ -16,6 +16,7 @@ function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prot
|
|
|
16
16
|
import { v4 as uuidv4 } from 'uuid';
|
|
17
17
|
import { Emitter } from '../emitter';
|
|
18
18
|
import { Channel } from '../channel';
|
|
19
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
19
20
|
import { createLogger, logObfuscatedSteps } from '../helpers/utils';
|
|
20
21
|
import AnalyticsHelper from '../analytics/analytics-helper';
|
|
21
22
|
import { telepointerCallback } from '../participants/telepointers-helper';
|
|
@@ -33,6 +34,7 @@ import { Api } from '../api/api';
|
|
|
33
34
|
import { shouldTelepointerBeSampled } from '../analytics/performance';
|
|
34
35
|
import { NullApi } from '../api/null-api';
|
|
35
36
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
37
|
+
import { getOfflineStepsLength, getOfflineReplaceStepsLength } from './get-offline-steps-length';
|
|
36
38
|
var logger = createLogger('Provider', 'black');
|
|
37
39
|
var OUT_OF_SYNC_PERIOD = 3 * 1000; // 3 seconds
|
|
38
40
|
|
|
@@ -140,6 +142,8 @@ export var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
140
142
|
Date.now() - _this.disconnectedAt >= OUT_OF_SYNC_PERIOD) {
|
|
141
143
|
_this.documentService.throttledCatchupv2(CatchupEventReason.RECONNECTED, {
|
|
142
144
|
disconnectionPeriodSeconds: Math.floor((Date.now() - _this.disconnectedAt) / 1000),
|
|
145
|
+
offlineStepsLength: editorExperiment('platform_editor_offline_editing_web', true) ? getOfflineStepsLength(_this.documentService.getUnconfirmedSteps(), _this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
146
|
+
offlineReplaceStepsLength: editorExperiment('platform_editor_offline_editing_web', true) ? getOfflineReplaceStepsLength(_this.documentService.getUnconfirmedSteps(), _this.documentService.getUnconfirmedStepsOrigins()) : undefined,
|
|
143
147
|
unconfirmedStepsLength: unconfirmedStepsLength
|
|
144
148
|
}, fg('add_session_id_to_catchup_query') ? _this.sessionId : undefined);
|
|
145
149
|
}
|
|
@@ -14,6 +14,7 @@ export declare class NullDocumentService implements DocumentServiceInterface {
|
|
|
14
14
|
getFinalAcknowledgedState(reason: GetResolvedEditorStateReason): Promise<ResolvedEditorState>;
|
|
15
15
|
getIsNamespaceLocked(): boolean;
|
|
16
16
|
getUnconfirmedSteps(): undefined;
|
|
17
|
+
getUnconfirmedStepsOrigins(): undefined;
|
|
17
18
|
getCurrentPmVersion(): number;
|
|
18
19
|
onErrorHandled: () => void;
|
|
19
20
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
export declare function getOfflineStepsLength(steps: readonly ProseMirrorStep[] | undefined, origins: readonly Transaction[] | undefined): number | undefined;
|
|
4
|
+
export declare function getOfflineReplaceStepsLength(steps: readonly ProseMirrorStep[] | undefined, origins: readonly Transaction[] | undefined): number | undefined;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -238,6 +238,8 @@ export interface Catchupv2Options {
|
|
|
238
238
|
}
|
|
239
239
|
export type ReconnectionMetadata = {
|
|
240
240
|
disconnectionPeriodSeconds: number | undefined;
|
|
241
|
+
offlineReplaceStepsLength: number | undefined;
|
|
242
|
+
offlineStepsLength: number | undefined;
|
|
241
243
|
unconfirmedStepsLength: number | undefined;
|
|
242
244
|
};
|
|
243
245
|
export type ProductInformation = {
|
|
@@ -14,6 +14,7 @@ export declare class NullDocumentService implements DocumentServiceInterface {
|
|
|
14
14
|
getFinalAcknowledgedState(reason: GetResolvedEditorStateReason): Promise<ResolvedEditorState>;
|
|
15
15
|
getIsNamespaceLocked(): boolean;
|
|
16
16
|
getUnconfirmedSteps(): undefined;
|
|
17
|
+
getUnconfirmedStepsOrigins(): undefined;
|
|
17
18
|
getCurrentPmVersion(): number;
|
|
18
19
|
onErrorHandled: () => void;
|
|
19
20
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Step as ProseMirrorStep } from '@atlaskit/editor-prosemirror/transform';
|
|
2
|
+
import type { Transaction } from '@atlaskit/editor-prosemirror/state';
|
|
3
|
+
export declare function getOfflineStepsLength(steps: readonly ProseMirrorStep[] | undefined, origins: readonly Transaction[] | undefined): number | undefined;
|
|
4
|
+
export declare function getOfflineReplaceStepsLength(steps: readonly ProseMirrorStep[] | undefined, origins: readonly Transaction[] | undefined): number | undefined;
|
|
@@ -238,6 +238,8 @@ export interface Catchupv2Options {
|
|
|
238
238
|
}
|
|
239
239
|
export type ReconnectionMetadata = {
|
|
240
240
|
disconnectionPeriodSeconds: number | undefined;
|
|
241
|
+
offlineReplaceStepsLength: number | undefined;
|
|
242
|
+
offlineStepsLength: number | undefined;
|
|
241
243
|
unconfirmedStepsLength: number | undefined;
|
|
242
244
|
};
|
|
243
245
|
export type ProductInformation = {
|