@atlaskit/collab-provider 9.20.7 → 9.21.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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/collab-provider
2
2
 
3
+ ## 9.21.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#63832](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/63832) [`9fa0bec86202`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/9fa0bec86202) - Expose Comment API through collab provider
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+
3
13
  ## 9.20.7
4
14
 
5
15
  ### Patch Changes
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Api = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
17
+ var _utils = require("../helpers/utils");
18
+ 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; }
19
+ 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; }
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
22
+ var logger = (0, _utils.createLogger)('Api', 'blue');
23
+ var AddCommentError = /*#__PURE__*/function (_Error) {
24
+ (0, _inherits2.default)(AddCommentError, _Error);
25
+ var _super = _createSuper(AddCommentError);
26
+ function AddCommentError(message, status, meta) {
27
+ var _this;
28
+ (0, _classCallCheck2.default)(this, AddCommentError);
29
+ _this = _super.call(this, message);
30
+ _this.name = 'AddCommentError';
31
+ _this.status = status;
32
+ _this.meta = meta;
33
+ return _this;
34
+ }
35
+ return (0, _createClass2.default)(AddCommentError);
36
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
37
+ /**
38
+ * We create this API component, and export it under collab provider (e.g. provider.api.sendComment())
39
+ * From a design perspective, this makes it more disitinctive, and less confusing.
40
+ * Collab provider follows a state machine philosophy, whereas this new component does CRUD function calls
41
+ * In future we can add to this api class without adding complexity to provider
42
+ *
43
+ */
44
+ var Api = exports.Api = /*#__PURE__*/function () {
45
+ function Api(config, documentService, channel) {
46
+ var _this2 = this;
47
+ (0, _classCallCheck2.default)(this, Api);
48
+ (0, _defineProperty2.default)(this, "submitComment", /*#__PURE__*/function () {
49
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(steps, version) {
50
+ var reqBody, url, fetchOptions;
51
+ return _regenerator.default.wrap(function _callee$(_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ reqBody = JSON.stringify({
55
+ productId: 'ccollab',
56
+ version: version,
57
+ steps: steps
58
+ });
59
+ url = "".concat(_this2.config.url, "/document/").concat(encodeURIComponent(_this2.config.documentAri), "/comment");
60
+ logger("Request url: ", url);
61
+ _context.t0 = _objectSpread;
62
+ _context.t1 = _objectSpread;
63
+ _context.t2 = {};
64
+ if (!_this2.config.permissionTokenRefresh) {
65
+ _context.next = 13;
66
+ break;
67
+ }
68
+ _context.next = 9;
69
+ return _this2.channel.getChannelToken();
70
+ case 9:
71
+ _context.t4 = _context.sent;
72
+ _context.t3 = {
73
+ 'x-token': _context.t4
74
+ };
75
+ _context.next = 14;
76
+ break;
77
+ case 13:
78
+ _context.t3 = {};
79
+ case 14:
80
+ _context.t5 = _context.t3;
81
+ _context.t6 = (0, _context.t1)(_context.t2, _context.t5);
82
+ _context.t7 = {};
83
+ _context.t8 = {
84
+ 'x-product': (0, _utils.getProduct)(_this2.config.productInfo),
85
+ 'x-subproduct': (0, _utils.getSubProduct)(_this2.config.productInfo),
86
+ 'Content-Type': 'application/json'
87
+ };
88
+ _context.t9 = (0, _context.t0)(_context.t6, _context.t7, _context.t8);
89
+ _context.t10 = reqBody;
90
+ fetchOptions = {
91
+ credentials: 'include',
92
+ headers: _context.t9,
93
+ method: 'POST',
94
+ body: _context.t10
95
+ };
96
+ _context.next = 23;
97
+ return fetch(url, fetchOptions);
98
+ case 23:
99
+ return _context.abrupt("return", _context.sent);
100
+ case 24:
101
+ case "end":
102
+ return _context.stop();
103
+ }
104
+ }, _callee);
105
+ }));
106
+ return function (_x, _x2) {
107
+ return _ref.apply(this, arguments);
108
+ };
109
+ }());
110
+ this.config = config;
111
+ this.documentService = documentService;
112
+ this.channel = channel;
113
+ }
114
+ (0, _createClass2.default)(Api, [{
115
+ key: "addComment",
116
+ value: function () {
117
+ var _addComment = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(steps) {
118
+ var stepVersion, response, status, _yield$response$json, message, meta;
119
+ return _regenerator.default.wrap(function _callee2$(_context2) {
120
+ while (1) switch (_context2.prev = _context2.next) {
121
+ case 0:
122
+ stepVersion = this.documentService.getCurrentPmVersion();
123
+ _context2.prev = 1;
124
+ _context2.next = 4;
125
+ return this.submitComment(steps, stepVersion);
126
+ case 4:
127
+ response = _context2.sent;
128
+ status = response.status;
129
+ _context2.next = 8;
130
+ return response.json();
131
+ case 8:
132
+ _yield$response$json = _context2.sent;
133
+ message = _yield$response$json.message;
134
+ meta = _yield$response$json.meta;
135
+ if (!(status === 201)) {
136
+ _context2.next = 14;
137
+ break;
138
+ }
139
+ logger("NCS response: ".concat(message));
140
+ return _context2.abrupt("return", {
141
+ message: message
142
+ });
143
+ case 14:
144
+ if (!(status >= 400 && status <= 499)) {
145
+ _context2.next = 17;
146
+ break;
147
+ }
148
+ logger("NCS error meta: ".concat(JSON.stringify(meta)));
149
+ // Include details in error response
150
+ throw new AddCommentError("Failed to add comment - Client error: ".concat(message), status, JSON.stringify(meta));
151
+ case 17:
152
+ throw new AddCommentError("Failed to add comment - Server error", status);
153
+ case 20:
154
+ _context2.prev = 20;
155
+ _context2.t0 = _context2["catch"](1);
156
+ if (!(_context2.t0 instanceof AddCommentError)) {
157
+ _context2.next = 26;
158
+ break;
159
+ }
160
+ throw _context2.t0;
161
+ case 26:
162
+ throw new Error("Error submitting comment: ".concat(_context2.t0));
163
+ case 27:
164
+ case "end":
165
+ return _context2.stop();
166
+ }
167
+ }, _callee2, this, [[1, 20]]);
168
+ }));
169
+ function addComment(_x3) {
170
+ return _addComment.apply(this, arguments);
171
+ }
172
+ return addComment;
173
+ }()
174
+ }]);
175
+ return Api;
176
+ }();