@atlaskit/collab-provider 8.3.0 → 8.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 +50 -0
- package/dist/cjs/analytics/{index.js → analytics-helper.js} +45 -5
- package/dist/cjs/analytics/performance.js +7 -5
- package/dist/cjs/channel.js +318 -210
- package/dist/cjs/{provider → document}/catchup.js +2 -2
- package/dist/cjs/document/document-service.js +617 -0
- package/dist/cjs/document/step-queue-state.js +51 -0
- package/dist/cjs/errors/error-code-mapper.js +107 -0
- package/dist/cjs/errors/error-types.js +273 -0
- package/dist/cjs/helpers/const.js +2 -4
- package/dist/cjs/helpers/utils.js +1 -12
- package/dist/cjs/participants/participants-helper.js +51 -0
- package/dist/cjs/participants/participants-service.js +217 -0
- package/dist/cjs/participants/participants-state.js +53 -0
- package/dist/cjs/{provider/telepointers.js → participants/telepointers-helper.js} +6 -6
- package/dist/cjs/provider/commit-step.js +40 -36
- package/dist/cjs/provider/index.js +215 -762
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/version-wrapper.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics/{index.js → analytics-helper.js} +17 -5
- package/dist/es2019/analytics/performance.js +6 -6
- package/dist/es2019/channel.js +204 -129
- package/dist/es2019/{provider → document}/catchup.js +2 -2
- package/dist/es2019/document/document-service.js +495 -0
- package/dist/es2019/document/step-queue-state.js +30 -0
- package/dist/es2019/errors/error-code-mapper.js +102 -0
- package/dist/es2019/errors/error-types.js +151 -0
- package/dist/es2019/helpers/const.js +2 -4
- package/dist/es2019/helpers/utils.js +0 -10
- package/dist/es2019/participants/participants-helper.js +25 -0
- package/dist/es2019/participants/participants-service.js +166 -0
- package/dist/es2019/participants/participants-state.js +28 -0
- package/dist/es2019/{provider/telepointers.js → participants/telepointers-helper.js} +2 -2
- package/dist/es2019/provider/commit-step.js +38 -34
- package/dist/es2019/provider/index.js +163 -626
- package/dist/es2019/types.js +4 -0
- package/dist/es2019/version-wrapper.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics/{index.js → analytics-helper.js} +45 -5
- package/dist/esm/analytics/performance.js +6 -6
- package/dist/esm/channel.js +318 -210
- package/dist/esm/{provider → document}/catchup.js +2 -2
- package/dist/esm/document/document-service.js +609 -0
- package/dist/esm/document/step-queue-state.js +43 -0
- package/dist/esm/errors/error-code-mapper.js +102 -0
- package/dist/esm/errors/error-types.js +259 -0
- package/dist/esm/helpers/const.js +2 -4
- package/dist/esm/helpers/utils.js +0 -10
- package/dist/esm/participants/participants-helper.js +43 -0
- package/dist/esm/participants/participants-service.js +209 -0
- package/dist/esm/participants/participants-state.js +45 -0
- package/dist/esm/{provider/telepointers.js → participants/telepointers-helper.js} +4 -4
- package/dist/esm/provider/commit-step.js +40 -36
- package/dist/esm/provider/index.js +214 -762
- package/dist/esm/types.js +4 -0
- package/dist/esm/version-wrapper.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics/{index.d.ts → analytics-helper.d.ts} +3 -1
- package/dist/types/analytics/performance.d.ts +5 -2
- package/dist/types/analytics/ufo.d.ts +1 -1
- package/dist/types/channel.d.ts +17 -5
- package/dist/types/document/document-service.d.ts +105 -0
- package/dist/types/document/step-queue-state.d.ts +16 -0
- package/dist/types/errors/error-code-mapper.d.ts +2 -0
- package/dist/types/errors/error-types.d.ts +443 -0
- package/dist/types/helpers/const.d.ts +31 -8
- package/dist/types/helpers/utils.d.ts +0 -6
- package/dist/types/index.d.ts +2 -1
- package/dist/types/participants/participants-helper.d.ts +15 -0
- package/dist/types/participants/participants-service.d.ts +70 -0
- package/dist/types/participants/participants-state.d.ts +13 -0
- package/dist/types/participants/telepointers-helper.d.ts +4 -0
- package/dist/types/provider/commit-step.d.ts +6 -6
- package/dist/types/provider/index.d.ts +86 -65
- package/dist/types/socket-io-provider.d.ts +2 -2
- package/dist/types/types.d.ts +65 -33
- package/package.json +4 -4
- package/report.api.md +193 -23
- package/dist/cjs/error-code-mapper.js +0 -88
- package/dist/es2019/error-code-mapper.js +0 -78
- package/dist/esm/error-code-mapper.js +0 -79
- package/dist/types/error-code-mapper.d.ts +0 -36
- package/dist/types/provider/telepointers.d.ts +0 -5
- package/error-code-mapper/package.json +0 -15
- /package/dist/types/{provider → document}/catchup.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @atlaskit/collab-provider
|
|
2
2
|
|
|
3
|
+
## 8.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`2192c9417d7`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2192c9417d7) - [ESS-3335] Review Collab Provider API error handling & types
|
|
8
|
+
- [`c75fcb75c4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c75fcb75c4e) - ESS-3241 Added unit tests for document restore.
|
|
9
|
+
ESS-3238 Internal refactor of collab provider, split document code from provider to document service.
|
|
10
|
+
Remove unused userId field from CollabInitPayload, it is never sent as part of the CollabInitPayload.
|
|
11
|
+
- [`27b106a736b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/27b106a736b) - ESS-3274 Refactor participant logic our of Provider class
|
|
12
|
+
- [`bdd8d88cad0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bdd8d88cad0) - [ESS-3332] Improved error mapping
|
|
13
|
+
- [`1d52016f25d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1d52016f25d) - Refactor collab-provider to accept a getAnalyticsClient Promise. And resolve when sending event.
|
|
14
|
+
Ticket: https://product-fabric.atlassian.net/browse/CCP-2863
|
|
15
|
+
- [`dfd96d6b48a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dfd96d6b48a) - [ESS-3333] Update to the structure of errors emitted on the collab provider
|
|
16
|
+
|
|
17
|
+
Upgrade instructions:
|
|
18
|
+
|
|
19
|
+
- Change the type of the errors emitted on the provider from `CollabEventError` to `ProviderError`
|
|
20
|
+
- Remove the reliance on the `status` field of the emitted errors, switch to using either the error code (exported as enum `PROVIDER_ERROR_CODE`) or the error flag `recoverable` indicating whether the provider can recover from the emitted error or not
|
|
21
|
+
|
|
22
|
+
The mapping from the old status codes to the error codes is:
|
|
23
|
+
|
|
24
|
+
- Status 403: PROVIDER_ERROR_CODE.NO_PERMISSION_ERROR, PROVIDER_ERROR_CODE.INVALID_USER_TOKEN
|
|
25
|
+
- Status 404: PROVIDER_ERROR_CODE.DOCUMENT_NOT_FOUND
|
|
26
|
+
- Status 423: PROVIDER_ERROR_CODE.LOCKED
|
|
27
|
+
- Status 500: PROVIDER_ERROR_CODE.FAIL_TO_SAVE, PROVIDER_ERROR_CODE.DOCUMENT_RESTORE_ERROR, PROVIDER_ERROR_CODE.INTERNAL_SERVICE_ERROR
|
|
28
|
+
|
|
29
|
+
- [`078a6d029f0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/078a6d029f0) - ESS-3333 temporarily re-add error status to fix product fabric from breaking changes
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- [`8217befcee0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8217befcee0) - logs the ignoring of steps for data versions older than current version in DocumentService.onStepsAdded()
|
|
34
|
+
- [`66f07c721c4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/66f07c721c4) - Add JSDoc to provider errors that are emitted to editor
|
|
35
|
+
- Updated dependencies
|
|
36
|
+
|
|
37
|
+
## 8.4.0
|
|
38
|
+
|
|
39
|
+
### Minor Changes
|
|
40
|
+
|
|
41
|
+
- [`eae755e434a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eae755e434a) - [ESS-3269] Don't return an empty document if something goes wrong when returning the final acknowledge state from the collab provider
|
|
42
|
+
- [`ca548613b49`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ca548613b49) - ESS-3218 Add new configuration option throwOnNotConnected, which will throw not connected errors when attempting to save data whilst client is offline.
|
|
43
|
+
- [`329d3bb4e05`](https://bitbucket.org/atlassian/atlassian-frontend/commits/329d3bb4e05) - ESS-2962: added canCache flag in Config for Collab-provider. Channel now stores token locally if canCache flag is passed. Uses local token for reconnections if connection is lost for errors other that 401 and 403.
|
|
44
|
+
- [`1b9c38c7f48`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1b9c38c7f48) - [ESS-3269] Added error handling and metrics for retrieving the current state
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- [`2a076027203`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2a076027203) - NO-ISSUE fix the permission error on permissionTokenRefresh
|
|
49
|
+
- [`bde10feab09`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bde10feab09) - Avoid using callbacks when initialising socket connection
|
|
50
|
+
- [`f9a6a671d14`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f9a6a671d14) - add comment to indicate that disconnect handler will be called when Firefox reload
|
|
51
|
+
- Updated dependencies
|
|
52
|
+
|
|
3
53
|
## 8.3.0
|
|
4
54
|
|
|
5
55
|
### Minor Changes
|
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -55,10 +57,11 @@ var triggerAnalyticsEvent = function triggerAnalyticsEvent(analyticsEvent, analy
|
|
|
55
57
|
}
|
|
56
58
|
};
|
|
57
59
|
var AnalyticsHelper = /*#__PURE__*/function () {
|
|
58
|
-
function AnalyticsHelper(documentAri, analyticsClient) {
|
|
60
|
+
function AnalyticsHelper(documentAri, analyticsClient, getAnalyticsClient) {
|
|
59
61
|
(0, _classCallCheck2.default)(this, AnalyticsHelper);
|
|
60
|
-
this.analyticsClient = analyticsClient;
|
|
61
62
|
this.documentAri = documentAri;
|
|
63
|
+
this.analyticsClient = analyticsClient;
|
|
64
|
+
this.getAnalyticsClient = getAnalyticsClient;
|
|
62
65
|
}
|
|
63
66
|
(0, _createClass2.default)(AnalyticsHelper, [{
|
|
64
67
|
key: "sendErrorEvent",
|
|
@@ -67,13 +70,14 @@ var AnalyticsHelper = /*#__PURE__*/function () {
|
|
|
67
70
|
eventAction: _const.EVENT_ACTION.ERROR,
|
|
68
71
|
attributes: {
|
|
69
72
|
documentAri: this.documentAri,
|
|
70
|
-
errorMessage: errorMessage
|
|
73
|
+
errorMessage: errorMessage,
|
|
74
|
+
errorName: error instanceof Error ? error.name : undefined
|
|
71
75
|
},
|
|
72
76
|
nonPrivacySafeAttributes: {
|
|
73
77
|
error: error
|
|
74
78
|
}
|
|
75
79
|
};
|
|
76
|
-
|
|
80
|
+
this.sendEvent(errorAnalyticsEvent);
|
|
77
81
|
}
|
|
78
82
|
}, {
|
|
79
83
|
key: "sendActionEvent",
|
|
@@ -86,8 +90,44 @@ var AnalyticsHelper = /*#__PURE__*/function () {
|
|
|
86
90
|
eventStatus: status
|
|
87
91
|
}, attributes)
|
|
88
92
|
};
|
|
89
|
-
|
|
93
|
+
this.sendEvent(analyticsEvent);
|
|
90
94
|
}
|
|
95
|
+
}, {
|
|
96
|
+
key: "sendEvent",
|
|
97
|
+
value: function () {
|
|
98
|
+
var _sendEvent = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(event) {
|
|
99
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
100
|
+
while (1) {
|
|
101
|
+
switch (_context.prev = _context.next) {
|
|
102
|
+
case 0:
|
|
103
|
+
if (!(this.getAnalyticsClient && !this.analyticsClient)) {
|
|
104
|
+
_context.next = 9;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
_context.prev = 1;
|
|
108
|
+
_context.next = 4;
|
|
109
|
+
return this.getAnalyticsClient;
|
|
110
|
+
case 4:
|
|
111
|
+
this.analyticsClient = _context.sent;
|
|
112
|
+
_context.next = 9;
|
|
113
|
+
break;
|
|
114
|
+
case 7:
|
|
115
|
+
_context.prev = 7;
|
|
116
|
+
_context.t0 = _context["catch"](1);
|
|
117
|
+
case 9:
|
|
118
|
+
triggerAnalyticsEvent(event, this.analyticsClient);
|
|
119
|
+
case 10:
|
|
120
|
+
case "end":
|
|
121
|
+
return _context.stop();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, _callee, this, [[1, 7]]);
|
|
125
|
+
}));
|
|
126
|
+
function sendEvent(_x) {
|
|
127
|
+
return _sendEvent.apply(this, arguments);
|
|
128
|
+
}
|
|
129
|
+
return sendEvent;
|
|
130
|
+
}()
|
|
91
131
|
}]);
|
|
92
132
|
return AnalyticsHelper;
|
|
93
133
|
}();
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.MEASURE_NAME = void 0;
|
|
6
|
+
exports.measureMap = exports.isPerformanceAPIAvailable = exports.MEASURE_NAME = void 0;
|
|
7
7
|
exports.startMeasure = startMeasure;
|
|
8
8
|
exports.stopMeasure = stopMeasure;
|
|
9
9
|
var MEASURE_NAME;
|
|
@@ -13,17 +13,19 @@ exports.MEASURE_NAME = MEASURE_NAME;
|
|
|
13
13
|
MEASURE_NAME["DOCUMENT_INIT"] = "documentInit";
|
|
14
14
|
MEASURE_NAME["COMMIT_UNCONFIRMED_STEPS"] = "commitUnconfirmedSteps";
|
|
15
15
|
MEASURE_NAME["PUBLISH_PAGE"] = "publishPage";
|
|
16
|
+
MEASURE_NAME["GET_CURRENT_STATE"] = "getCurrentState";
|
|
16
17
|
})(MEASURE_NAME || (exports.MEASURE_NAME = MEASURE_NAME = {}));
|
|
17
18
|
var isPerformanceAPIAvailable = function isPerformanceAPIAvailable() {
|
|
18
19
|
return typeof window !== 'undefined' && 'performance' in window && ['measure', 'clearMeasures', 'clearMarks', 'getEntriesByName', 'getEntriesByType'].every(function (api) {
|
|
19
20
|
return !!performance[api];
|
|
20
21
|
});
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
+
exports.isPerformanceAPIAvailable = isPerformanceAPIAvailable;
|
|
23
24
|
var measureMap = new Map();
|
|
25
|
+
exports.measureMap = measureMap;
|
|
24
26
|
function startMeasure(measureName, analyticsHelper) {
|
|
25
27
|
try {
|
|
26
|
-
if (!
|
|
28
|
+
if (!isPerformanceAPIAvailable()) {
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
29
31
|
performance.mark("".concat(measureName, "::start"));
|
|
@@ -35,7 +37,7 @@ function startMeasure(measureName, analyticsHelper) {
|
|
|
35
37
|
function stopMeasure(measureName, analyticsHelper, onMeasureComplete) {
|
|
36
38
|
var start;
|
|
37
39
|
try {
|
|
38
|
-
if (!
|
|
40
|
+
if (!isPerformanceAPIAvailable()) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
43
|
|
|
@@ -73,7 +75,7 @@ function stopMeasure(measureName, analyticsHelper, onMeasureComplete) {
|
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
function clearMeasure(measureName) {
|
|
76
|
-
if (!
|
|
78
|
+
if (!isPerformanceAPIAvailable()) {
|
|
77
79
|
return;
|
|
78
80
|
}
|
|
79
81
|
measureMap.delete(measureName);
|