@atlaskit/collab-provider 7.4.2 → 7.5.0
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 +26 -0
- package/config/package.json +8 -0
- package/dist/cjs/analytics/index.js +17 -44
- package/dist/cjs/analytics/performance.js +32 -12
- package/dist/cjs/channel.js +76 -46
- package/dist/cjs/config.js +12 -0
- package/dist/cjs/error-code-mapper.js +39 -31
- package/dist/cjs/helpers/const.js +22 -9
- package/dist/cjs/helpers/utils.js +18 -2
- package/dist/cjs/provider/index.js +84 -23
- package/dist/cjs/socket-io-provider.js +15 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics/index.js +17 -31
- package/dist/es2019/analytics/performance.js +31 -12
- package/dist/es2019/channel.js +53 -25
- package/dist/es2019/config.js +5 -0
- package/dist/es2019/error-code-mapper.js +34 -31
- package/dist/es2019/helpers/const.js +18 -4
- package/dist/es2019/helpers/utils.js +11 -1
- package/dist/es2019/provider/index.js +67 -10
- package/dist/es2019/socket-io-provider.js +13 -3
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics/index.js +16 -31
- package/dist/esm/analytics/performance.js +31 -12
- package/dist/esm/channel.js +81 -51
- package/dist/esm/config.js +5 -0
- package/dist/esm/error-code-mapper.js +35 -31
- package/dist/esm/helpers/const.js +18 -4
- package/dist/esm/helpers/utils.js +11 -1
- package/dist/esm/provider/catchup.js +1 -1
- package/dist/esm/provider/index.js +83 -24
- package/dist/esm/socket-io-provider.js +13 -3
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics/index.d.ts +3 -7
- package/dist/types/analytics/performance.d.ts +11 -4
- package/dist/types/config.d.ts +5 -0
- package/dist/types/helpers/const.d.ts +22 -4
- package/dist/types/helpers/utils.d.ts +3 -0
- package/dist/types/socket-io-provider.d.ts +2 -2
- package/dist/types/types.d.ts +11 -2
- package/package.json +5 -4
- package/report.api.md +289 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @atlaskit/collab-provider
|
|
2
2
|
|
|
3
|
+
## 7.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`1c555e79e56`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1c555e79e56) - Added the capability to pass product information (product & sub-product) to the collab service
|
|
8
|
+
- [`247420a48f7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/247420a48f7) - [ESS-1050] Return ADF document from getFinalAcknowledgedState
|
|
9
|
+
- [`17f1b0b87cc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/17f1b0b87cc) - ESS-1019 changes the reconnectionDelayMax to 128s to reduce the reconnection storm.
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`bf848f39cb1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bf848f39cb1) - ESS-2419 Emit the reason of permission errors to the consumers of collab-provider
|
|
14
|
+
- [`680dc155ebc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/680dc155ebc) - Raise errors in the collab provider when the server fails loading initilisation data
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
17
|
+
## 7.4.4
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
23
|
+
## 7.4.3
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- [`ec2f2d0b804`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ec2f2d0b804) - ED-14734: Add analytics to track time to connect to collab service, as well as tracking document initial load time.
|
|
28
|
+
|
|
3
29
|
## 7.4.2
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.triggerCollabAnalyticsEvent = exports.fireAnalyticsEvent = void 0;
|
|
9
9
|
|
|
10
10
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
11
|
|
|
@@ -15,22 +15,8 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
15
15
|
|
|
16
16
|
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; }
|
|
17
17
|
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
action: 'collab',
|
|
21
|
-
actionSubject: subject,
|
|
22
|
-
source: 'unknown',
|
|
23
|
-
attributes: {
|
|
24
|
-
packageName: _const.ATTRIBUTES_PACKAGE,
|
|
25
|
-
payload: payload
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
exports.buildAnalyticsPayload = buildAnalyticsPayload;
|
|
31
|
-
|
|
32
|
-
var fireAnalyticsEvent = function fireAnalyticsEvent(analyticsClient, analyticsEvent) {
|
|
33
|
-
if (!analyticsClient || !analyticsEvent) {
|
|
18
|
+
var fireAnalyticsEvent = function fireAnalyticsEvent(analyticsClient, payload) {
|
|
19
|
+
if (!analyticsClient || !payload) {
|
|
34
20
|
return;
|
|
35
21
|
}
|
|
36
22
|
|
|
@@ -42,38 +28,25 @@ var fireAnalyticsEvent = function fireAnalyticsEvent(analyticsClient, analyticsE
|
|
|
42
28
|
runItLater(function () {
|
|
43
29
|
client.sendOperationalEvent(_objectSpread(_objectSpread({
|
|
44
30
|
action: 'collab'
|
|
45
|
-
},
|
|
46
|
-
source:
|
|
31
|
+
}, payload), {}, {
|
|
32
|
+
source: payload.source || 'unknown',
|
|
33
|
+
tags: ['editor']
|
|
47
34
|
}));
|
|
48
35
|
});
|
|
49
36
|
};
|
|
50
37
|
|
|
51
38
|
exports.fireAnalyticsEvent = fireAnalyticsEvent;
|
|
52
39
|
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
fireAnalyticsEvent(analyticsClient,
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
exports.triggerAnalyticsForStepsRejected = triggerAnalyticsForStepsRejected;
|
|
66
|
-
|
|
67
|
-
var triggerAnalyticsForCatchupFailed = function triggerAnalyticsForCatchupFailed(analyticsClient, error) {
|
|
68
|
-
var catchupFailedEvent = buildAnalyticsPayload(_const.CATCHUP_FAILURE, error);
|
|
69
|
-
fireAnalyticsEvent(analyticsClient, catchupFailedEvent);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
exports.triggerAnalyticsForCatchupFailed = triggerAnalyticsForCatchupFailed;
|
|
73
|
-
|
|
74
|
-
var triggerAnalyticsForCatchupSuccessfulWithLatency = function triggerAnalyticsForCatchupSuccessfulWithLatency(analyticsClient, latency) {
|
|
75
|
-
var callCatchupLatency = buildAnalyticsPayload(_const.CATCHUP_SUCCESS, latency);
|
|
76
|
-
fireAnalyticsEvent(analyticsClient, callCatchupLatency);
|
|
40
|
+
var triggerCollabAnalyticsEvent = function triggerCollabAnalyticsEvent(analyticsEvent, analyticsClient) {
|
|
41
|
+
var payload = {
|
|
42
|
+
action: analyticsEvent.eventAction,
|
|
43
|
+
actionSubject: _const.EVENT_SUBJECT,
|
|
44
|
+
source: 'unknown',
|
|
45
|
+
attributes: _objectSpread({
|
|
46
|
+
packageName: _const.ATTRIBUTES_PACKAGE
|
|
47
|
+
}, analyticsEvent.attributes)
|
|
48
|
+
};
|
|
49
|
+
fireAnalyticsEvent(analyticsClient, payload);
|
|
77
50
|
};
|
|
78
51
|
|
|
79
|
-
exports.
|
|
52
|
+
exports.triggerCollabAnalyticsEvent = triggerCollabAnalyticsEvent;
|
|
@@ -3,9 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.MEASURE_NAME = void 0;
|
|
6
7
|
exports.clearMeasure = clearMeasure;
|
|
7
8
|
exports.startMeasure = startMeasure;
|
|
8
9
|
exports.stopMeasure = stopMeasure;
|
|
10
|
+
var MEASURE_NAME;
|
|
11
|
+
exports.MEASURE_NAME = MEASURE_NAME;
|
|
12
|
+
|
|
13
|
+
(function (MEASURE_NAME) {
|
|
14
|
+
MEASURE_NAME["CALLING_CATCHUP_API"] = "callingCatchupApi";
|
|
15
|
+
MEASURE_NAME["SOCKET_CONNECT"] = "socketConnect";
|
|
16
|
+
MEASURE_NAME["DOCUMENT_INIT"] = "documentInit";
|
|
17
|
+
MEASURE_NAME["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
18
|
+
})(MEASURE_NAME || (exports.MEASURE_NAME = MEASURE_NAME = {}));
|
|
9
19
|
|
|
10
20
|
var isPerformanceAPIAvailable = function isPerformanceAPIAvailable() {
|
|
11
21
|
return typeof window !== 'undefined' && 'performance' in window && ['measure', 'clearMeasures', 'clearMarks', 'getEntriesByName', 'getEntriesByType'].every(function (api) {
|
|
@@ -40,19 +50,29 @@ function stopMeasure(measureName, onMeasureComplete) {
|
|
|
40
50
|
|
|
41
51
|
try {
|
|
42
52
|
performance.measure(measureName, "".concat(measureName, "::start"), "".concat(measureName, "::end"));
|
|
43
|
-
} catch (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
} catch (e) {}
|
|
54
|
+
|
|
55
|
+
var entry = performance.getEntriesByName(measureName).pop();
|
|
56
|
+
clearMeasure(measureName);
|
|
57
|
+
var measure;
|
|
58
|
+
|
|
59
|
+
if (entry) {
|
|
60
|
+
measure = {
|
|
61
|
+
duration: entry.duration,
|
|
62
|
+
startTime: entry.startTime
|
|
63
|
+
};
|
|
64
|
+
} else if (start) {
|
|
65
|
+
measure = {
|
|
66
|
+
duration: performance.now() - start,
|
|
67
|
+
startTime: start
|
|
68
|
+
};
|
|
55
69
|
}
|
|
70
|
+
|
|
71
|
+
if (measure && onMeasureComplete) {
|
|
72
|
+
onMeasureComplete(measure.duration, measure.startTime);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return measure;
|
|
56
76
|
}
|
|
57
77
|
|
|
58
78
|
function clearMeasure(measureName) {
|
package/dist/cjs/channel.js
CHANGED
|
@@ -37,6 +37,8 @@ var _performance = require("./analytics/performance");
|
|
|
37
37
|
|
|
38
38
|
var _analytics = require("./analytics");
|
|
39
39
|
|
|
40
|
+
var _const = require("./helpers/const");
|
|
41
|
+
|
|
40
42
|
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; }
|
|
41
43
|
|
|
42
44
|
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; }
|
|
@@ -72,6 +74,14 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
72
74
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onConnect", function () {
|
|
73
75
|
_this.connected = true;
|
|
74
76
|
logger('Connected.', _this.socket.id);
|
|
77
|
+
var measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.SOCKET_CONNECT);
|
|
78
|
+
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
79
|
+
eventAction: _const.EVENT_ACTION.CONNECTION,
|
|
80
|
+
attributes: {
|
|
81
|
+
eventStatus: _const.EVENT_STATUS.SUCCESS,
|
|
82
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
83
|
+
}
|
|
84
|
+
}, _this.analyticsClient);
|
|
75
85
|
|
|
76
86
|
_this.emit('connected', {
|
|
77
87
|
sid: _this.socket.id,
|
|
@@ -84,6 +94,15 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
84
94
|
|
|
85
95
|
if (data.type === 'initial') {
|
|
86
96
|
if (!_this.initialized) {
|
|
97
|
+
var measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.DOCUMENT_INIT);
|
|
98
|
+
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
99
|
+
eventAction: _const.EVENT_ACTION.DOCUMENT_INIT,
|
|
100
|
+
attributes: {
|
|
101
|
+
eventStatus: _const.EVENT_STATUS.SUCCESS,
|
|
102
|
+
// TODO: detect when document init fails and fire corresponding event for it
|
|
103
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
104
|
+
}
|
|
105
|
+
}, _this.analyticsClient);
|
|
87
106
|
var doc = data.doc,
|
|
88
107
|
version = data.version,
|
|
89
108
|
userId = data.userId,
|
|
@@ -120,14 +139,21 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
120
139
|
function connect() {
|
|
121
140
|
var _this2 = this;
|
|
122
141
|
|
|
142
|
+
(0, _performance.startMeasure)(_performance.MEASURE_NAME.SOCKET_CONNECT);
|
|
143
|
+
|
|
144
|
+
if (!this.initialized) {
|
|
145
|
+
(0, _performance.startMeasure)(_performance.MEASURE_NAME.DOCUMENT_INIT);
|
|
146
|
+
}
|
|
147
|
+
|
|
123
148
|
var _this$config = this.config,
|
|
124
149
|
documentAri = _this$config.documentAri,
|
|
125
150
|
url = _this$config.url;
|
|
126
151
|
var createSocket = this.config.createSocket;
|
|
127
152
|
var permissionTokenRefresh = this.config.permissionTokenRefresh;
|
|
153
|
+
var authCb = null;
|
|
128
154
|
|
|
129
155
|
if (permissionTokenRefresh) {
|
|
130
|
-
|
|
156
|
+
authCb = function authCb(cb) {
|
|
131
157
|
permissionTokenRefresh().then(function (token) {
|
|
132
158
|
cb({
|
|
133
159
|
// The permission token.
|
|
@@ -141,10 +167,8 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
141
167
|
_this2.emit('error', err);
|
|
142
168
|
});
|
|
143
169
|
};
|
|
144
|
-
|
|
145
|
-
this.socket = createSocket("".concat(url, "/session/").concat(documentAri), authCb);
|
|
146
170
|
} else {
|
|
147
|
-
|
|
171
|
+
authCb = function authCb(cb) {
|
|
148
172
|
cb({
|
|
149
173
|
// The initialized status. If false, BE will send document, otherwise not.
|
|
150
174
|
initialized: _this2.initialized,
|
|
@@ -152,13 +176,12 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
152
176
|
need404: _this2.config.need404
|
|
153
177
|
});
|
|
154
178
|
};
|
|
179
|
+
}
|
|
155
180
|
|
|
156
|
-
|
|
157
|
-
} // Due to https://github.com/socketio/socket.io-client/issues/1473,
|
|
181
|
+
this.socket = createSocket("".concat(url, "/session/").concat(documentAri), authCb, this.config.productInfo); // Due to https://github.com/socketio/socket.io-client/issues/1473,
|
|
158
182
|
// reconnect no longer fired on the socket.
|
|
159
183
|
// We should use `connect` for better cross platform compatibility(Mobile/Web).
|
|
160
184
|
|
|
161
|
-
|
|
162
185
|
this.socket.on('connect', this.onConnect);
|
|
163
186
|
this.socket.on('data', this.onReceiveData);
|
|
164
187
|
this.socket.on('steps:added', function (data) {
|
|
@@ -228,10 +251,19 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
228
251
|
// Ensure the error emit to the provider has the same structure, so we can handle them unified.
|
|
229
252
|
|
|
230
253
|
this.socket.on('connect_error', function (error) {
|
|
231
|
-
|
|
254
|
+
var measure = (0, _performance.stopMeasure)(_performance.MEASURE_NAME.SOCKET_CONNECT);
|
|
255
|
+
(0, _analytics.triggerCollabAnalyticsEvent)({
|
|
256
|
+
eventAction: _const.EVENT_ACTION.CONNECTION,
|
|
257
|
+
attributes: {
|
|
258
|
+
eventStatus: _const.EVENT_STATUS.FAILURE,
|
|
259
|
+
error: error,
|
|
260
|
+
latency: measure === null || measure === void 0 ? void 0 : measure.duration
|
|
261
|
+
}
|
|
262
|
+
}, _this2.analyticsClient); // If error received with `data`, it means the connection is rejected
|
|
232
263
|
// by the server on purpose for example no permission, so no need to
|
|
233
264
|
// keep the underneath connection, need to close. But some error like
|
|
234
265
|
// `xhr polling error` needs to retry.
|
|
266
|
+
|
|
235
267
|
if (!!error.data) {
|
|
236
268
|
var _this2$socket;
|
|
237
269
|
|
|
@@ -248,8 +280,6 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
248
280
|
key: "fetchCatchup",
|
|
249
281
|
value: function () {
|
|
250
282
|
var _fetchCatchup = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fromVersion) {
|
|
251
|
-
var _this3 = this;
|
|
252
|
-
|
|
253
283
|
var _yield$utils$requestS, doc, version, stepMaps, metadata, errorCatchup;
|
|
254
284
|
|
|
255
285
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
@@ -257,49 +287,56 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
257
287
|
switch (_context2.prev = _context2.next) {
|
|
258
288
|
case 0:
|
|
259
289
|
_context2.prev = 0;
|
|
260
|
-
(0, _performance.startMeasure)('callingCatchupApi');
|
|
261
290
|
_context2.t0 = _utilServiceSupport.utils;
|
|
262
291
|
_context2.t1 = this.config;
|
|
263
|
-
_context2.t2 =
|
|
292
|
+
_context2.t2 = "document/".concat(encodeURIComponent(this.config.documentAri), "/catchup");
|
|
264
293
|
_context2.t3 = {
|
|
265
|
-
|
|
266
|
-
queryParams: {
|
|
267
|
-
version: fromVersion
|
|
268
|
-
}
|
|
294
|
+
version: fromVersion
|
|
269
295
|
};
|
|
296
|
+
_context2.t4 = _objectSpread;
|
|
297
|
+
_context2.t5 = _objectSpread;
|
|
298
|
+
_context2.t6 = {};
|
|
270
299
|
|
|
271
300
|
if (!this.config.permissionTokenRefresh) {
|
|
272
301
|
_context2.next = 15;
|
|
273
302
|
break;
|
|
274
303
|
}
|
|
275
304
|
|
|
276
|
-
_context2.next =
|
|
305
|
+
_context2.next = 11;
|
|
277
306
|
return this.config.permissionTokenRefresh();
|
|
278
307
|
|
|
279
|
-
case
|
|
280
|
-
_context2.
|
|
281
|
-
_context2.t6 = {
|
|
282
|
-
'x-token': _context2.t5
|
|
283
|
-
};
|
|
308
|
+
case 11:
|
|
309
|
+
_context2.t8 = _context2.sent;
|
|
284
310
|
_context2.t7 = {
|
|
285
|
-
|
|
286
|
-
};
|
|
287
|
-
_context2.t4 = {
|
|
288
|
-
requestInit: _context2.t7
|
|
311
|
+
'x-token': _context2.t8
|
|
289
312
|
};
|
|
290
313
|
_context2.next = 16;
|
|
291
314
|
break;
|
|
292
315
|
|
|
293
316
|
case 15:
|
|
294
|
-
_context2.
|
|
317
|
+
_context2.t7 = {};
|
|
295
318
|
|
|
296
319
|
case 16:
|
|
297
|
-
_context2.
|
|
298
|
-
_context2.
|
|
299
|
-
_context2.
|
|
300
|
-
|
|
320
|
+
_context2.t9 = _context2.t7;
|
|
321
|
+
_context2.t10 = (0, _context2.t5)(_context2.t6, _context2.t9);
|
|
322
|
+
_context2.t11 = {};
|
|
323
|
+
_context2.t12 = {
|
|
324
|
+
'x-product': (0, _utils.getProduct)(this.config.productInfo),
|
|
325
|
+
'x-subproduct': (0, _utils.getSubProduct)(this.config.productInfo)
|
|
326
|
+
};
|
|
327
|
+
_context2.t13 = (0, _context2.t4)(_context2.t10, _context2.t11, _context2.t12);
|
|
328
|
+
_context2.t14 = {
|
|
329
|
+
headers: _context2.t13
|
|
330
|
+
};
|
|
331
|
+
_context2.t15 = {
|
|
332
|
+
path: _context2.t2,
|
|
333
|
+
queryParams: _context2.t3,
|
|
334
|
+
requestInit: _context2.t14
|
|
335
|
+
};
|
|
336
|
+
_context2.next = 25;
|
|
337
|
+
return _context2.t0.requestService.call(_context2.t0, _context2.t1, _context2.t15);
|
|
301
338
|
|
|
302
|
-
case
|
|
339
|
+
case 25:
|
|
303
340
|
_yield$utils$requestS = _context2.sent;
|
|
304
341
|
doc = _yield$utils$requestS.doc;
|
|
305
342
|
version = _yield$utils$requestS.version;
|
|
@@ -312,33 +349,26 @@ var Channel = /*#__PURE__*/function (_Emitter) {
|
|
|
312
349
|
metadata: metadata
|
|
313
350
|
});
|
|
314
351
|
|
|
315
|
-
case
|
|
316
|
-
_context2.prev =
|
|
317
|
-
_context2.
|
|
318
|
-
logger("Can't fetch the catchup", _context2.
|
|
352
|
+
case 33:
|
|
353
|
+
_context2.prev = 33;
|
|
354
|
+
_context2.t16 = _context2["catch"](0);
|
|
355
|
+
logger("Can't fetch the catchup", _context2.t16.message);
|
|
319
356
|
errorCatchup = {
|
|
320
357
|
message: _errorCodeMapper.ErrorCodeMapper.catchupFail.message,
|
|
321
358
|
data: {
|
|
322
|
-
status: _context2.
|
|
359
|
+
status: _context2.t16.status,
|
|
323
360
|
code: _errorCodeMapper.ErrorCodeMapper.catchupFail.code
|
|
324
361
|
}
|
|
325
362
|
};
|
|
326
363
|
this.emit('error', errorCatchup);
|
|
327
364
|
return _context2.abrupt("return", {});
|
|
328
365
|
|
|
329
|
-
case
|
|
330
|
-
_context2.prev = 34;
|
|
331
|
-
(0, _performance.stopMeasure)('callingCatchupApi', function (duration, _) {
|
|
332
|
-
(0, _analytics.triggerAnalyticsForCatchupSuccessfulWithLatency)(_this3.analyticsClient, duration);
|
|
333
|
-
});
|
|
334
|
-
return _context2.finish(34);
|
|
335
|
-
|
|
336
|
-
case 37:
|
|
366
|
+
case 39:
|
|
337
367
|
case "end":
|
|
338
368
|
return _context2.stop();
|
|
339
369
|
}
|
|
340
370
|
}
|
|
341
|
-
}, _callee2, this, [[0,
|
|
371
|
+
}, _callee2, this, [[0, 33]]);
|
|
342
372
|
}));
|
|
343
373
|
|
|
344
374
|
function fetchCatchup(_x2) {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SOCKET_IO_OPTIONS = void 0;
|
|
7
|
+
var SOCKET_IO_OPTIONS = {
|
|
8
|
+
RECONNECTION_DELAY_MAX: 128 * 1000,
|
|
9
|
+
RECONNECTION_DELAY: 1000,
|
|
10
|
+
RANDOMIZATION_FACTOR: 0.1
|
|
11
|
+
};
|
|
12
|
+
exports.SOCKET_IO_OPTIONS = SOCKET_IO_OPTIONS;
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.errorCodeMapper = exports.ErrorCodeMapper = void 0;
|
|
9
|
+
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
7
12
|
var ErrorCodeMapper = {
|
|
8
13
|
noPermissionError: {
|
|
9
14
|
code: 'NO_PERMISSION_ERROR',
|
|
@@ -37,41 +42,44 @@ var ErrorCodeMapper = {
|
|
|
37
42
|
exports.ErrorCodeMapper = ErrorCodeMapper;
|
|
38
43
|
|
|
39
44
|
var errorCodeMapper = function errorCodeMapper(error) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
var _error$data;
|
|
46
|
+
|
|
47
|
+
switch ((_error$data = error.data) === null || _error$data === void 0 ? void 0 : _error$data.code) {
|
|
48
|
+
case 'INSUFFICIENT_EDITING_PERMISSION':
|
|
49
|
+
return {
|
|
50
|
+
status: 403,
|
|
51
|
+
code: ErrorCodeMapper.noPermissionError.code,
|
|
52
|
+
message: ErrorCodeMapper.noPermissionError.message,
|
|
53
|
+
reason: // Typescript magic so it detects the union type
|
|
54
|
+
(0, _typeof2.default)(error.data.meta) === 'object' ? error.data.meta.reason : undefined
|
|
55
|
+
};
|
|
48
56
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
case 'DOCUMENT_NOT_FOUND':
|
|
58
|
+
return {
|
|
59
|
+
status: 404,
|
|
60
|
+
code: ErrorCodeMapper.documentNotFound.code,
|
|
61
|
+
message: ErrorCodeMapper.documentNotFound.message
|
|
62
|
+
};
|
|
55
63
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
case 'FAILED_ON_S3':
|
|
65
|
+
case 'DYNAMO_ERROR':
|
|
66
|
+
return {
|
|
67
|
+
status: 500,
|
|
68
|
+
code: ErrorCodeMapper.failToSave.code,
|
|
69
|
+
message: ErrorCodeMapper.failToSave.message
|
|
70
|
+
};
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
case 'CATCHUP_FAILED':
|
|
73
|
+
case 'GET_QUERY_TIME_OUT':
|
|
74
|
+
case 'INIT_DATA_LOAD_FAILED':
|
|
75
|
+
return {
|
|
76
|
+
status: 500,
|
|
77
|
+
code: ErrorCodeMapper.internalError.code,
|
|
78
|
+
message: ErrorCodeMapper.internalError.message
|
|
79
|
+
};
|
|
71
80
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
81
|
+
default:
|
|
82
|
+
break;
|
|
75
83
|
}
|
|
76
84
|
};
|
|
77
85
|
|
|
@@ -3,16 +3,29 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
var STEPS_ADDED = 'collabStepsAddedSuccess';
|
|
8
|
-
exports.STEPS_ADDED = STEPS_ADDED;
|
|
9
|
-
var STEPS_REJECTED = 'collabStepsAddedRejected';
|
|
10
|
-
exports.STEPS_REJECTED = STEPS_REJECTED;
|
|
6
|
+
exports.EVENT_SUBJECT = exports.EVENT_STATUS = exports.EVENT_ACTION = exports.ATTRIBUTES_PACKAGE = exports.ACK_MAX_TRY = void 0;
|
|
11
7
|
var ATTRIBUTES_PACKAGE = 'collabProvider';
|
|
12
8
|
exports.ATTRIBUTES_PACKAGE = ATTRIBUTES_PACKAGE;
|
|
13
|
-
var
|
|
14
|
-
exports.
|
|
15
|
-
var
|
|
16
|
-
exports.
|
|
9
|
+
var EVENT_SUBJECT = 'collab';
|
|
10
|
+
exports.EVENT_SUBJECT = EVENT_SUBJECT;
|
|
11
|
+
var EVENT_ACTION;
|
|
12
|
+
exports.EVENT_ACTION = EVENT_ACTION;
|
|
13
|
+
|
|
14
|
+
(function (EVENT_ACTION) {
|
|
15
|
+
EVENT_ACTION["CONNECTION"] = "connection";
|
|
16
|
+
EVENT_ACTION["CATCHUP"] = "catchup";
|
|
17
|
+
EVENT_ACTION["DOCUMENT_INIT"] = "documentInit";
|
|
18
|
+
EVENT_ACTION["ADD_STEPS"] = "addSteps";
|
|
19
|
+
EVENT_ACTION["CONVERT_PM_TO_ADF"] = "convertPMToADF";
|
|
20
|
+
})(EVENT_ACTION || (exports.EVENT_ACTION = EVENT_ACTION = {}));
|
|
21
|
+
|
|
22
|
+
var EVENT_STATUS;
|
|
23
|
+
exports.EVENT_STATUS = EVENT_STATUS;
|
|
24
|
+
|
|
25
|
+
(function (EVENT_STATUS) {
|
|
26
|
+
EVENT_STATUS["SUCCESS"] = "SUCCESS";
|
|
27
|
+
EVENT_STATUS["FAILURE"] = "FAILURE";
|
|
28
|
+
})(EVENT_STATUS || (exports.EVENT_STATUS = EVENT_STATUS = {}));
|
|
29
|
+
|
|
17
30
|
var ACK_MAX_TRY = 10;
|
|
18
31
|
exports.ACK_MAX_TRY = ACK_MAX_TRY;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getParticipant = exports.createLogger = void 0;
|
|
6
|
+
exports.getSubProduct = exports.getProduct = exports.getParticipant = exports.createLogger = void 0;
|
|
7
7
|
exports.sleep = sleep;
|
|
8
8
|
|
|
9
9
|
var createLogger = function createLogger(prefix) {
|
|
@@ -37,4 +37,20 @@ function sleep(ms) {
|
|
|
37
37
|
return new Promise(function (resolve) {
|
|
38
38
|
setTimeout(resolve, ms);
|
|
39
39
|
});
|
|
40
|
-
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var getProduct = function getProduct(productInfo) {
|
|
43
|
+
var _productInfo$product;
|
|
44
|
+
|
|
45
|
+
return (_productInfo$product = productInfo === null || productInfo === void 0 ? void 0 : productInfo.product) !== null && _productInfo$product !== void 0 ? _productInfo$product : 'unknown';
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
exports.getProduct = getProduct;
|
|
49
|
+
|
|
50
|
+
var getSubProduct = function getSubProduct(productInfo) {
|
|
51
|
+
var _productInfo$subProdu;
|
|
52
|
+
|
|
53
|
+
return (_productInfo$subProdu = productInfo === null || productInfo === void 0 ? void 0 : productInfo.subProduct) !== null && _productInfo$subProdu !== void 0 ? _productInfo$subProdu : !!(productInfo !== null && productInfo !== void 0 && productInfo.product) ? 'none' : 'unknown';
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
exports.getSubProduct = getSubProduct;
|