@atlaskit/collab-provider 14.1.0 → 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 CHANGED
@@ -1,5 +1,18 @@
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
+
10
+ ## 14.1.1
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies
15
+
3
16
  ## 14.1.0
4
17
 
5
18
  ### Minor 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
  }
@@ -26,6 +26,9 @@ export class NullDocumentService {
26
26
  getUnconfirmedSteps() {
27
27
  return undefined;
28
28
  }
29
+ getUnconfirmedStepsOrigins() {
30
+ return undefined;
31
+ }
29
32
  getCurrentPmVersion() {
30
33
  return -1;
31
34
  }
@@ -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;
@@ -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 = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/collab-provider",
3
- "version": "14.1.0",
3
+ "version": "14.1.2",
4
4
  "description": "A provider for collaborative editing.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -36,7 +36,7 @@
36
36
  "@atlaskit/platform-feature-flags": "^1.1.0",
37
37
  "@atlaskit/prosemirror-collab": "^0.22.0",
38
38
  "@atlaskit/react-ufo": "^4.15.0",
39
- "@atlaskit/tmp-editor-statsig": "^14.0.0",
39
+ "@atlaskit/tmp-editor-statsig": "^15.0.0",
40
40
  "@atlaskit/ufo": "^0.4.0",
41
41
  "@atlaskit/util-service-support": "^6.3.0",
42
42
  "@babel/runtime": "^7.0.0",
@@ -62,7 +62,7 @@
62
62
  }
63
63
  },
64
64
  "devDependencies": {
65
- "@atlaskit/adf-schema": "^51.4.0",
65
+ "@atlaskit/adf-schema": "^51.5.1",
66
66
  "@atlassian/feature-flags-test-utils": "^1.0.0"
67
67
  },
68
68
  "platform-feature-flags": {
@@ -74,6 +74,6 @@
74
74
  }
75
75
  },
76
76
  "peerDependencies": {
77
- "@atlaskit/editor-common": "^110.36.0"
77
+ "@atlaskit/editor-common": "^110.40.0"
78
78
  }
79
79
  }