@atlaskit/collab-provider 7.6.1 → 7.6.3
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 +16 -0
- package/dist/cjs/analytics/index.js +4 -1
- package/dist/cjs/analytics/performance.js +2 -0
- package/dist/cjs/config.js +2 -2
- package/dist/cjs/helpers/const.js +3 -4
- package/dist/cjs/provider/index.js +47 -21
- package/dist/cjs/socket-io-provider.js +1 -0
- package/dist/cjs/version-wrapper.js +16 -0
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics/index.js +4 -2
- package/dist/es2019/analytics/performance.js +2 -0
- package/dist/es2019/config.js +2 -2
- package/dist/es2019/helpers/const.js +2 -2
- package/dist/es2019/provider/index.js +33 -8
- package/dist/es2019/socket-io-provider.js +1 -0
- package/dist/es2019/version-wrapper.js +5 -0
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics/index.js +4 -2
- package/dist/esm/analytics/performance.js +2 -0
- package/dist/esm/config.js +2 -2
- package/dist/esm/helpers/const.js +2 -2
- package/dist/esm/provider/index.js +47 -21
- package/dist/esm/socket-io-provider.js +1 -0
- package/dist/esm/version-wrapper.js +5 -0
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics/performance.d.ts +3 -1
- package/dist/types/helpers/const.d.ts +3 -3
- package/dist/types/version-wrapper.d.ts +3 -0
- package/dist/types-ts4.0/analytics/performance.d.ts +3 -1
- package/dist/types-ts4.0/helpers/const.d.ts +3 -3
- package/dist/types-ts4.0/version-wrapper.d.ts +3 -0
- package/package.json +9 -5
- package/report.api.md +152 -170
- package/version-wrapper/package.json +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/collab-provider
|
|
2
2
|
|
|
3
|
+
## 7.6.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`1a64a3e3e53`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1a64a3e3e53) - ESS-2591 Reduce initial re-connection delay and increase randomization factor for socket io connections.
|
|
8
|
+
- [`ee8ac15d730`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ee8ac15d730) - ESS-1363 add packageVersion to analytic events
|
|
9
|
+
- [`29292da81d7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/29292da81d7) - Increased the limits for the collab sync on returning the document to the consumer
|
|
10
|
+
- [`e06f8ba062f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e06f8ba062f) - Disable collab provider transport closing on the beforeunload event.
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 7.6.2
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 7.6.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -11,6 +11,8 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
11
11
|
|
|
12
12
|
var _const = require("../helpers/const");
|
|
13
13
|
|
|
14
|
+
var _versionWrapper = require("../version-wrapper");
|
|
15
|
+
|
|
14
16
|
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; }
|
|
15
17
|
|
|
16
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -43,7 +45,8 @@ var triggerCollabAnalyticsEvent = function triggerCollabAnalyticsEvent(analytics
|
|
|
43
45
|
actionSubject: _const.EVENT_SUBJECT,
|
|
44
46
|
source: 'unknown',
|
|
45
47
|
attributes: _objectSpread({
|
|
46
|
-
packageName:
|
|
48
|
+
packageName: _versionWrapper.name,
|
|
49
|
+
packageVersion: _versionWrapper.version,
|
|
47
50
|
collabService: _const.COLLAB_SERVICE.NCS
|
|
48
51
|
}, analyticsEvent.attributes)
|
|
49
52
|
};
|
|
@@ -15,6 +15,8 @@ exports.MEASURE_NAME = MEASURE_NAME;
|
|
|
15
15
|
MEASURE_NAME["SOCKET_CONNECT"] = "socketConnect";
|
|
16
16
|
MEASURE_NAME["DOCUMENT_INIT"] = "documentInit";
|
|
17
17
|
MEASURE_NAME["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
18
|
+
MEASURE_NAME["ADD_STEPS"] = "addSteps";
|
|
19
|
+
MEASURE_NAME["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
18
20
|
})(MEASURE_NAME || (exports.MEASURE_NAME = MEASURE_NAME = {}));
|
|
19
21
|
|
|
20
22
|
var isPerformanceAPIAvailable = function isPerformanceAPIAvailable() {
|
package/dist/cjs/config.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SOCKET_IO_OPTIONS = void 0;
|
|
7
7
|
var SOCKET_IO_OPTIONS = {
|
|
8
8
|
RECONNECTION_DELAY_MAX: 128 * 1000,
|
|
9
|
-
RECONNECTION_DELAY:
|
|
10
|
-
RANDOMIZATION_FACTOR: 0.
|
|
9
|
+
RECONNECTION_DELAY: 200,
|
|
10
|
+
RANDOMIZATION_FACTOR: 0.5
|
|
11
11
|
};
|
|
12
12
|
exports.SOCKET_IO_OPTIONS = SOCKET_IO_OPTIONS;
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.EVENT_SUBJECT = exports.EVENT_STATUS = exports.EVENT_ACTION = exports.COLLAB_SERVICE = exports.
|
|
7
|
-
var ATTRIBUTES_PACKAGE = 'collabProvider';
|
|
8
|
-
exports.ATTRIBUTES_PACKAGE = ATTRIBUTES_PACKAGE;
|
|
6
|
+
exports.EVENT_SUBJECT = exports.EVENT_STATUS = exports.EVENT_ACTION = exports.COLLAB_SERVICE = exports.ACK_MAX_TRY = void 0;
|
|
9
7
|
var EVENT_SUBJECT = 'collab';
|
|
10
8
|
exports.EVENT_SUBJECT = EVENT_SUBJECT;
|
|
11
9
|
var COLLAB_SERVICE;
|
|
@@ -26,6 +24,7 @@ exports.EVENT_ACTION = EVENT_ACTION;
|
|
|
26
24
|
EVENT_ACTION["ADD_STEPS"] = "addSteps";
|
|
27
25
|
EVENT_ACTION["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
28
26
|
EVENT_ACTION["UPDATE_PARTICIPANTS"] = "updateParticipants";
|
|
27
|
+
EVENT_ACTION["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
29
28
|
})(EVENT_ACTION || (exports.EVENT_ACTION = EVENT_ACTION = {}));
|
|
30
29
|
|
|
31
30
|
var EVENT_STATUS;
|
|
@@ -36,5 +35,5 @@ exports.EVENT_STATUS = EVENT_STATUS;
|
|
|
36
35
|
EVENT_STATUS["FAILURE"] = "FAILURE";
|
|
37
36
|
})(EVENT_STATUS || (exports.EVENT_STATUS = EVENT_STATUS = {}));
|
|
38
37
|
|
|
39
|
-
var ACK_MAX_TRY =
|
|
38
|
+
var ACK_MAX_TRY = 30;
|
|
40
39
|
exports.ACK_MAX_TRY = ACK_MAX_TRY;
|
|
@@ -306,12 +306,14 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
306
306
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onErrorHandled", function (error) {
|
|
307
307
|
if (error && error.data) {
|
|
308
308
|
if (error.data.code === 'HEAD_VERSION_UPDATE_FAILED' || error.data.code === 'VERSION_NUMBER_ALREADY_EXISTS') {
|
|
309
|
+
var measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.ADD_STEPS);
|
|
309
310
|
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
310
311
|
eventAction: _const.EVENT_ACTION.ADD_STEPS,
|
|
311
312
|
attributes: {
|
|
312
313
|
eventStatus: _const.EVENT_STATUS.FAILURE,
|
|
313
314
|
error: error,
|
|
314
|
-
documentAri: _this.config.documentAri
|
|
315
|
+
documentAri: _this.config.documentAri,
|
|
316
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
315
317
|
}
|
|
316
318
|
}, _this.analyticsClient);
|
|
317
319
|
_this.stepRejectCounter++;
|
|
@@ -581,7 +583,7 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
581
583
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getFinalAcknowledgedState", /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
582
584
|
var _this$metadata$title;
|
|
583
585
|
|
|
584
|
-
var maxAttemptsToSync, count, unconfirmedState, state, adfDocument, measure,
|
|
586
|
+
var maxAttemptsToSync, count, unconfirmedState, state, adfDocument, measure, _measure3;
|
|
585
587
|
|
|
586
588
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
587
589
|
while (1) {
|
|
@@ -597,32 +599,33 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
597
599
|
}
|
|
598
600
|
|
|
599
601
|
return _context4.delegateYield( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
600
|
-
var unconfirmedTrs, lastTr, isLastTrConfirmed, nextUnconfirmedState, nextUnconfirmedTrs, _state;
|
|
602
|
+
var unconfirmedTrs, lastTr, isLastTrConfirmed, nextUnconfirmedState, nextUnconfirmedTrs, _state, _measure2, measure;
|
|
601
603
|
|
|
602
604
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
603
605
|
while (1) {
|
|
604
606
|
switch (_context3.prev = _context3.next) {
|
|
605
607
|
case 0:
|
|
606
|
-
// We use origins here as steps can be rebased. When steps are rebased a new step is created.
|
|
608
|
+
(0, _performance.startMeasure)(_performance.MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS); // We use origins here as steps can be rebased. When steps are rebased a new step is created.
|
|
607
609
|
// This means that we can not track if it has been removed from the unconfirmed array or not.
|
|
608
610
|
// Origins points to the original transaction that the step was created in. This is never changed
|
|
609
611
|
// and gets passed down when a step is rebased.
|
|
612
|
+
|
|
610
613
|
unconfirmedTrs = unconfirmedState.origins;
|
|
611
614
|
lastTr = unconfirmedTrs[unconfirmedTrs.length - 1];
|
|
612
615
|
isLastTrConfirmed = false;
|
|
613
616
|
|
|
614
|
-
case
|
|
617
|
+
case 4:
|
|
615
618
|
if (isLastTrConfirmed) {
|
|
616
|
-
_context3.next =
|
|
619
|
+
_context3.next = 17;
|
|
617
620
|
break;
|
|
618
621
|
}
|
|
619
622
|
|
|
620
623
|
_this.sendStepsFromCurrentState();
|
|
621
624
|
|
|
622
|
-
_context3.next =
|
|
623
|
-
return (0, _utils.sleep)(
|
|
625
|
+
_context3.next = 8;
|
|
626
|
+
return (0, _utils.sleep)(1000);
|
|
624
627
|
|
|
625
|
-
case
|
|
628
|
+
case 8:
|
|
626
629
|
nextUnconfirmedState = _this.getUnconfirmedSteps();
|
|
627
630
|
|
|
628
631
|
if (nextUnconfirmedState && nextUnconfirmedState.steps.length) {
|
|
@@ -635,7 +638,7 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
635
638
|
}
|
|
636
639
|
|
|
637
640
|
if (!(!isLastTrConfirmed && count++ >= maxAttemptsToSync)) {
|
|
638
|
-
_context3.next =
|
|
641
|
+
_context3.next = 15;
|
|
639
642
|
break;
|
|
640
643
|
}
|
|
641
644
|
|
|
@@ -651,13 +654,33 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
651
654
|
});
|
|
652
655
|
}
|
|
653
656
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
657
|
+
_measure2 = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS);
|
|
658
|
+
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
659
|
+
eventAction: _const.EVENT_ACTION.COMMIT_UNCONFIRMED_STEPS,
|
|
660
|
+
attributes: {
|
|
661
|
+
eventStatus: _const.EVENT_STATUS.FAILURE,
|
|
662
|
+
latency: _measure2 === null || _measure2 === void 0 ? void 0 : _measure2.duration,
|
|
663
|
+
documentAri: _this.config.documentAri
|
|
664
|
+
}
|
|
665
|
+
}, _this.analyticsClient);
|
|
666
|
+
throw new Error("Can't sync up with Collab Service");
|
|
667
|
+
|
|
668
|
+
case 15:
|
|
669
|
+
_context3.next = 4;
|
|
658
670
|
break;
|
|
659
671
|
|
|
660
|
-
case
|
|
672
|
+
case 17:
|
|
673
|
+
measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS);
|
|
674
|
+
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
675
|
+
eventAction: _const.EVENT_ACTION.COMMIT_UNCONFIRMED_STEPS,
|
|
676
|
+
attributes: {
|
|
677
|
+
eventStatus: _const.EVENT_STATUS.SUCCESS,
|
|
678
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration,
|
|
679
|
+
documentAri: _this.config.documentAri
|
|
680
|
+
}
|
|
681
|
+
}, _this.analyticsClient);
|
|
682
|
+
|
|
683
|
+
case 19:
|
|
661
684
|
case "end":
|
|
662
685
|
return _context3.stop();
|
|
663
686
|
}
|
|
@@ -681,12 +704,12 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
681
704
|
}
|
|
682
705
|
}, _this.analyticsClient);
|
|
683
706
|
} catch (error) {
|
|
684
|
-
|
|
707
|
+
_measure3 = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.CONVERT_PM_TO_ADF);
|
|
685
708
|
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
686
709
|
eventAction: _const.EVENT_ACTION.CONVERT_PM_TO_ADF,
|
|
687
710
|
attributes: {
|
|
688
711
|
eventStatus: _const.EVENT_STATUS.FAILURE,
|
|
689
|
-
latency:
|
|
712
|
+
latency: _measure3 === null || _measure3 === void 0 ? void 0 : _measure3.duration,
|
|
690
713
|
error: error,
|
|
691
714
|
documentAri: _this.config.documentAri
|
|
692
715
|
}
|
|
@@ -785,11 +808,12 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
785
808
|
|
|
786
809
|
if (!steps || !steps.length) {
|
|
787
810
|
return;
|
|
788
|
-
}
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
(0, _performance.startMeasure)(_performance.MEASURE_NAME.ADD_STEPS); // Avoid reference issues using a
|
|
789
814
|
// method outside of the provider
|
|
790
815
|
// scope
|
|
791
816
|
|
|
792
|
-
|
|
793
817
|
throttledCommitStep({
|
|
794
818
|
channel: this.channel,
|
|
795
819
|
userId: this.userId,
|
|
@@ -852,14 +876,16 @@ var Provider = /*#__PURE__*/function (_Emitter) {
|
|
|
852
876
|
json: steps,
|
|
853
877
|
version: version,
|
|
854
878
|
userIds: clientIds
|
|
855
|
-
}); // If steps can apply to local editor
|
|
879
|
+
}); // If steps can apply to local editor successfully, no need to accumulate the error counter.
|
|
856
880
|
|
|
857
881
|
this.stepRejectCounter = 0;
|
|
882
|
+
var measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.ADD_STEPS);
|
|
858
883
|
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
859
884
|
eventAction: _const.EVENT_ACTION.ADD_STEPS,
|
|
860
885
|
attributes: {
|
|
861
886
|
eventStatus: _const.EVENT_STATUS.SUCCESS,
|
|
862
|
-
documentAri: this.config.documentAri
|
|
887
|
+
documentAri: this.config.documentAri,
|
|
888
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
863
889
|
}
|
|
864
890
|
}, this.analyticsClient);
|
|
865
891
|
this.emitTelepointersFromSteps(steps); // Resend local steps if none of the received steps originated with us!
|
|
@@ -31,6 +31,7 @@ function createSocketIOSocket(url, auth, productInfo) {
|
|
|
31
31
|
reconnectionDelayMax: _config.SOCKET_IO_OPTIONS.RECONNECTION_DELAY_MAX,
|
|
32
32
|
reconnectionDelay: _config.SOCKET_IO_OPTIONS.RECONNECTION_DELAY,
|
|
33
33
|
randomizationFactor: _config.SOCKET_IO_OPTIONS.RANDOMIZATION_FACTOR,
|
|
34
|
+
closeOnBeforeunload: false,
|
|
34
35
|
withCredentials: true,
|
|
35
36
|
transports: ['polling', 'websocket'],
|
|
36
37
|
path: "/".concat(pathname.split('/')[1], "/socket.io"),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.version = exports.nextMajorVersion = exports.name = void 0;
|
|
7
|
+
var name = "@atlaskit/collab-provider";
|
|
8
|
+
exports.name = name;
|
|
9
|
+
var version = "7.6.3";
|
|
10
|
+
exports.version = version;
|
|
11
|
+
|
|
12
|
+
var nextMajorVersion = function nextMajorVersion() {
|
|
13
|
+
return [Number(version.split('.')[0]) + 1, 0, 0].join('.');
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.nextMajorVersion = nextMajorVersion;
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EVENT_SUBJECT, COLLAB_SERVICE } from '../helpers/const';
|
|
2
|
+
import { name as packageName, version as packageVersion } from '../version-wrapper';
|
|
2
3
|
export const fireAnalyticsEvent = (analyticsClient, payload) => {
|
|
3
4
|
if (!analyticsClient || !payload) {
|
|
4
5
|
return;
|
|
@@ -24,7 +25,8 @@ export const triggerCollabAnalyticsEvent = (analyticsEvent, analyticsClient) =>
|
|
|
24
25
|
actionSubject: EVENT_SUBJECT,
|
|
25
26
|
source: 'unknown',
|
|
26
27
|
attributes: {
|
|
27
|
-
packageName
|
|
28
|
+
packageName,
|
|
29
|
+
packageVersion,
|
|
28
30
|
collabService: COLLAB_SERVICE.NCS,
|
|
29
31
|
...analyticsEvent.attributes
|
|
30
32
|
}
|
|
@@ -5,6 +5,8 @@ export let MEASURE_NAME;
|
|
|
5
5
|
MEASURE_NAME["SOCKET_CONNECT"] = "socketConnect";
|
|
6
6
|
MEASURE_NAME["DOCUMENT_INIT"] = "documentInit";
|
|
7
7
|
MEASURE_NAME["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
8
|
+
MEASURE_NAME["ADD_STEPS"] = "addSteps";
|
|
9
|
+
MEASURE_NAME["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
8
10
|
})(MEASURE_NAME || (MEASURE_NAME = {}));
|
|
9
11
|
|
|
10
12
|
const isPerformanceAPIAvailable = () => {
|
package/dist/es2019/config.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export const ATTRIBUTES_PACKAGE = 'collabProvider';
|
|
2
1
|
export const EVENT_SUBJECT = 'collab';
|
|
3
2
|
export let COLLAB_SERVICE;
|
|
4
3
|
|
|
@@ -16,6 +15,7 @@ export let EVENT_ACTION;
|
|
|
16
15
|
EVENT_ACTION["ADD_STEPS"] = "addSteps";
|
|
17
16
|
EVENT_ACTION["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
18
17
|
EVENT_ACTION["UPDATE_PARTICIPANTS"] = "updateParticipants";
|
|
18
|
+
EVENT_ACTION["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
19
19
|
})(EVENT_ACTION || (EVENT_ACTION = {}));
|
|
20
20
|
|
|
21
21
|
export let EVENT_STATUS;
|
|
@@ -25,4 +25,4 @@ export let EVENT_STATUS;
|
|
|
25
25
|
EVENT_STATUS["FAILURE"] = "FAILURE";
|
|
26
26
|
})(EVENT_STATUS || (EVENT_STATUS = {}));
|
|
27
27
|
|
|
28
|
-
export const ACK_MAX_TRY =
|
|
28
|
+
export const ACK_MAX_TRY = 30;
|
|
@@ -216,12 +216,14 @@ export class Provider extends Emitter {
|
|
|
216
216
|
_defineProperty(this, "onErrorHandled", error => {
|
|
217
217
|
if (error && error.data) {
|
|
218
218
|
if (error.data.code === 'HEAD_VERSION_UPDATE_FAILED' || error.data.code === 'VERSION_NUMBER_ALREADY_EXISTS') {
|
|
219
|
+
const measure = stopMeasure(MEASURE_NAME.ADD_STEPS);
|
|
219
220
|
triggerCollabAnalyticsEvent({
|
|
220
221
|
eventAction: EVENT_ACTION.ADD_STEPS,
|
|
221
222
|
attributes: {
|
|
222
223
|
eventStatus: EVENT_STATUS.FAILURE,
|
|
223
224
|
error,
|
|
224
|
-
documentAri: this.config.documentAri
|
|
225
|
+
documentAri: this.config.documentAri,
|
|
226
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
225
227
|
}
|
|
226
228
|
}, this.analyticsClient);
|
|
227
229
|
this.stepRejectCounter++;
|
|
@@ -468,17 +470,18 @@ export class Provider extends Emitter {
|
|
|
468
470
|
let unconfirmedState = this.getUnconfirmedSteps();
|
|
469
471
|
|
|
470
472
|
if (unconfirmedState && unconfirmedState.steps.length) {
|
|
471
|
-
// We use origins here as steps can be rebased. When steps are rebased a new step is created.
|
|
473
|
+
startMeasure(MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS); // We use origins here as steps can be rebased. When steps are rebased a new step is created.
|
|
472
474
|
// This means that we can not track if it has been removed from the unconfirmed array or not.
|
|
473
475
|
// Origins points to the original transaction that the step was created in. This is never changed
|
|
474
476
|
// and gets passed down when a step is rebased.
|
|
477
|
+
|
|
475
478
|
const unconfirmedTrs = unconfirmedState.origins;
|
|
476
479
|
const lastTr = unconfirmedTrs[unconfirmedTrs.length - 1];
|
|
477
480
|
let isLastTrConfirmed = false;
|
|
478
481
|
|
|
479
482
|
while (!isLastTrConfirmed) {
|
|
480
483
|
this.sendStepsFromCurrentState();
|
|
481
|
-
await sleep(
|
|
484
|
+
await sleep(1000);
|
|
482
485
|
const nextUnconfirmedState = this.getUnconfirmedSteps();
|
|
483
486
|
|
|
484
487
|
if (nextUnconfirmedState && nextUnconfirmedState.steps.length) {
|
|
@@ -500,9 +503,28 @@ export class Provider extends Emitter {
|
|
|
500
503
|
});
|
|
501
504
|
}
|
|
502
505
|
|
|
503
|
-
|
|
506
|
+
const measure = stopMeasure(MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS);
|
|
507
|
+
triggerCollabAnalyticsEvent({
|
|
508
|
+
eventAction: EVENT_ACTION.COMMIT_UNCONFIRMED_STEPS,
|
|
509
|
+
attributes: {
|
|
510
|
+
eventStatus: EVENT_STATUS.FAILURE,
|
|
511
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration,
|
|
512
|
+
documentAri: this.config.documentAri
|
|
513
|
+
}
|
|
514
|
+
}, this.analyticsClient);
|
|
515
|
+
throw new Error("Can't sync up with Collab Service");
|
|
504
516
|
}
|
|
505
517
|
}
|
|
518
|
+
|
|
519
|
+
const measure = stopMeasure(MEASURE_NAME.COMMIT_UNCONFIRMED_STEPS);
|
|
520
|
+
triggerCollabAnalyticsEvent({
|
|
521
|
+
eventAction: EVENT_ACTION.COMMIT_UNCONFIRMED_STEPS,
|
|
522
|
+
attributes: {
|
|
523
|
+
eventStatus: EVENT_STATUS.SUCCESS,
|
|
524
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration,
|
|
525
|
+
documentAri: this.config.documentAri
|
|
526
|
+
}
|
|
527
|
+
}, this.analyticsClient);
|
|
506
528
|
}
|
|
507
529
|
|
|
508
530
|
const state = this.getState(); // Convert ProseMirror document in Editor state to ADF document
|
|
@@ -613,11 +635,12 @@ export class Provider extends Emitter {
|
|
|
613
635
|
|
|
614
636
|
if (!steps || !steps.length) {
|
|
615
637
|
return;
|
|
616
|
-
}
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
startMeasure(MEASURE_NAME.ADD_STEPS); // Avoid reference issues using a
|
|
617
641
|
// method outside of the provider
|
|
618
642
|
// scope
|
|
619
643
|
|
|
620
|
-
|
|
621
644
|
throttledCommitStep({
|
|
622
645
|
channel: this.channel,
|
|
623
646
|
userId: this.userId,
|
|
@@ -674,14 +697,16 @@ export class Provider extends Emitter {
|
|
|
674
697
|
json: steps,
|
|
675
698
|
version,
|
|
676
699
|
userIds: clientIds
|
|
677
|
-
}); // If steps can apply to local editor
|
|
700
|
+
}); // If steps can apply to local editor successfully, no need to accumulate the error counter.
|
|
678
701
|
|
|
679
702
|
this.stepRejectCounter = 0;
|
|
703
|
+
const measure = stopMeasure(MEASURE_NAME.ADD_STEPS);
|
|
680
704
|
triggerCollabAnalyticsEvent({
|
|
681
705
|
eventAction: EVENT_ACTION.ADD_STEPS,
|
|
682
706
|
attributes: {
|
|
683
707
|
eventStatus: EVENT_STATUS.SUCCESS,
|
|
684
|
-
documentAri: this.config.documentAri
|
|
708
|
+
documentAri: this.config.documentAri,
|
|
709
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
685
710
|
}
|
|
686
711
|
}, this.analyticsClient);
|
|
687
712
|
this.emitTelepointersFromSteps(steps); // Resend local steps if none of the received steps originated with us!
|
|
@@ -11,6 +11,7 @@ export function createSocketIOSocket(url, auth, productInfo) {
|
|
|
11
11
|
reconnectionDelayMax: SOCKET_IO_OPTIONS.RECONNECTION_DELAY_MAX,
|
|
12
12
|
reconnectionDelay: SOCKET_IO_OPTIONS.RECONNECTION_DELAY,
|
|
13
13
|
randomizationFactor: SOCKET_IO_OPTIONS.RANDOMIZATION_FACTOR,
|
|
14
|
+
closeOnBeforeunload: false,
|
|
14
15
|
withCredentials: true,
|
|
15
16
|
transports: ['polling', 'websocket'],
|
|
16
17
|
path: `/${pathname.split('/')[1]}/socket.io`,
|
package/dist/es2019/version.json
CHANGED
|
@@ -4,7 +4,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
4
4
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { EVENT_SUBJECT, COLLAB_SERVICE } from '../helpers/const';
|
|
8
|
+
import { name as packageName, version as packageVersion } from '../version-wrapper';
|
|
8
9
|
export var fireAnalyticsEvent = function fireAnalyticsEvent(analyticsClient, payload) {
|
|
9
10
|
if (!analyticsClient || !payload) {
|
|
10
11
|
return;
|
|
@@ -30,7 +31,8 @@ export var triggerCollabAnalyticsEvent = function triggerCollabAnalyticsEvent(an
|
|
|
30
31
|
actionSubject: EVENT_SUBJECT,
|
|
31
32
|
source: 'unknown',
|
|
32
33
|
attributes: _objectSpread({
|
|
33
|
-
packageName:
|
|
34
|
+
packageName: packageName,
|
|
35
|
+
packageVersion: packageVersion,
|
|
34
36
|
collabService: COLLAB_SERVICE.NCS
|
|
35
37
|
}, analyticsEvent.attributes)
|
|
36
38
|
};
|
|
@@ -5,6 +5,8 @@ export var MEASURE_NAME;
|
|
|
5
5
|
MEASURE_NAME["SOCKET_CONNECT"] = "socketConnect";
|
|
6
6
|
MEASURE_NAME["DOCUMENT_INIT"] = "documentInit";
|
|
7
7
|
MEASURE_NAME["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
8
|
+
MEASURE_NAME["ADD_STEPS"] = "addSteps";
|
|
9
|
+
MEASURE_NAME["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
8
10
|
})(MEASURE_NAME || (MEASURE_NAME = {}));
|
|
9
11
|
|
|
10
12
|
var isPerformanceAPIAvailable = function isPerformanceAPIAvailable() {
|
package/dist/esm/config.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export var ATTRIBUTES_PACKAGE = 'collabProvider';
|
|
2
1
|
export var EVENT_SUBJECT = 'collab';
|
|
3
2
|
export var COLLAB_SERVICE;
|
|
4
3
|
|
|
@@ -16,6 +15,7 @@ export var EVENT_ACTION;
|
|
|
16
15
|
EVENT_ACTION["ADD_STEPS"] = "addSteps";
|
|
17
16
|
EVENT_ACTION["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
18
17
|
EVENT_ACTION["UPDATE_PARTICIPANTS"] = "updateParticipants";
|
|
18
|
+
EVENT_ACTION["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
19
19
|
})(EVENT_ACTION || (EVENT_ACTION = {}));
|
|
20
20
|
|
|
21
21
|
export var EVENT_STATUS;
|
|
@@ -25,4 +25,4 @@ export var EVENT_STATUS;
|
|
|
25
25
|
EVENT_STATUS["FAILURE"] = "FAILURE";
|
|
26
26
|
})(EVENT_STATUS || (EVENT_STATUS = {}));
|
|
27
27
|
|
|
28
|
-
export var ACK_MAX_TRY =
|
|
28
|
+
export var ACK_MAX_TRY = 30;
|