@atlaskit/link-client-extension 1.7.2 → 1.8.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,22 +1,34 @@
1
1
  # @atlaskit/link-client-extension
2
2
 
3
+ ## 1.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#42199](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42199) [`896e6300360`](https://bitbucket.org/atlassian/atlassian-frontend/commits/896e6300360) - Add api to make GET request to related-urls endpoint
8
+
9
+ ## 1.7.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [#41377](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41377) [`6191c789222`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6191c789222) - Fix bug where on next page load sorts the column in alphabetical order.
14
+
3
15
  ## 1.7.2
4
16
 
5
17
  ### Patch Changes
6
18
 
7
- - [`1fedffbd64b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1fedffbd64b) - Update json-ld-types dependencies to be compatible with version
19
+ - [#40491](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40491) [`1fedffbd64b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1fedffbd64b) - Update json-ld-types dependencies to be compatible with version
8
20
 
9
21
  ## 1.7.1
10
22
 
11
23
  ### Patch Changes
12
24
 
13
- - [`2cd7af71b63`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2cd7af71b63) - Bump json-ld-types 3.8.0 -> 3.9.1
25
+ - [#40127](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/40127) [`2cd7af71b63`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2cd7af71b63) - Bump json-ld-types 3.8.0 -> 3.9.1
14
26
 
15
27
  ## 1.7.0
16
28
 
17
29
  ### Minor Changes
18
30
 
19
- - [`8b8a309cb62`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8b8a309cb62) - Added a `DEFAULT_GET_DATA_PAGE_SIZE` constant for default page size on data calls.
31
+ - [#39265](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39265) [`8b8a309cb62`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8b8a309cb62) - Added a `DEFAULT_GET_DATA_PAGE_SIZE` constant for default page size on data calls.
20
32
 
21
33
  ### Patch Changes
22
34
 
@@ -26,26 +38,26 @@
26
38
 
27
39
  ### Patch Changes
28
40
 
29
- - [`a21cffb7b23`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a21cffb7b23) - Extended mock response returned for datasources
41
+ - [#39465](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/39465) [`a21cffb7b23`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a21cffb7b23) - Extended mock response returned for datasources
30
42
 
31
43
  ## 1.6.0
32
44
 
33
45
  ### Minor Changes
34
46
 
35
- - [`5bc0af1de85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5bc0af1de85) - Introduce caching layer for both `getDatasourceDetails` and `getDatasourceData` calls. Export new member - `mockDatasourceDetailsResponse` that has same value as previously exported `mockDatasourceResponse`
47
+ - [#38189](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/38189) [`5bc0af1de85`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5bc0af1de85) - Introduce caching layer for both `getDatasourceDetails` and `getDatasourceData` calls. Export new member - `mockDatasourceDetailsResponse` that has same value as previously exported `mockDatasourceResponse`
36
48
  - [`b3b6782c3a0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b3b6782c3a0) - Add new member `mockDatasourceDetailsResponse` that has same value as existing `mockDatasourceResponse`; Add third optional boolean argument to `getDatasourceDetails` and `getDatasourceData` from `useDatasourceClientExtension` hook called `force` — when it is false (Default) cached version of response promise will be returned (in case request with same parameters has been made), when true new request will be made regardless of cache state.
37
49
 
38
50
  ## 1.5.4
39
51
 
40
52
  ### Patch Changes
41
53
 
42
- - [`e74ae7f06d4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e74ae7f06d4) - Update dependency json-ld-types@3.8.0
54
+ - [#37720](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/37720) [`e74ae7f06d4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e74ae7f06d4) - Update dependency json-ld-types@3.8.0
43
55
 
44
56
  ## 1.5.3
45
57
 
46
58
  ### Patch Changes
47
59
 
48
- - [`b9355830504`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b9355830504) - Opt out of peer dependency enforcement
60
+ - [#37340](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/37340) [`b9355830504`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b9355830504) - Opt out of peer dependency enforcement
49
61
 
50
62
  ## 1.5.2
51
63
 
@@ -57,13 +69,13 @@
57
69
 
58
70
  ### Patch Changes
59
71
 
60
- - [`3fb20c4aeba`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3fb20c4aeba) - Add postinstall check to enforce internal peer dependencies
72
+ - [#36757](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/36757) [`3fb20c4aeba`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3fb20c4aeba) - Add postinstall check to enforce internal peer dependencies
61
73
 
62
74
  ## 1.5.0
63
75
 
64
76
  ### Minor Changes
65
77
 
66
- - [`12411d70076`](https://bitbucket.org/atlassian/atlassian-frontend/commits/12411d70076) - export more datasource types in the linking-type index and remove the defaultProperties in the datasourceDataResponse
78
+ - [#36138](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/36138) [`12411d70076`](https://bitbucket.org/atlassian/atlassian-frontend/commits/12411d70076) - export more datasource types in the linking-type index and remove the defaultProperties in the datasourceDataResponse
67
79
 
68
80
  ### Patch Changes
69
81
 
@@ -73,7 +85,7 @@
73
85
 
74
86
  ### Minor Changes
75
87
 
76
- - [`04295e9d5bc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/04295e9d5bc) - [ux] Updating ORS response to include datasources and facilitating pasting JQL links turning into datasource tables
88
+ - [#35032](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/35032) [`04295e9d5bc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/04295e9d5bc) - [ux] Updating ORS response to include datasources and facilitating pasting JQL links turning into datasource tables
77
89
 
78
90
  ### Patch Changes
79
91
 
@@ -83,7 +95,7 @@
83
95
 
84
96
  ### Minor Changes
85
97
 
86
- - [`f427908df3d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f427908df3d) - change the datasource response type to include the meta data section and the data response will wrap in the data section
98
+ - [#35861](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/35861) [`f427908df3d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f427908df3d) - change the datasource response type to include the meta data section and the data response will wrap in the data section
87
99
 
88
100
  ### Patch Changes
89
101
 
@@ -105,13 +117,13 @@
105
117
 
106
118
  ### Minor Changes
107
119
 
108
- - [`b508cc26473`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b508cc26473) - Updated getDatasourceDetails request body to be `DatasourceDetailsRequest` type
120
+ - [#34180](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/34180) [`b508cc26473`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b508cc26473) - Updated getDatasourceDetails request body to be `DatasourceDetailsRequest` type
109
121
 
110
122
  ## 1.1.7
111
123
 
112
124
  ### Patch Changes
113
125
 
114
- - [`61cb5313358`](https://bitbucket.org/atlassian/atlassian-frontend/commits/61cb5313358) - Removing unused dependencies and dev dependencies
126
+ - [#34443](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/34443) [`61cb5313358`](https://bitbucket.org/atlassian/atlassian-frontend/commits/61cb5313358) - Removing unused dependencies and dev dependencies
115
127
  - Updated dependencies
116
128
 
117
129
  ## 1.1.6
@@ -130,35 +142,35 @@
130
142
 
131
143
  ### Patch Changes
132
144
 
133
- - [`43ad059dcc5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/43ad059dcc5) - Updated mock response to the new `DatasourceDataResponseItem` format
145
+ - [#34035](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/34035) [`43ad059dcc5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/43ad059dcc5) - Updated mock response to the new `DatasourceDataResponseItem` format
134
146
  - Updated dependencies
135
147
 
136
148
  ## 1.1.3
137
149
 
138
150
  ### Patch Changes
139
151
 
140
- - [`e9ad7ee17bb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e9ad7ee17bb) - Updated mock response to the new `DatasourceType` value format
152
+ - [#33917](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33917) [`e9ad7ee17bb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e9ad7ee17bb) - Updated mock response to the new `DatasourceType` value format
141
153
  - Updated dependencies
142
154
 
143
155
  ## 1.1.2
144
156
 
145
157
  ### Patch Changes
146
158
 
147
- - [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
159
+ - [#33793](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33793) [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
148
160
  - Updated dependencies
149
161
 
150
162
  ## 1.1.1
151
163
 
152
164
  ### Patch Changes
153
165
 
154
- - [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
166
+ - [#33649](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33649) [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
155
167
  - Updated dependencies
156
168
 
157
169
  ## 1.1.0
158
170
 
159
171
  ### Minor Changes
160
172
 
161
- - [`670454dc4a0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/670454dc4a0) - Add totalIssues to mock/types
173
+ - [#33177](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33177) [`670454dc4a0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/670454dc4a0) - Add totalIssues to mock/types
162
174
 
163
175
  ### Patch Changes
164
176
 
@@ -168,7 +180,7 @@
168
180
 
169
181
  ### Minor Changes
170
182
 
171
- - [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
183
+ - [#33258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33258) [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
172
184
 
173
185
  ### Patch Changes
174
186
 
@@ -178,7 +190,7 @@
178
190
 
179
191
  ### Minor Changes
180
192
 
181
- - [`5f0b51cb0e9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5f0b51cb0e9) - Updated `useDatasourceClientExtension` hook to use `useSmartLinkContext` for creating smart-card client
193
+ - [#32751](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32751) [`5f0b51cb0e9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5f0b51cb0e9) - Updated `useDatasourceClientExtension` hook to use `useSmartLinkContext` for creating smart-card client
182
194
 
183
195
  ### Patch Changes
184
196
 
@@ -188,7 +200,7 @@
188
200
 
189
201
  ### Patch Changes
190
202
 
191
- - [`f1b712482b1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f1b712482b1) - Fixed error handling inside of invoke function
203
+ - [#32589](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32589) [`f1b712482b1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f1b712482b1) - Fixed error handling inside of invoke function
192
204
  - Updated dependencies
193
205
 
194
206
  ## 0.4.2
@@ -201,14 +213,14 @@
201
213
 
202
214
  ### Patch Changes
203
215
 
204
- - [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY remove before merging to master; dupe adf-schema via adf-utils
216
+ - [#32424](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32424) [`2e01c9c74b5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2e01c9c74b5) - DUMMY remove before merging to master; dupe adf-schema via adf-utils
205
217
  - Updated dependencies
206
218
 
207
219
  ## 0.4.0
208
220
 
209
221
  ### Minor Changes
210
222
 
211
- - [`d19a6e77d60`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d19a6e77d60) - Adds new hook useDatasourceClientExtension to fetch data for link datasources
223
+ - [#32368](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32368) [`d19a6e77d60`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d19a6e77d60) - Adds new hook useDatasourceClientExtension to fetch data for link datasources
212
224
 
213
225
  ### Patch Changes
214
226
 
@@ -218,13 +230,13 @@
218
230
 
219
231
  ### Minor Changes
220
232
 
221
- - [`7297fb71759`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7297fb71759) - Update response type for useSmartLinkClientExtension
233
+ - [#31900](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31900) [`7297fb71759`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7297fb71759) - Update response type for useSmartLinkClientExtension
222
234
 
223
235
  ## 0.2.0
224
236
 
225
237
  ### Minor Changes
226
238
 
227
- - [`f32cef73d0f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f32cef73d0f) - use new types from smart link types
239
+ - [#31905](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31905) [`f32cef73d0f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f32cef73d0f) - use new types from smart link types
228
240
 
229
241
  ### Patch Changes
230
242
 
@@ -6,60 +6,64 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.useDatasourceClientExtension = exports.datasourceDetailsResponsePromiseCache = exports.datasourceDataResponsePromiseCache = exports.DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
12
  var _react = require("react");
11
13
  var _lru_map = require("lru_map");
12
14
  var _linkProvider = require("@atlaskit/link-provider");
13
15
  var _linkingCommon = require("@atlaskit/linking-common");
14
16
  var _useResolverUrl = require("../use-resolver-url");
17
+ 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; }
18
+ 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; }
15
19
  var URL_RESPONSE_CACHE_SIZE = 50;
16
- var datasourceDetailsResponsePromiseCache = new _lru_map.LRUMap(URL_RESPONSE_CACHE_SIZE);
17
- exports.datasourceDetailsResponsePromiseCache = datasourceDetailsResponsePromiseCache;
18
- var datasourceDataResponsePromiseCache = new _lru_map.LRUMap(URL_RESPONSE_CACHE_SIZE);
19
- exports.datasourceDataResponsePromiseCache = datasourceDataResponsePromiseCache;
20
- var DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE = 20;
21
- exports.DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE = DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE;
22
- var useDatasourceClientExtension = function useDatasourceClientExtension() {
20
+ var datasourceDetailsResponsePromiseCache = exports.datasourceDetailsResponsePromiseCache = new _lru_map.LRUMap(URL_RESPONSE_CACHE_SIZE);
21
+ var datasourceDataResponsePromiseCache = exports.datasourceDataResponsePromiseCache = new _lru_map.LRUMap(URL_RESPONSE_CACHE_SIZE);
22
+ var DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE = exports.DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE = 20;
23
+ var useDatasourceClientExtension = exports.useDatasourceClientExtension = function useDatasourceClientExtension() {
23
24
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
24
25
  client = _useSmartLinkContext.connections.client;
25
26
  var resolverUrl = (0, _useResolverUrl.useResolverUrl)(client);
26
27
  var cachedRequest = /*#__PURE__*/function () {
27
28
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(datasourceId, data, url, lruMap, force) {
28
- var cacheKey, responsePromise;
29
+ var cacheKeyData, cacheKey, responsePromise;
29
30
  return _regenerator.default.wrap(function _callee$(_context) {
30
31
  while (1) switch (_context.prev = _context.next) {
31
32
  case 0:
33
+ cacheKeyData = _objectSpread(_objectSpread({}, data), 'fields' in data ? {
34
+ fields: (0, _toConsumableArray2.default)(data.fields || []).sort()
35
+ } : {});
32
36
  cacheKey = JSON.stringify({
33
37
  datasourceId: datasourceId,
34
- data: data
38
+ cacheKeyData: cacheKeyData
35
39
  });
36
40
  if (force) {
37
41
  lruMap.delete(cacheKey);
38
42
  }
39
43
  responsePromise = lruMap.get(cacheKey);
40
44
  if (!responsePromise) {
41
- _context.next = 5;
45
+ _context.next = 6;
42
46
  break;
43
47
  }
44
48
  return _context.abrupt("return", responsePromise);
45
- case 5:
46
- _context.prev = 5;
49
+ case 6:
50
+ _context.prev = 6;
47
51
  responsePromise = (0, _linkingCommon.request)('post', url, data, undefined, [200, 201, 202, 203, 204]);
48
52
  lruMap.set(cacheKey, responsePromise);
49
- _context.next = 10;
53
+ _context.next = 11;
50
54
  return responsePromise;
51
- case 10:
55
+ case 11:
52
56
  return _context.abrupt("return", _context.sent);
53
- case 13:
54
- _context.prev = 13;
55
- _context.t0 = _context["catch"](5);
57
+ case 14:
58
+ _context.prev = 14;
59
+ _context.t0 = _context["catch"](6);
56
60
  lruMap.delete(cacheKey);
57
61
  throw _context.t0;
58
- case 17:
62
+ case 18:
59
63
  case "end":
60
64
  return _context.stop();
61
65
  }
62
- }, _callee, null, [[5, 13]]);
66
+ }, _callee, null, [[6, 14]]);
63
67
  }));
64
68
  return function cachedRequest(_x, _x2, _x3, _x4, _x5) {
65
69
  return _ref.apply(this, arguments);
@@ -109,5 +113,4 @@ var useDatasourceClientExtension = function useDatasourceClientExtension() {
109
113
  getDatasourceData: getDatasourceData
110
114
  };
111
115
  }, [getDatasourceDetails, getDatasourceData]);
112
- };
113
- exports.useDatasourceClientExtension = useDatasourceClientExtension;
116
+ };
@@ -8,7 +8,7 @@ exports.mockDatasourceDetailsResponse = exports.mockDatasourceDataResponseWithSc
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  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; }
10
10
  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; }
11
- var mockDatasourceDataResponse = {
11
+ var mockDatasourceDataResponse = exports.mockDatasourceDataResponse = {
12
12
  meta: {
13
13
  key: 'jira-object-provider',
14
14
  access: 'granted',
@@ -114,8 +114,7 @@ var mockDatasourceDataResponse = {
114
114
  nextPageCursor: 'c3RhcnRBdD01'
115
115
  }
116
116
  };
117
- exports.mockDatasourceDataResponse = mockDatasourceDataResponse;
118
- var mockDatasourceDetailsResponse = {
117
+ var mockDatasourceDetailsResponse = exports.mockDatasourceDetailsResponse = {
119
118
  meta: {
120
119
  key: 'jira-object-provider',
121
120
  access: 'granted',
@@ -187,12 +186,10 @@ var mockDatasourceDetailsResponse = {
187
186
  }
188
187
  }
189
188
  };
190
- exports.mockDatasourceDetailsResponse = mockDatasourceDetailsResponse;
191
- var mockDatasourceDataResponseWithSchema = _objectSpread(_objectSpread({}, mockDatasourceDataResponse), {}, {
189
+ var mockDatasourceDataResponseWithSchema = exports.mockDatasourceDataResponseWithSchema = _objectSpread(_objectSpread({}, mockDatasourceDataResponse), {}, {
192
190
  data: _objectSpread(_objectSpread({}, mockDatasourceDataResponse.data), {}, {
193
191
  schema: {
194
192
  properties: mockDatasourceDetailsResponse.data.schema.properties
195
193
  }
196
194
  })
197
- });
198
- exports.mockDatasourceDataResponseWithSchema = mockDatasourceDataResponseWithSchema;
195
+ });
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.useResolverUrl = void 0;
7
7
  var _react = require("react");
8
8
  var _linkingCommon = require("@atlaskit/linking-common");
9
- var useResolverUrl = function useResolverUrl(cardClient) {
9
+ var useResolverUrl = exports.useResolverUrl = function useResolverUrl(cardClient) {
10
10
  return (0, _react.useMemo)(function () {
11
11
  return (0, _linkingCommon.getResolverUrl)(cardClient === null || cardClient === void 0 ? void 0 : cardClient.envKey, cardClient === null || cardClient === void 0 ? void 0 : cardClient.baseUrlOverride);
12
12
  }, [cardClient === null || cardClient === void 0 ? void 0 : cardClient.baseUrlOverride, cardClient === null || cardClient === void 0 ? void 0 : cardClient.envKey]);
13
- };
14
- exports.useResolverUrl = useResolverUrl;
13
+ };
@@ -19,8 +19,8 @@ var _useResolverUrl = require("../use-resolver-url");
19
19
  *
20
20
  * @param cardClient
21
21
  */
22
- var useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClient) {
23
- var resolvedUrl = (0, _useResolverUrl.useResolverUrl)(cardClient);
22
+ var useSmartLinkClientExtension = exports.useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClient) {
23
+ var resolverUrl = (0, _useResolverUrl.useResolverUrl)(cardClient);
24
24
  var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
25
25
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(data) {
26
26
  var errorBody;
@@ -29,7 +29,7 @@ var useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClien
29
29
  case 0:
30
30
  _context.prev = 0;
31
31
  _context.next = 3;
32
- return (0, _linkingCommon.request)('post', "".concat(resolvedUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
32
+ return (0, _linkingCommon.request)('post', "".concat(resolverUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
33
33
  case 3:
34
34
  return _context.abrupt("return", _context.sent);
35
35
  case 6:
@@ -59,11 +59,32 @@ var useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClien
59
59
  return function (_x) {
60
60
  return _ref.apply(this, arguments);
61
61
  };
62
- }(), [resolvedUrl]);
62
+ }(), [resolverUrl]);
63
+ var relatedUrls = (0, _react.useCallback)( /*#__PURE__*/function () {
64
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(url) {
65
+ return _regenerator.default.wrap(function _callee2$(_context2) {
66
+ while (1) switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ _context2.next = 2;
69
+ return (0, _linkingCommon.request)('get', "".concat(resolverUrl, "/related-urls?url=").concat(encodeURIComponent(url)), undefined, {
70
+ 'Cache-Control': 'private'
71
+ }, [200]);
72
+ case 2:
73
+ return _context2.abrupt("return", _context2.sent);
74
+ case 3:
75
+ case "end":
76
+ return _context2.stop();
77
+ }
78
+ }, _callee2);
79
+ }));
80
+ return function (_x2) {
81
+ return _ref2.apply(this, arguments);
82
+ };
83
+ }(), [resolverUrl]);
63
84
  return (0, _react.useMemo)(function () {
64
85
  return {
65
- invoke: invoke
86
+ invoke: invoke,
87
+ relatedUrls: relatedUrls
66
88
  };
67
- }, [invoke]);
68
- };
69
- exports.useSmartLinkClientExtension = useSmartLinkClientExtension;
89
+ }, [invoke, relatedUrls]);
90
+ };
@@ -15,9 +15,16 @@ export const useDatasourceClientExtension = () => {
15
15
  } = useSmartLinkContext();
16
16
  const resolverUrl = useResolverUrl(client);
17
17
  const cachedRequest = async (datasourceId, data, url, lruMap, force) => {
18
+ const cacheKeyData = {
19
+ ...data,
20
+ // Sort fields to use cached version of response regardless of the order
21
+ ...('fields' in data ? {
22
+ fields: [...(data.fields || [])].sort()
23
+ } : {})
24
+ };
18
25
  const cacheKey = JSON.stringify({
19
26
  datasourceId,
20
- data
27
+ cacheKeyData
21
28
  });
22
29
  if (force) {
23
30
  lruMap.delete(cacheKey);
@@ -12,10 +12,10 @@ import { useResolverUrl } from '../use-resolver-url';
12
12
  * @param cardClient
13
13
  */
14
14
  export const useSmartLinkClientExtension = cardClient => {
15
- const resolvedUrl = useResolverUrl(cardClient);
15
+ const resolverUrl = useResolverUrl(cardClient);
16
16
  const invoke = useCallback(async data => {
17
17
  try {
18
- return await request('post', `${resolvedUrl}/invoke`, data, undefined, [200, 201, 202, 203, 204]);
18
+ return await request('post', `${resolverUrl}/invoke`, data, undefined, [200, 201, 202, 203, 204]);
19
19
  } catch (err) {
20
20
  // checking if the error is a Response type
21
21
  // since we already had a few HOTs caused by comparing with instanceOf',
@@ -28,8 +28,14 @@ export const useSmartLinkClientExtension = cardClient => {
28
28
  }
29
29
  throw err;
30
30
  }
31
- }, [resolvedUrl]);
31
+ }, [resolverUrl]);
32
+ const relatedUrls = useCallback(async url => {
33
+ return await request('get', `${resolverUrl}/related-urls?url=${encodeURIComponent(url)}`, undefined, {
34
+ 'Cache-Control': 'private'
35
+ }, [200]);
36
+ }, [resolverUrl]);
32
37
  return useMemo(() => ({
33
- invoke
34
- }), [invoke]);
38
+ invoke,
39
+ relatedUrls
40
+ }), [invoke, relatedUrls]);
35
41
  };
@@ -1,5 +1,9 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ 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; }
6
+ 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) { _defineProperty(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; }
3
7
  import { useCallback, useMemo } from 'react';
4
8
  import { LRUMap } from 'lru_map';
5
9
  import { useSmartLinkContext } from '@atlaskit/link-provider';
@@ -15,41 +19,44 @@ export var useDatasourceClientExtension = function useDatasourceClientExtension(
15
19
  var resolverUrl = useResolverUrl(client);
16
20
  var cachedRequest = /*#__PURE__*/function () {
17
21
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(datasourceId, data, url, lruMap, force) {
18
- var cacheKey, responsePromise;
22
+ var cacheKeyData, cacheKey, responsePromise;
19
23
  return _regeneratorRuntime.wrap(function _callee$(_context) {
20
24
  while (1) switch (_context.prev = _context.next) {
21
25
  case 0:
26
+ cacheKeyData = _objectSpread(_objectSpread({}, data), 'fields' in data ? {
27
+ fields: _toConsumableArray(data.fields || []).sort()
28
+ } : {});
22
29
  cacheKey = JSON.stringify({
23
30
  datasourceId: datasourceId,
24
- data: data
31
+ cacheKeyData: cacheKeyData
25
32
  });
26
33
  if (force) {
27
34
  lruMap.delete(cacheKey);
28
35
  }
29
36
  responsePromise = lruMap.get(cacheKey);
30
37
  if (!responsePromise) {
31
- _context.next = 5;
38
+ _context.next = 6;
32
39
  break;
33
40
  }
34
41
  return _context.abrupt("return", responsePromise);
35
- case 5:
36
- _context.prev = 5;
42
+ case 6:
43
+ _context.prev = 6;
37
44
  responsePromise = request('post', url, data, undefined, [200, 201, 202, 203, 204]);
38
45
  lruMap.set(cacheKey, responsePromise);
39
- _context.next = 10;
46
+ _context.next = 11;
40
47
  return responsePromise;
41
- case 10:
48
+ case 11:
42
49
  return _context.abrupt("return", _context.sent);
43
- case 13:
44
- _context.prev = 13;
45
- _context.t0 = _context["catch"](5);
50
+ case 14:
51
+ _context.prev = 14;
52
+ _context.t0 = _context["catch"](6);
46
53
  lruMap.delete(cacheKey);
47
54
  throw _context.t0;
48
- case 17:
55
+ case 18:
49
56
  case "end":
50
57
  return _context.stop();
51
58
  }
52
- }, _callee, null, [[5, 13]]);
59
+ }, _callee, null, [[6, 14]]);
53
60
  }));
54
61
  return function cachedRequest(_x, _x2, _x3, _x4, _x5) {
55
62
  return _ref.apply(this, arguments);
@@ -14,7 +14,7 @@ import { useResolverUrl } from '../use-resolver-url';
14
14
  * @param cardClient
15
15
  */
16
16
  export var useSmartLinkClientExtension = function useSmartLinkClientExtension(cardClient) {
17
- var resolvedUrl = useResolverUrl(cardClient);
17
+ var resolverUrl = useResolverUrl(cardClient);
18
18
  var invoke = useCallback( /*#__PURE__*/function () {
19
19
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
20
20
  var errorBody;
@@ -23,7 +23,7 @@ export var useSmartLinkClientExtension = function useSmartLinkClientExtension(ca
23
23
  case 0:
24
24
  _context.prev = 0;
25
25
  _context.next = 3;
26
- return request('post', "".concat(resolvedUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
26
+ return request('post', "".concat(resolverUrl, "/invoke"), data, undefined, [200, 201, 202, 203, 204]);
27
27
  case 3:
28
28
  return _context.abrupt("return", _context.sent);
29
29
  case 6:
@@ -53,10 +53,32 @@ export var useSmartLinkClientExtension = function useSmartLinkClientExtension(ca
53
53
  return function (_x) {
54
54
  return _ref.apply(this, arguments);
55
55
  };
56
- }(), [resolvedUrl]);
56
+ }(), [resolverUrl]);
57
+ var relatedUrls = useCallback( /*#__PURE__*/function () {
58
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {
59
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
60
+ while (1) switch (_context2.prev = _context2.next) {
61
+ case 0:
62
+ _context2.next = 2;
63
+ return request('get', "".concat(resolverUrl, "/related-urls?url=").concat(encodeURIComponent(url)), undefined, {
64
+ 'Cache-Control': 'private'
65
+ }, [200]);
66
+ case 2:
67
+ return _context2.abrupt("return", _context2.sent);
68
+ case 3:
69
+ case "end":
70
+ return _context2.stop();
71
+ }
72
+ }, _callee2);
73
+ }));
74
+ return function (_x2) {
75
+ return _ref2.apply(this, arguments);
76
+ };
77
+ }(), [resolverUrl]);
57
78
  return useMemo(function () {
58
79
  return {
59
- invoke: invoke
80
+ invoke: invoke,
81
+ relatedUrls: relatedUrls
60
82
  };
61
- }, [invoke]);
83
+ }, [invoke, relatedUrls]);
62
84
  };
@@ -10,4 +10,5 @@ import { InvokeRequest, InvokeResponse } from '@atlaskit/linking-types/smart-lin
10
10
  */
11
11
  export declare const useSmartLinkClientExtension: (cardClient: CardClient) => {
12
12
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
13
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
13
14
  };
@@ -10,4 +10,5 @@ import { InvokeRequest, InvokeResponse } from '@atlaskit/linking-types/smart-lin
10
10
  */
11
11
  export declare const useSmartLinkClientExtension: (cardClient: CardClient) => {
12
12
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
13
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
13
14
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/link-client-extension",
3
- "version": "1.7.2",
3
+ "version": "1.8.0",
4
4
  "description": "Extension methods for linking platform client",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,8 +34,8 @@
34
34
  ".": "./src/index.ts"
35
35
  },
36
36
  "dependencies": {
37
- "@atlaskit/linking-common": "^4.10.0",
38
- "@atlaskit/linking-types": "^8.3.0",
37
+ "@atlaskit/linking-common": "^4.12.0",
38
+ "@atlaskit/linking-types": "^8.4.0",
39
39
  "@babel/runtime": "^7.0.0",
40
40
  "json-ld-types": "^3.9.1",
41
41
  "lru_map": "^0.4.1"
package/report.api.md CHANGED
@@ -72,6 +72,7 @@ export const useDatasourceClientExtension: () => {
72
72
  // @public
73
73
  export const useSmartLinkClientExtension: (cardClient: CardClient) => {
74
74
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
75
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
75
76
  };
76
77
 
77
78
  // (No @packageDocumentation comment for this package)
@@ -53,6 +53,7 @@ export const useDatasourceClientExtension: () => {
53
53
  // @public
54
54
  export const useSmartLinkClientExtension: (cardClient: CardClient) => {
55
55
  invoke: (data: InvokeRequest) => Promise<InvokeResponse>;
56
+ relatedUrls: <TResponse>(url: string) => Promise<TResponse>;
56
57
  };
57
58
 
58
59
  // (No @packageDocumentation comment for this package)