@atlaskit/collab-provider 14.0.0 → 14.0.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,19 @@
1
1
  # @atlaskit/collab-provider
2
2
 
3
+ ## 14.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`34c085d24f484`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/34c085d24f484) -
8
+ Add new offline metadata to steps if they contain steps that were created while offline.
9
+ - Updated dependencies
10
+
11
+ ## 14.0.1
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies
16
+
3
17
  ## 14.0.0
4
18
 
5
19
  ### Patch Changes
@@ -1110,7 +1110,8 @@ var DocumentService = exports.DocumentService = /*#__PURE__*/function () {
1110
1110
  hasRecovered: this.hasRecovered,
1111
1111
  collabMode: this.participantsService.getCollabMode(),
1112
1112
  reason: reason,
1113
- lockSteps: this.lockSteps
1113
+ lockSteps: this.lockSteps,
1114
+ stepOrigins: unconfirmedStepsData.origins
1114
1115
  });
1115
1116
  }
1116
1117
  }]);
@@ -13,6 +13,7 @@ var _const = require("../helpers/const");
13
13
  var _types = require("../types");
14
14
  var _ncsErrors = require("../errors/ncs-errors");
15
15
  var _utils = require("../helpers/utils");
16
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
16
17
  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; }
17
18
  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; }
18
19
  var logger = (0, _utils.createLogger)('commit-step', 'black');
@@ -49,7 +50,8 @@ var CommitStepService = exports.CommitStepService = /*#__PURE__*/function () {
49
50
  hasRecovered = _ref.hasRecovered,
50
51
  collabMode = _ref.collabMode,
51
52
  reason = _ref.reason,
52
- lockSteps = _ref.lockSteps;
53
+ lockSteps = _ref.lockSteps,
54
+ stepOrigins = _ref.stepOrigins;
53
55
  // this timer is for waiting to send the next batch in between acks from the BE
54
56
  var commitWaitTimer;
55
57
  // if publishing and not waiting for an ACK, then clear the commit timer and proceed, skipping the timer
@@ -113,6 +115,9 @@ var CommitStepService = exports.CommitStepService = /*#__PURE__*/function () {
113
115
  return step;
114
116
  });
115
117
  }
118
+ if ((0, _expValEquals.expValEquals)('platform_editor_offline_editing_web', 'isEnabled', true)) {
119
+ stepsWithClientAndUserId = this.addOfflineMetadata(stepsWithClientAndUserId, stepOrigins);
120
+ }
116
121
  var start = new Date().getTime();
117
122
  var ADD_STEPS_ACKNOWLEDGEMENT_ERROR_MSG = 'Error while adding steps - Invalid Acknowledgement';
118
123
  var ADD_STEPS_BROADCAST_ERROR_MSG = 'Error while adding steps - Broadcast threw exception';
@@ -200,6 +205,28 @@ var CommitStepService = exports.CommitStepService = /*#__PURE__*/function () {
200
205
  }
201
206
  return false;
202
207
  }
208
+ }, {
209
+ key: "addOfflineMetadata",
210
+ value: function addOfflineMetadata(stepsWithClientAndUserId, origins) {
211
+ if (origins.some(function (s) {
212
+ return s.getMeta('isOffline') === true || s.getMeta('wasOffline') === true;
213
+ })) {
214
+ return stepsWithClientAndUserId.map(function (step, idx) {
215
+ var origin = origins[idx];
216
+ if (!origin) {
217
+ return step;
218
+ }
219
+ var createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
220
+ if (createdOffline === true) {
221
+ step.metadata = _objectSpread(_objectSpread({}, step.metadata), {}, {
222
+ createdOffline: createdOffline
223
+ });
224
+ }
225
+ return step;
226
+ });
227
+ }
228
+ return stepsWithClientAndUserId;
229
+ }
203
230
  }, {
204
231
  key: "sendSuccessAnalytics",
205
232
  value: function sendSuccessAnalytics(latency, stepsWithClientAndUserId) {
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = exports.nextMajorVersion = exports.name = void 0;
7
7
  var name = exports.name = "@atlaskit/collab-provider";
8
- var version = exports.version = "13.0.4";
8
+ var version = exports.version = "0.0.0-development";
9
9
  var nextMajorVersion = exports.nextMajorVersion = function nextMajorVersion() {
10
10
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
11
11
  };
@@ -978,7 +978,8 @@ export class DocumentService {
978
978
  hasRecovered: this.hasRecovered,
979
979
  collabMode: this.participantsService.getCollabMode(),
980
980
  reason,
981
- lockSteps: this.lockSteps
981
+ lockSteps: this.lockSteps,
982
+ stepOrigins: unconfirmedStepsData.origins
982
983
  });
983
984
  }
984
985
  }
@@ -3,6 +3,7 @@ import { ADD_STEPS_TYPE, EVENT_ACTION, EVENT_STATUS } from '../helpers/const';
3
3
  import { AcknowledgementResponseTypes } from '../types';
4
4
  import { NCS_ERROR_CODE } from '../errors/ncs-errors';
5
5
  import { createLogger } from '../helpers/utils';
6
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
6
7
  const logger = createLogger('commit-step', 'black');
7
8
  export const RESET_READYTOCOMMIT_INTERVAL_MS = 5000;
8
9
  export class CommitStepService {
@@ -33,7 +34,8 @@ export class CommitStepService {
33
34
  hasRecovered,
34
35
  collabMode,
35
36
  reason,
36
- lockSteps
37
+ lockSteps,
38
+ stepOrigins
37
39
  }) {
38
40
  // this timer is for waiting to send the next batch in between acks from the BE
39
41
  let commitWaitTimer;
@@ -99,6 +101,9 @@ export class CommitStepService {
99
101
  return step;
100
102
  });
101
103
  }
104
+ if (expValEquals('platform_editor_offline_editing_web', 'isEnabled', true)) {
105
+ stepsWithClientAndUserId = this.addOfflineMetadata(stepsWithClientAndUserId, stepOrigins);
106
+ }
102
107
  const start = new Date().getTime();
103
108
  const ADD_STEPS_ACKNOWLEDGEMENT_ERROR_MSG = 'Error while adding steps - Invalid Acknowledgement';
104
109
  const ADD_STEPS_BROADCAST_ERROR_MSG = 'Error while adding steps - Broadcast threw exception';
@@ -184,6 +189,25 @@ export class CommitStepService {
184
189
  }
185
190
  return false;
186
191
  }
192
+ addOfflineMetadata(stepsWithClientAndUserId, origins) {
193
+ if (origins.some(s => s.getMeta('isOffline') === true || s.getMeta('wasOffline') === true)) {
194
+ return stepsWithClientAndUserId.map((step, idx) => {
195
+ const origin = origins[idx];
196
+ if (!origin) {
197
+ return step;
198
+ }
199
+ const createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
200
+ if (createdOffline === true) {
201
+ step.metadata = {
202
+ ...step.metadata,
203
+ createdOffline
204
+ };
205
+ }
206
+ return step;
207
+ });
208
+ }
209
+ return stepsWithClientAndUserId;
210
+ }
187
211
  sendSuccessAnalytics(latency, stepsWithClientAndUserId) {
188
212
  // Sample only 10% of add steps events to avoid overwhelming the analytics
189
213
  if (Math.random() < 0.1) {
@@ -1,5 +1,5 @@
1
1
  export const name = "@atlaskit/collab-provider";
2
- export const version = "13.0.4";
2
+ export const version = "0.0.0-development";
3
3
  export const nextMajorVersion = () => {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -1103,7 +1103,8 @@ export var DocumentService = /*#__PURE__*/function () {
1103
1103
  hasRecovered: this.hasRecovered,
1104
1104
  collabMode: this.participantsService.getCollabMode(),
1105
1105
  reason: reason,
1106
- lockSteps: this.lockSteps
1106
+ lockSteps: this.lockSteps,
1107
+ stepOrigins: unconfirmedStepsData.origins
1107
1108
  });
1108
1109
  }
1109
1110
  }]);
@@ -8,6 +8,7 @@ import { ADD_STEPS_TYPE, EVENT_ACTION, EVENT_STATUS } from '../helpers/const';
8
8
  import { AcknowledgementResponseTypes } from '../types';
9
9
  import { NCS_ERROR_CODE } from '../errors/ncs-errors';
10
10
  import { createLogger } from '../helpers/utils';
11
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
11
12
  var logger = createLogger('commit-step', 'black');
12
13
  export var RESET_READYTOCOMMIT_INTERVAL_MS = 5000;
13
14
  export var CommitStepService = /*#__PURE__*/function () {
@@ -42,7 +43,8 @@ export var CommitStepService = /*#__PURE__*/function () {
42
43
  hasRecovered = _ref.hasRecovered,
43
44
  collabMode = _ref.collabMode,
44
45
  reason = _ref.reason,
45
- lockSteps = _ref.lockSteps;
46
+ lockSteps = _ref.lockSteps,
47
+ stepOrigins = _ref.stepOrigins;
46
48
  // this timer is for waiting to send the next batch in between acks from the BE
47
49
  var commitWaitTimer;
48
50
  // if publishing and not waiting for an ACK, then clear the commit timer and proceed, skipping the timer
@@ -106,6 +108,9 @@ export var CommitStepService = /*#__PURE__*/function () {
106
108
  return step;
107
109
  });
108
110
  }
111
+ if (expValEquals('platform_editor_offline_editing_web', 'isEnabled', true)) {
112
+ stepsWithClientAndUserId = this.addOfflineMetadata(stepsWithClientAndUserId, stepOrigins);
113
+ }
109
114
  var start = new Date().getTime();
110
115
  var ADD_STEPS_ACKNOWLEDGEMENT_ERROR_MSG = 'Error while adding steps - Invalid Acknowledgement';
111
116
  var ADD_STEPS_BROADCAST_ERROR_MSG = 'Error while adding steps - Broadcast threw exception';
@@ -193,6 +198,28 @@ export var CommitStepService = /*#__PURE__*/function () {
193
198
  }
194
199
  return false;
195
200
  }
201
+ }, {
202
+ key: "addOfflineMetadata",
203
+ value: function addOfflineMetadata(stepsWithClientAndUserId, origins) {
204
+ if (origins.some(function (s) {
205
+ return s.getMeta('isOffline') === true || s.getMeta('wasOffline') === true;
206
+ })) {
207
+ return stepsWithClientAndUserId.map(function (step, idx) {
208
+ var origin = origins[idx];
209
+ if (!origin) {
210
+ return step;
211
+ }
212
+ var createdOffline = origin.getMeta('isOffline') || origin.getMeta('wasOffline');
213
+ if (createdOffline === true) {
214
+ step.metadata = _objectSpread(_objectSpread({}, step.metadata), {}, {
215
+ createdOffline: createdOffline
216
+ });
217
+ }
218
+ return step;
219
+ });
220
+ }
221
+ return stepsWithClientAndUserId;
222
+ }
196
223
  }, {
197
224
  key: "sendSuccessAnalytics",
198
225
  value: function sendSuccessAnalytics(latency, stepsWithClientAndUserId) {
@@ -1,5 +1,5 @@
1
1
  export var name = "@atlaskit/collab-provider";
2
- export var version = "13.0.4";
2
+ export var version = "0.0.0-development";
3
3
  export var nextMajorVersion = function nextMajorVersion() {
4
4
  return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
5
5
  };
@@ -117,6 +117,7 @@ export declare class DocumentService implements DocumentServiceInterface {
117
117
  to?: number | undefined;
118
118
  };
119
119
  stepMetadata: {
120
+ createdOffline?: boolean;
120
121
  prevStepId?: string;
121
122
  rebased?: boolean;
122
123
  reqId?: string;
@@ -47,6 +47,7 @@ export declare const getObfuscatedSteps: (steps: StepJson[], endIndex?: number |
47
47
  to?: number | undefined;
48
48
  };
49
49
  stepMetadata: {
50
+ createdOffline?: boolean;
50
51
  prevStepId?: string;
51
52
  rebased?: boolean;
52
53
  reqId?: string;
@@ -20,7 +20,7 @@ export declare class CommitStepService {
20
20
  * @param onErrorHandled - Callback to handle
21
21
  */
22
22
  constructor(broadcast: <K extends keyof ChannelEvent>(type: K, data: Omit<ChannelEvent[K], 'timestamp'>, callback?: Function) => void, analyticsHelper: AnalyticsHelper | undefined, emit: (evt: keyof CollabEvents, data: any) => void, onErrorHandled: (error: InternalError) => void);
23
- commitStepQueue({ steps, version, userId, clientId, onStepsAdded, __livePage, hasRecovered, collabMode, reason, lockSteps, }: {
23
+ commitStepQueue({ steps, version, userId, clientId, onStepsAdded, __livePage, hasRecovered, collabMode, reason, lockSteps, stepOrigins, }: {
24
24
  __livePage: boolean;
25
25
  clientId: number | string;
26
26
  collabMode: string;
@@ -28,11 +28,13 @@ export declare class CommitStepService {
28
28
  lockSteps: (stepOrigins?: readonly Transaction[]) => void;
29
29
  onStepsAdded: (data: StepsPayload) => void;
30
30
  reason?: GetResolvedEditorStateReason;
31
+ stepOrigins: readonly Transaction[];
31
32
  steps: readonly ProseMirrorStep[];
32
33
  userId: string;
33
34
  version: number;
34
35
  }): void;
35
36
  private isExpandChangeStep;
37
+ private addOfflineMetadata;
36
38
  private sendSuccessAnalytics;
37
39
  private sendFailureAnalytics;
38
40
  getReadyToCommitStatus(): boolean;
@@ -117,6 +117,7 @@ export declare class DocumentService implements DocumentServiceInterface {
117
117
  to?: number | undefined;
118
118
  };
119
119
  stepMetadata: {
120
+ createdOffline?: boolean;
120
121
  prevStepId?: string;
121
122
  rebased?: boolean;
122
123
  reqId?: string;
@@ -47,6 +47,7 @@ export declare const getObfuscatedSteps: (steps: StepJson[], endIndex?: number |
47
47
  to?: number | undefined;
48
48
  };
49
49
  stepMetadata: {
50
+ createdOffline?: boolean;
50
51
  prevStepId?: string;
51
52
  rebased?: boolean;
52
53
  reqId?: string;
@@ -20,7 +20,7 @@ export declare class CommitStepService {
20
20
  * @param onErrorHandled - Callback to handle
21
21
  */
22
22
  constructor(broadcast: <K extends keyof ChannelEvent>(type: K, data: Omit<ChannelEvent[K], 'timestamp'>, callback?: Function) => void, analyticsHelper: AnalyticsHelper | undefined, emit: (evt: keyof CollabEvents, data: any) => void, onErrorHandled: (error: InternalError) => void);
23
- commitStepQueue({ steps, version, userId, clientId, onStepsAdded, __livePage, hasRecovered, collabMode, reason, lockSteps, }: {
23
+ commitStepQueue({ steps, version, userId, clientId, onStepsAdded, __livePage, hasRecovered, collabMode, reason, lockSteps, stepOrigins, }: {
24
24
  __livePage: boolean;
25
25
  clientId: number | string;
26
26
  collabMode: string;
@@ -28,11 +28,13 @@ export declare class CommitStepService {
28
28
  lockSteps: (stepOrigins?: readonly Transaction[]) => void;
29
29
  onStepsAdded: (data: StepsPayload) => void;
30
30
  reason?: GetResolvedEditorStateReason;
31
+ stepOrigins: readonly Transaction[];
31
32
  steps: readonly ProseMirrorStep[];
32
33
  userId: string;
33
34
  version: number;
34
35
  }): void;
35
36
  private isExpandChangeStep;
37
+ private addOfflineMetadata;
36
38
  private sendSuccessAnalytics;
37
39
  private sendFailureAnalytics;
38
40
  getReadyToCommitStatus(): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/collab-provider",
3
- "version": "14.0.0",
3
+ "version": "14.0.2",
4
4
  "description": "A provider for collaborative editing.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -35,8 +35,8 @@
35
35
  "@atlaskit/feature-gate-js-client": "^5.5.0",
36
36
  "@atlaskit/platform-feature-flags": "^1.1.0",
37
37
  "@atlaskit/prosemirror-collab": "^0.20.0",
38
- "@atlaskit/react-ufo": "^4.10.0",
39
- "@atlaskit/tmp-editor-statsig": "^12.31.0",
38
+ "@atlaskit/react-ufo": "^4.11.0",
39
+ "@atlaskit/tmp-editor-statsig": "^13.5.0",
40
40
  "@atlaskit/ufo": "^0.4.0",
41
41
  "@atlaskit/util-service-support": "^6.3.0",
42
42
  "@babel/runtime": "^7.0.0",
@@ -77,6 +77,6 @@
77
77
  }
78
78
  },
79
79
  "peerDependencies": {
80
- "@atlaskit/editor-common": "^110.0.0"
80
+ "@atlaskit/editor-common": "^110.8.0"
81
81
  }
82
82
  }