@atlaskit/collab-provider 8.4.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.
Files changed (77) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/analytics/{index.js → analytics-helper.js} +43 -4
  3. package/dist/cjs/analytics/performance.js +6 -5
  4. package/dist/cjs/channel.js +222 -224
  5. package/dist/cjs/{provider → document}/catchup.js +2 -2
  6. package/dist/cjs/document/document-service.js +617 -0
  7. package/dist/cjs/document/step-queue-state.js +51 -0
  8. package/dist/cjs/errors/error-code-mapper.js +86 -67
  9. package/dist/cjs/errors/error-types.js +251 -21
  10. package/dist/cjs/helpers/utils.js +1 -12
  11. package/dist/cjs/participants/participants-helper.js +51 -0
  12. package/dist/cjs/participants/participants-service.js +217 -0
  13. package/dist/cjs/participants/participants-state.js +53 -0
  14. package/dist/cjs/{provider/telepointers.js → participants/telepointers-helper.js} +6 -6
  15. package/dist/cjs/provider/commit-step.js +4 -4
  16. package/dist/cjs/provider/index.js +212 -774
  17. package/dist/cjs/types.js +3 -0
  18. package/dist/cjs/version-wrapper.js +1 -1
  19. package/dist/cjs/version.json +1 -1
  20. package/dist/es2019/analytics/{index.js → analytics-helper.js} +15 -4
  21. package/dist/es2019/analytics/performance.js +5 -6
  22. package/dist/es2019/channel.js +123 -116
  23. package/dist/es2019/{provider → document}/catchup.js +2 -2
  24. package/dist/es2019/document/document-service.js +495 -0
  25. package/dist/es2019/document/step-queue-state.js +30 -0
  26. package/dist/es2019/errors/error-code-mapper.js +87 -63
  27. package/dist/es2019/errors/error-types.js +143 -5
  28. package/dist/es2019/helpers/utils.js +0 -10
  29. package/dist/es2019/participants/participants-helper.js +25 -0
  30. package/dist/es2019/participants/participants-service.js +166 -0
  31. package/dist/es2019/participants/participants-state.js +28 -0
  32. package/dist/es2019/{provider/telepointers.js → participants/telepointers-helper.js} +2 -2
  33. package/dist/es2019/provider/commit-step.js +4 -4
  34. package/dist/es2019/provider/index.js +162 -637
  35. package/dist/es2019/types.js +4 -0
  36. package/dist/es2019/version-wrapper.js +1 -1
  37. package/dist/es2019/version.json +1 -1
  38. package/dist/esm/analytics/{index.js → analytics-helper.js} +43 -4
  39. package/dist/esm/analytics/performance.js +5 -6
  40. package/dist/esm/channel.js +224 -226
  41. package/dist/esm/{provider → document}/catchup.js +2 -2
  42. package/dist/esm/document/document-service.js +609 -0
  43. package/dist/esm/document/step-queue-state.js +43 -0
  44. package/dist/esm/errors/error-code-mapper.js +87 -64
  45. package/dist/esm/errors/error-types.js +243 -18
  46. package/dist/esm/helpers/utils.js +0 -10
  47. package/dist/esm/participants/participants-helper.js +43 -0
  48. package/dist/esm/participants/participants-service.js +209 -0
  49. package/dist/esm/participants/participants-state.js +45 -0
  50. package/dist/esm/{provider/telepointers.js → participants/telepointers-helper.js} +4 -4
  51. package/dist/esm/provider/commit-step.js +4 -4
  52. package/dist/esm/provider/index.js +212 -774
  53. package/dist/esm/types.js +4 -0
  54. package/dist/esm/version-wrapper.js +1 -1
  55. package/dist/esm/version.json +1 -1
  56. package/dist/types/analytics/{index.d.ts → analytics-helper.d.ts} +3 -1
  57. package/dist/types/analytics/performance.d.ts +3 -1
  58. package/dist/types/analytics/ufo.d.ts +1 -1
  59. package/dist/types/channel.d.ts +12 -5
  60. package/dist/types/document/document-service.d.ts +105 -0
  61. package/dist/types/document/step-queue-state.d.ts +16 -0
  62. package/dist/types/errors/error-code-mapper.d.ts +2 -36
  63. package/dist/types/errors/error-types.d.ts +439 -4
  64. package/dist/types/helpers/const.d.ts +2 -2
  65. package/dist/types/helpers/utils.d.ts +0 -6
  66. package/dist/types/index.d.ts +2 -1
  67. package/dist/types/participants/participants-helper.d.ts +15 -0
  68. package/dist/types/participants/participants-service.d.ts +70 -0
  69. package/dist/types/participants/participants-state.d.ts +13 -0
  70. package/dist/types/participants/telepointers-helper.d.ts +4 -0
  71. package/dist/types/provider/commit-step.d.ts +6 -6
  72. package/dist/types/provider/index.d.ts +80 -73
  73. package/dist/types/types.d.ts +47 -30
  74. package/package.json +4 -4
  75. package/report.api.md +172 -19
  76. package/dist/types/provider/telepointers.d.ts +0 -5
  77. /package/dist/types/{provider → document}/catchup.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,39 @@
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
+
3
37
  ## 8.4.0
4
38
 
5
39
  ### 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",
@@ -74,7 +77,7 @@ var AnalyticsHelper = /*#__PURE__*/function () {
74
77
  error: error
75
78
  }
76
79
  };
77
- triggerAnalyticsEvent(errorAnalyticsEvent, this.analyticsClient);
80
+ this.sendEvent(errorAnalyticsEvent);
78
81
  }
79
82
  }, {
80
83
  key: "sendActionEvent",
@@ -87,8 +90,44 @@ var AnalyticsHelper = /*#__PURE__*/function () {
87
90
  eventStatus: status
88
91
  }, attributes)
89
92
  };
90
- triggerAnalyticsEvent(analyticsEvent, this.analyticsClient);
93
+ this.sendEvent(analyticsEvent);
91
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
+ }()
92
131
  }]);
93
132
  return AnalyticsHelper;
94
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;
@@ -20,11 +20,12 @@ var isPerformanceAPIAvailable = function isPerformanceAPIAvailable() {
20
20
  return !!performance[api];
21
21
  });
22
22
  };
23
- var hasPerformanceAPIAvailable = isPerformanceAPIAvailable();
23
+ exports.isPerformanceAPIAvailable = isPerformanceAPIAvailable;
24
24
  var measureMap = new Map();
25
+ exports.measureMap = measureMap;
25
26
  function startMeasure(measureName, analyticsHelper) {
26
27
  try {
27
- if (!hasPerformanceAPIAvailable) {
28
+ if (!isPerformanceAPIAvailable()) {
28
29
  return;
29
30
  }
30
31
  performance.mark("".concat(measureName, "::start"));
@@ -36,7 +37,7 @@ function startMeasure(measureName, analyticsHelper) {
36
37
  function stopMeasure(measureName, analyticsHelper, onMeasureComplete) {
37
38
  var start;
38
39
  try {
39
- if (!hasPerformanceAPIAvailable) {
40
+ if (!isPerformanceAPIAvailable()) {
40
41
  return;
41
42
  }
42
43
 
@@ -74,7 +75,7 @@ function stopMeasure(measureName, analyticsHelper, onMeasureComplete) {
74
75
  }
75
76
  }
76
77
  function clearMeasure(measureName) {
77
- if (!hasPerformanceAPIAvailable) {
78
+ if (!isPerformanceAPIAvailable()) {
78
79
  return;
79
80
  }
80
81
  measureMap.delete(measureName);