@jetbrains/ring-ui-built 6.0.32 → 6.0.34

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 (226) hide show
  1. package/components/_helpers/_rollupPluginBabelHelpers.js +567 -1
  2. package/components/_helpers/anchor.js +6 -7
  3. package/components/_helpers/button__classes.js +14 -16
  4. package/components/_helpers/caption.js +20 -14
  5. package/components/_helpers/card.js +105 -95
  6. package/components/_helpers/dialog__body-scroll-preventer.js +19 -11
  7. package/components/_helpers/icon__svg.js +25 -22
  8. package/components/_helpers/input.js +176 -146
  9. package/components/_helpers/query-assist__suggestions.js +90 -74
  10. package/components/_helpers/select__filter.js +69 -48
  11. package/components/_helpers/services-link.js +37 -29
  12. package/components/_helpers/sidebar.js +107 -99
  13. package/components/_helpers/tab-link.js +7 -7
  14. package/components/_helpers/theme.js +40 -31
  15. package/components/_helpers/title.js +72 -57
  16. package/components/alert/alert.js +202 -150
  17. package/components/alert/container.js +41 -32
  18. package/components/alert-service/alert-service.js +170 -105
  19. package/components/analytics/analytics.js +22 -12
  20. package/components/analytics/analytics__custom-plugin.js +75 -54
  21. package/components/auth/auth.js +36 -4
  22. package/components/auth/auth__core.js +1471 -746
  23. package/components/auth/background-flow.js +127 -87
  24. package/components/auth/down-notification.js +73 -30
  25. package/components/auth/iframe-flow.js +133 -75
  26. package/components/auth/request-builder.js +82 -46
  27. package/components/auth/response-parser.js +116 -86
  28. package/components/auth/storage.js +334 -171
  29. package/components/auth/token-validator.js +242 -137
  30. package/components/auth/window-flow.js +134 -92
  31. package/components/auth-dialog/auth-dialog.js +172 -114
  32. package/components/auth-dialog-service/auth-dialog-service.js +31 -8
  33. package/components/avatar/avatar-example-datauri.js +1 -23
  34. package/components/avatar/avatar.js +152 -119
  35. package/components/avatar/fallback-avatar.js +38 -22
  36. package/components/badge/badge.js +45 -35
  37. package/components/button/button.js +107 -86
  38. package/components/button-group/button-group.js +33 -19
  39. package/components/button-set/button-set.js +32 -20
  40. package/components/button-toolbar/button-toolbar.js +31 -19
  41. package/components/caret/caret.js +220 -186
  42. package/components/checkbox/checkbox.js +101 -76
  43. package/components/clipboard/clipboard-fallback.js +10 -10
  44. package/components/clipboard/clipboard.js +132 -35
  45. package/components/code/code.js +166 -92
  46. package/components/collapse/collapse-content.js +64 -42
  47. package/components/collapse/collapse-context.js +2 -2
  48. package/components/collapse/collapse-control.js +14 -12
  49. package/components/collapse/collapse.js +17 -11
  50. package/components/collapse/consts.js +4 -4
  51. package/components/collapse/utils.js +3 -1
  52. package/components/confirm/confirm.js +104 -66
  53. package/components/confirm-service/confirm-service.js +59 -37
  54. package/components/content-layout/content-layout.js +64 -43
  55. package/components/content-layout/sidebar.js +1 -0
  56. package/components/contenteditable/contenteditable.js +59 -50
  57. package/components/control-label/control-label.js +9 -9
  58. package/components/data-list/data-list.js +182 -129
  59. package/components/data-list/data-list.mock.js +6 -2
  60. package/components/data-list/item.js +170 -143
  61. package/components/data-list/selection.js +136 -76
  62. package/components/data-list/title.js +12 -1
  63. package/components/date-picker/consts.js +26 -19
  64. package/components/date-picker/date-input.js +144 -113
  65. package/components/date-picker/date-picker.js +282 -227
  66. package/components/date-picker/date-popup.js +395 -350
  67. package/components/date-picker/day.js +116 -87
  68. package/components/date-picker/month-names.js +66 -43
  69. package/components/date-picker/month-slider.js +76 -51
  70. package/components/date-picker/month.js +25 -16
  71. package/components/date-picker/months.js +50 -43
  72. package/components/date-picker/weekdays.js +22 -12
  73. package/components/date-picker/years.js +110 -83
  74. package/components/dialog/dialog.js +190 -142
  75. package/components/dialog/dialog__body-scroll-preventer.js +4 -0
  76. package/components/dropdown/anchor.js +9 -0
  77. package/components/dropdown/dropdown.js +213 -182
  78. package/components/dropdown-menu/dropdown-menu.js +97 -71
  79. package/components/editable-heading/editable-heading.js +127 -75
  80. package/components/error-bubble/error-bubble.js +60 -31
  81. package/components/error-message/error-message.js +59 -39
  82. package/components/footer/footer.js +30 -27
  83. package/components/global/compose.js +10 -1
  84. package/components/global/composeRefs.js +12 -7
  85. package/components/global/controls-height.js +2 -2
  86. package/components/global/create-stateful-context.js +15 -15
  87. package/components/global/data-tests.js +14 -6
  88. package/components/global/dom.js +86 -47
  89. package/components/global/focus-sensor-hoc.js +132 -122
  90. package/components/global/fuzzy-highlight.js +36 -22
  91. package/components/global/get-event-key.js +8 -8
  92. package/components/global/get-uid.js +8 -4
  93. package/components/global/inject-styles.js +15 -10
  94. package/components/global/listeners.js +51 -27
  95. package/components/global/memoize.js +12 -6
  96. package/components/global/normalize-indent.js +50 -19
  97. package/components/global/promise-with-timeout.js +8 -6
  98. package/components/global/prop-types.js +5 -3
  99. package/components/global/react-dom-renderer.js +44 -28
  100. package/components/global/react-render-adapter.js +1 -1
  101. package/components/global/rerender-hoc.js +30 -12
  102. package/components/global/schedule-raf.js +6 -5
  103. package/components/global/sniffer.js +1 -1
  104. package/components/global/theme.js +22 -0
  105. package/components/global/trivial-template-tag.js +10 -3
  106. package/components/global/typescript-utils.js +6 -2
  107. package/components/global/url.js +26 -20
  108. package/components/global/use-event-callback.js +4 -6
  109. package/components/grid/col.js +52 -35
  110. package/components/grid/grid.js +31 -17
  111. package/components/grid/row.js +47 -35
  112. package/components/group/group.js +25 -17
  113. package/components/header/header.js +78 -33
  114. package/components/header/logo.js +36 -20
  115. package/components/header/profile.js +199 -166
  116. package/components/header/services-link.js +4 -0
  117. package/components/header/services.js +116 -73
  118. package/components/header/smart-profile.js +203 -111
  119. package/components/header/smart-services.js +113 -62
  120. package/components/header/tray-icon.js +37 -21
  121. package/components/header/tray.js +32 -21
  122. package/components/heading/heading.js +25 -24
  123. package/components/http/http.d.ts +1 -2
  124. package/components/http/http.js +345 -203
  125. package/components/http/http.mock.d.ts +1 -5
  126. package/components/http/http.mock.js +101 -49
  127. package/components/hub-source/hub-source.js +190 -83
  128. package/components/hub-source/hub-source__user.js +44 -11
  129. package/components/hub-source/hub-source__users-groups.js +65 -37
  130. package/components/i18n/i18n-context.js +10 -7
  131. package/components/i18n/i18n.js +10 -7
  132. package/components/icon/icon.js +93 -76
  133. package/components/icon/icon__svg.js +8 -0
  134. package/components/icon/index.js +8 -0
  135. package/components/input/input.js +13 -0
  136. package/components/island/adaptive-island-hoc.js +43 -30
  137. package/components/island/content.js +132 -115
  138. package/components/island/header.js +70 -57
  139. package/components/island/island.js +40 -28
  140. package/components/island-legacy/content-legacy.js +25 -17
  141. package/components/island-legacy/header-legacy.js +27 -19
  142. package/components/island-legacy/island-legacy.js +25 -17
  143. package/components/link/clickableLink.js +59 -44
  144. package/components/link/link.js +68 -57
  145. package/components/list/consts.js +2 -2
  146. package/components/list/list.js +698 -611
  147. package/components/list/list__custom.js +62 -44
  148. package/components/list/list__hint.js +19 -10
  149. package/components/list/list__item.js +174 -133
  150. package/components/list/list__link.js +50 -37
  151. package/components/list/list__separator.js +24 -14
  152. package/components/list/list__title.js +32 -22
  153. package/components/list/list__users-groups-source.js +126 -54
  154. package/components/loader/loader.js +74 -43
  155. package/components/loader/loader__core.js +263 -198
  156. package/components/loader-inline/loader-inline.js +35 -23
  157. package/components/loader-screen/loader-screen.js +46 -25
  158. package/components/login-dialog/login-dialog.js +158 -111
  159. package/components/login-dialog/service.js +34 -8
  160. package/components/markdown/markdown.js +23 -15
  161. package/components/message/message.js +203 -161
  162. package/components/old-browsers-message/old-browsers-message.js +18 -11
  163. package/components/old-browsers-message/old-browsers-message__stop.js +7 -0
  164. package/components/old-browsers-message/white-list.js +17 -9
  165. package/components/pager/pager.js +271 -212
  166. package/components/panel/panel.js +25 -17
  167. package/components/permissions/permissions.js +172 -127
  168. package/components/permissions/permissions__cache.js +224 -194
  169. package/components/popup/popup.consts.js +1 -1
  170. package/components/popup/popup.js +343 -284
  171. package/components/popup/popup.target.js +8 -9
  172. package/components/popup/position.js +106 -96
  173. package/components/popup-menu/popup-menu.js +81 -44
  174. package/components/progress-bar/progress-bar.js +104 -87
  175. package/components/query-assist/query-assist.js +916 -838
  176. package/components/query-assist/query-assist__suggestions.js +30 -1
  177. package/components/radio/radio.js +34 -19
  178. package/components/radio/radio__item.js +69 -52
  179. package/components/select/select.js +957 -852
  180. package/components/select/select__filter.js +30 -0
  181. package/components/select/select__popup.js +487 -373
  182. package/components/shortcuts/core.js +217 -166
  183. package/components/shortcuts/shortcut-title.js +11 -6
  184. package/components/shortcuts/shortcuts-hoc.js +45 -19
  185. package/components/shortcuts/shortcuts.js +75 -50
  186. package/components/slider/slider.js +122 -99
  187. package/components/slider/slider.utils.js +24 -14
  188. package/components/storage/storage.js +33 -4
  189. package/components/storage/storage__fallback.js +224 -149
  190. package/components/storage/storage__local.js +153 -90
  191. package/components/tab-trap/tab-trap.js +153 -122
  192. package/components/table/cell.js +26 -14
  193. package/components/table/disable-hover-hoc.js +51 -33
  194. package/components/table/header-cell.js +89 -64
  195. package/components/table/header.js +132 -104
  196. package/components/table/multitable.js +125 -107
  197. package/components/table/row-with-focus-sensor.js +69 -25
  198. package/components/table/row.js +216 -175
  199. package/components/table/selection-adapter.js +3 -1
  200. package/components/table/selection-shortcuts-hoc.js +181 -180
  201. package/components/table/selection.js +226 -156
  202. package/components/table/smart-table.js +88 -50
  203. package/components/table/table.js +358 -289
  204. package/components/tabs/collapsible-more.js +79 -46
  205. package/components/tabs/collapsible-tab.js +38 -31
  206. package/components/tabs/collapsible-tabs.js +153 -88
  207. package/components/tabs/custom-item.js +2 -4
  208. package/components/tabs/dumb-tabs.js +117 -74
  209. package/components/tabs/smart-tabs.js +69 -29
  210. package/components/tabs/tab-link.js +5 -1
  211. package/components/tabs/tab.js +31 -19
  212. package/components/tabs/tabs.js +31 -0
  213. package/components/tag/tag.js +173 -133
  214. package/components/tags-input/tags-input.js +427 -329
  215. package/components/tags-list/tags-list.js +78 -57
  216. package/components/text/text.js +39 -28
  217. package/components/toggle/toggle.js +70 -56
  218. package/components/tooltip/tooltip.js +190 -146
  219. package/components/user-agreement/service.js +371 -228
  220. package/components/user-agreement/toolbox.eula.js +1 -160
  221. package/components/user-agreement/user-agreement.js +120 -85
  222. package/components/user-card/card.js +29 -0
  223. package/components/user-card/smart-user-card-tooltip.js +111 -51
  224. package/components/user-card/tooltip.js +84 -47
  225. package/components/user-card/user-card.js +29 -0
  226. package/package.json +1 -2
@@ -1,234 +1,376 @@
1
+ import { a as _inherits, b as _createClass, c as _objectWithoutProperties, d as _objectSpread2, j as _slicedToArray, f as _classCallCheck, g as _callSuper, _ as _defineProperty, h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
2
+ import 'core-js/modules/es.array.concat.js';
3
+ import 'core-js/modules/es.array.index-of.js';
4
+ import 'core-js/modules/es.array.iterator.js';
5
+ import 'core-js/modules/es.object.entries.js';
6
+ import 'core-js/modules/es.object.to-string.js';
7
+ import 'core-js/modules/es.promise.js';
8
+ import 'core-js/modules/es.reflect.delete-property.js';
9
+ import 'core-js/modules/es.weak-map.js';
10
+ import 'core-js/modules/web.dom-collections.for-each.js';
11
+ import 'core-js/modules/web.dom-collections.iterator.js';
1
12
  import ExtendableError from 'es6-error';
2
13
  import { encodeURL, joinBaseURLAndPath } from '../global/url.js';
14
+ import 'core-js/modules/es.regexp.exec.js';
15
+ import 'core-js/modules/es.string.match.js';
16
+ import 'core-js/modules/es.string.replace.js';
3
17
 
18
+ var _excluded = ["body", "query"],
19
+ _excluded2 = ["headers"],
20
+ _excluded3 = ["headers", "body", "query", "sendRawBody"];
4
21
  /**
5
22
  * @name HTTP
6
23
  */
7
- const TOKEN_TYPE = 'Bearer';
8
- const STATUS_OK_IF_MORE_THAN = 200;
9
- const STATUS_BAD_IF_MORE_THAN = 300;
10
- const defaultFetchConfig = {
24
+ var TOKEN_TYPE = 'Bearer';
25
+ var defaultFetchConfig = {
11
26
  headers: {
12
27
  'Content-Type': 'application/json',
13
28
  Accept: 'application/json'
14
29
  },
15
30
  credentials: 'same-origin'
16
31
  };
17
- class HTTPError extends ExtendableError {
18
- data;
19
- status;
20
- constructor(response) {
21
- let data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
22
- super(`${response.status} ${response.statusText || ''}`);
23
- this.data = data;
24
- this.status = response.status;
32
+ var HTTPError = /*#__PURE__*/function (_ExtendableError) {
33
+ function HTTPError(response) {
34
+ var _this;
35
+ var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
36
+ _classCallCheck(this, HTTPError);
37
+ _this = _callSuper(this, HTTPError, ["".concat(response.status, " ").concat(response.statusText || '')]);
38
+ _defineProperty(_this, "data", void 0);
39
+ _defineProperty(_this, "status", void 0);
40
+ _this.data = data;
41
+ _this.status = response.status;
42
+ return _this;
25
43
  }
26
- }
27
- const CODE = {
44
+ _inherits(HTTPError, _ExtendableError);
45
+ return _createClass(HTTPError);
46
+ }(ExtendableError);
47
+ var CODE = {
28
48
  UNAUTHORIZED: 401
29
49
  };
30
50
  function isRawBody(params) {
31
51
  return params.sendRawBody === true;
32
52
  }
33
- class HTTP {
34
- baseUrl = null;
35
- _requestsMeta = new WeakMap();
36
- fetchConfig;
37
- requestToken;
38
- shouldRefreshToken;
39
- forceTokenUpdate;
40
- constructor(auth, baseUrl) {
41
- let fetchConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
42
- if (auth) {
43
- this.setAuth(auth);
44
- }
45
- this.setBaseUrl(baseUrl);
46
- const {
47
- headers,
48
- ...defaultConfig
49
- } = defaultFetchConfig;
50
- this.fetchConfig = {
51
- ...defaultConfig,
52
- ...fetchConfig,
53
- headers: {
54
- ...headers,
55
- ...fetchConfig.headers
56
- }
57
- };
58
- }
59
- setAuth = auth => {
60
- this.requestToken = () => auth.requestToken();
61
- this.shouldRefreshToken = auth.constructor.shouldRefreshToken;
62
- this.forceTokenUpdate = () => auth.forceTokenUpdate();
63
- };
64
- setBaseUrl = baseUrl => {
65
- this.baseUrl = baseUrl;
66
- };
67
- _fetch() {
68
- return fetch(...arguments);
69
- }
70
- _makeRequestUrl(url, queryObject) {
71
- const urlWithQuery = encodeURL(url, queryObject);
72
- return joinBaseURLAndPath(this.baseUrl, urlWithQuery);
73
- }
74
- _performRequest(url, token) {
75
- let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
76
- const {
77
- headers,
78
- body,
79
- query = {},
80
- sendRawBody,
81
- ...fetchConfig
82
- } = params;
83
- const combinedHeaders = {
84
- ...this.fetchConfig.headers,
85
- ...(token ? {
86
- Authorization: `${TOKEN_TYPE} ${token}`
87
- } : {}),
88
- ...headers
89
- };
90
- Object.entries(combinedHeaders).forEach(_ref => {
91
- let [key, header] = _ref;
92
- if (header === null || header === undefined) {
93
- Reflect.deleteProperty(combinedHeaders, key);
94
- }
53
+ var HTTP = /*#__PURE__*/function () {
54
+ function HTTP(_auth, _baseUrl) {
55
+ var _this2 = this;
56
+ var _fetchConfig = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
57
+ _classCallCheck(this, HTTP);
58
+ _defineProperty(this, "baseUrl", null);
59
+ _defineProperty(this, "_requestsMeta", new WeakMap());
60
+ _defineProperty(this, "fetchConfig", void 0);
61
+ _defineProperty(this, "requestToken", void 0);
62
+ _defineProperty(this, "shouldRefreshToken", void 0);
63
+ _defineProperty(this, "forceTokenUpdate", void 0);
64
+ _defineProperty(this, "setAuth", function (auth) {
65
+ _this2.requestToken = function () {
66
+ return auth.requestToken();
67
+ };
68
+ _this2.shouldRefreshToken = auth.constructor.shouldRefreshToken;
69
+ _this2.forceTokenUpdate = function () {
70
+ return auth.forceTokenUpdate();
71
+ };
95
72
  });
96
- let bodyToSend;
97
- if (isRawBody(params)) {
98
- bodyToSend = params.body;
99
- } else {
100
- bodyToSend = params.body === null || params.body === undefined || params.body === '' ? params.body : JSON.stringify(body);
101
- }
102
- return this._fetch(this._makeRequestUrl(url, query), {
103
- ...this.fetchConfig,
104
- headers: combinedHeaders,
105
- ...fetchConfig,
106
- body: bodyToSend
73
+ _defineProperty(this, "setBaseUrl", function (baseUrl) {
74
+ _this2.baseUrl = baseUrl;
107
75
  });
108
- }
109
- _storeRequestMeta(parsedResponse, rawResponse) {
110
- const {
111
- headers,
112
- ok,
113
- redirected,
114
- status,
115
- statusText,
116
- type,
117
- url
118
- } = rawResponse;
119
- this._requestsMeta.set(parsedResponse, {
120
- headers,
121
- ok,
122
- redirected,
123
- status,
124
- statusText,
125
- type,
126
- url
76
+ _defineProperty(this, "fetch", /*#__PURE__*/function () {
77
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(url) {
78
+ var params,
79
+ body,
80
+ _params$query,
81
+ query,
82
+ fetchConfig,
83
+ response,
84
+ _args = arguments;
85
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
86
+ while (1) switch (_context.prev = _context.next) {
87
+ case 0:
88
+ params = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
89
+ body = params.body, _params$query = params.query, query = _params$query === void 0 ? {} : _params$query, fetchConfig = _objectWithoutProperties(params, _excluded);
90
+ _context.next = 4;
91
+ return _this2._fetch(_this2._makeRequestUrl(url, query), _objectSpread2(_objectSpread2({}, fetchConfig), {}, {
92
+ headers: fetchConfig.headers,
93
+ body: body !== null && body !== undefined && body !== '' ? JSON.stringify(body) : body
94
+ }));
95
+ case 4:
96
+ response = _context.sent;
97
+ return _context.abrupt("return", _this2._processResponse(response));
98
+ case 6:
99
+ case "end":
100
+ return _context.stop();
101
+ }
102
+ }, _callee);
103
+ }));
104
+ return function (_x) {
105
+ return _ref.apply(this, arguments);
106
+ };
107
+ }());
108
+ _defineProperty(this, "request", /*#__PURE__*/function () {
109
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(url, params) {
110
+ var _this2$requestToken;
111
+ var token, response, _this2$shouldRefreshT, shouldRefreshToken, _this2$forceTokenUpda;
112
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
113
+ while (1) switch (_context2.prev = _context2.next) {
114
+ case 0:
115
+ _context2.next = 2;
116
+ return (_this2$requestToken = _this2.requestToken) === null || _this2$requestToken === void 0 ? void 0 : _this2$requestToken.call(_this2);
117
+ case 2:
118
+ token = _context2.sent;
119
+ _context2.next = 5;
120
+ return _this2._performRequest(url, token, params);
121
+ case 5:
122
+ response = _context2.sent;
123
+ _context2.prev = 6;
124
+ _context2.next = 9;
125
+ return _this2._processResponse(response);
126
+ case 9:
127
+ return _context2.abrupt("return", _context2.sent);
128
+ case 12:
129
+ _context2.prev = 12;
130
+ _context2.t0 = _context2["catch"](6);
131
+ if (_context2.t0 instanceof HTTPError) {
132
+ _context2.next = 16;
133
+ break;
134
+ }
135
+ throw _context2.t0;
136
+ case 16:
137
+ shouldRefreshToken = typeof _context2.t0.data.error === 'string' ? (_this2$shouldRefreshT = _this2.shouldRefreshToken) === null || _this2$shouldRefreshT === void 0 ? void 0 : _this2$shouldRefreshT.call(_this2, _context2.t0.data.error) : false;
138
+ if (!shouldRefreshToken) {
139
+ _context2.next = 25;
140
+ break;
141
+ }
142
+ _context2.next = 20;
143
+ return (_this2$forceTokenUpda = _this2.forceTokenUpdate) === null || _this2$forceTokenUpda === void 0 ? void 0 : _this2$forceTokenUpda.call(_this2);
144
+ case 20:
145
+ token = _context2.sent;
146
+ _context2.next = 23;
147
+ return _this2._performRequest(url, token, params);
148
+ case 23:
149
+ response = _context2.sent;
150
+ return _context2.abrupt("return", _this2._processResponse(response));
151
+ case 25:
152
+ throw _context2.t0;
153
+ case 26:
154
+ case "end":
155
+ return _context2.stop();
156
+ }
157
+ }, _callee2, null, [[6, 12]]);
158
+ }));
159
+ return function (_x2, _x3) {
160
+ return _ref2.apply(this, arguments);
161
+ };
162
+ }());
163
+ _defineProperty(this, "getMetaForResponse", function (response) {
164
+ return _this2._requestsMeta.get(response);
165
+ });
166
+ _defineProperty(this, "get", function (url, params) {
167
+ return _this2.request(url, _objectSpread2(_objectSpread2({}, params), {}, {
168
+ method: 'GET'
169
+ }));
170
+ });
171
+ _defineProperty(this, "post", function (url, params) {
172
+ return _this2.request(url, _objectSpread2(_objectSpread2({}, params), {}, {
173
+ method: 'POST'
174
+ }));
175
+ });
176
+ _defineProperty(this, "delete", function (url, params) {
177
+ return _this2.request(url, _objectSpread2(_objectSpread2({}, params), {}, {
178
+ method: 'DELETE'
179
+ }));
180
+ });
181
+ _defineProperty(this, "put", function (url, params) {
182
+ return _this2.request(url, _objectSpread2(_objectSpread2({}, params), {}, {
183
+ method: 'PUT'
184
+ }));
185
+ });
186
+ /**
187
+ * Usage: const {promise, abort} = http.abortify(http.get<{id: string}>)('http://test.com');
188
+ * @param method
189
+ */
190
+ _defineProperty(this, "abortify", function (method) {
191
+ return function () {
192
+ for (var _len = arguments.length, _ref3 = new Array(_len), _key = 0; _key < _len; _key++) {
193
+ _ref3[_key] = arguments[_key];
194
+ }
195
+ var url = _ref3[0],
196
+ params = _ref3[1];
197
+ var ctrl = new AbortController();
198
+ if (params && !('signal' in params)) {
199
+ params.signal = ctrl.signal;
200
+ }
201
+ return {
202
+ promise: method.call(_this2, url, params),
203
+ abort: function abort() {
204
+ return ctrl.abort();
205
+ }
206
+ };
207
+ };
208
+ });
209
+ if (_auth) {
210
+ this.setAuth(_auth);
211
+ }
212
+ this.setBaseUrl(_baseUrl);
213
+ var headers = defaultFetchConfig.headers,
214
+ defaultConfig = _objectWithoutProperties(defaultFetchConfig, _excluded2);
215
+ this.fetchConfig = _objectSpread2(_objectSpread2(_objectSpread2({}, defaultConfig), _fetchConfig), {}, {
216
+ headers: _objectSpread2(_objectSpread2({}, headers), _fetchConfig.headers)
127
217
  });
128
218
  }
129
- async _processResponse(response) {
130
- const contentType = response.headers?.get('content-type');
131
- const isJson = contentType && contentType.indexOf('application/json') !== -1;
132
- if (response.status != null && HTTP._isErrorStatus(response.status)) {
133
- let resJson;
134
- try {
135
- resJson = await (isJson ? response.json?.() : response.text?.());
136
- } catch (err) {
137
- // noop
138
- }
139
- throw new HTTPError(response, resJson);
219
+ return _createClass(HTTP, [{
220
+ key: "_fetch",
221
+ value: function _fetch() {
222
+ return fetch.apply(void 0, arguments);
140
223
  }
141
- try {
142
- const parsedResponse = await (isJson ? response.json?.() : {
143
- data: await response.text?.()
144
- });
145
- this._storeRequestMeta(parsedResponse, response);
146
- return parsedResponse;
147
- } catch (err) {
148
- return response;
224
+ }, {
225
+ key: "_makeRequestUrl",
226
+ value: function _makeRequestUrl(url, queryObject) {
227
+ var urlWithQuery = encodeURL(url, queryObject);
228
+ return joinBaseURLAndPath(this.baseUrl, urlWithQuery);
149
229
  }
150
- }
151
- static _isErrorStatus(status) {
152
- return status < STATUS_OK_IF_MORE_THAN || status >= STATUS_BAD_IF_MORE_THAN;
153
- }
154
- fetch = (() => {
155
- var _this = this;
156
- return async function (url) {
157
- let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
158
- const {
159
- body,
160
- query = {},
161
- ...fetchConfig
162
- } = params;
163
- const response = await _this._fetch(_this._makeRequestUrl(url, query), {
164
- ...fetchConfig,
165
- headers: fetchConfig.headers,
166
- body: body !== null && body !== undefined && body !== '' ? JSON.stringify(body) : body
230
+ }, {
231
+ key: "_performRequest",
232
+ value: function _performRequest(url, token) {
233
+ var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
234
+ var headers = params.headers,
235
+ body = params.body,
236
+ _params$query2 = params.query,
237
+ query = _params$query2 === void 0 ? {} : _params$query2;
238
+ params.sendRawBody;
239
+ var fetchConfig = _objectWithoutProperties(params, _excluded3);
240
+ var combinedHeaders = _objectSpread2(_objectSpread2(_objectSpread2({}, this.fetchConfig.headers), token ? {
241
+ Authorization: "".concat(TOKEN_TYPE, " ").concat(token)
242
+ } : {}), headers);
243
+ Object.entries(combinedHeaders).forEach(function (_ref4) {
244
+ var _ref5 = _slicedToArray(_ref4, 2),
245
+ key = _ref5[0],
246
+ header = _ref5[1];
247
+ if (header === null || header === undefined) {
248
+ Reflect.deleteProperty(combinedHeaders, key);
249
+ }
167
250
  });
168
- return _this._processResponse(response);
169
- };
170
- })();
171
- async authorizedFetch() {
172
- const response = await this._performRequest(...arguments);
173
- return this._processResponse(response);
174
- }
175
- request = async (url, params) => {
176
- let token = await this.requestToken?.();
177
- let response = await this._performRequest(url, token, params);
178
- try {
179
- // Wait for result to catch an HTTP error
180
- return await this._processResponse(response);
181
- } catch (error) {
182
- if (!(error instanceof HTTPError)) {
183
- throw error;
251
+ var bodyToSend;
252
+ if (isRawBody(params)) {
253
+ bodyToSend = params.body;
254
+ } else {
255
+ bodyToSend = params.body === null || params.body === undefined || params.body === '' ? params.body : JSON.stringify(body);
184
256
  }
185
- const shouldRefreshToken = typeof error.data.error === 'string' ? this.shouldRefreshToken?.(error.data.error) : false;
186
- if (shouldRefreshToken) {
187
- token = await this.forceTokenUpdate?.();
188
- response = await this._performRequest(url, token, params);
189
- return this._processResponse(response);
190
- }
191
- throw error;
257
+ return this._fetch(this._makeRequestUrl(url, query), _objectSpread2(_objectSpread2(_objectSpread2({}, this.fetchConfig), {}, {
258
+ headers: combinedHeaders
259
+ }, fetchConfig), {}, {
260
+ body: bodyToSend
261
+ }));
192
262
  }
193
- };
194
- getMetaForResponse = response => this._requestsMeta.get(response);
195
- get = (url, params) => this.request(url, {
196
- ...params,
197
- method: 'GET'
198
- });
199
- post = (url, params) => this.request(url, {
200
- ...params,
201
- method: 'POST'
202
- });
203
- delete = (url, params) => this.request(url, {
204
- ...params,
205
- method: 'DELETE'
206
- });
207
- put = (url, params) => this.request(url, {
208
- ...params,
209
- method: 'PUT'
210
- });
211
- /**
212
- * Usage: const {promise, abort} = http.abortify(http.get<{id: string}>)('http://test.com');
213
- * @param method
214
- */
215
- abortify = method => {
216
- var _this2 = this;
217
- return function () {
218
- for (var _len = arguments.length, _ref2 = new Array(_len), _key = 0; _key < _len; _key++) {
219
- _ref2[_key] = arguments[_key];
263
+ }, {
264
+ key: "_storeRequestMeta",
265
+ value: function _storeRequestMeta(parsedResponse, rawResponse) {
266
+ var headers = rawResponse.headers,
267
+ ok = rawResponse.ok,
268
+ redirected = rawResponse.redirected,
269
+ status = rawResponse.status,
270
+ statusText = rawResponse.statusText,
271
+ type = rawResponse.type,
272
+ url = rawResponse.url;
273
+ this._requestsMeta.set(parsedResponse, {
274
+ headers,
275
+ ok,
276
+ redirected,
277
+ status,
278
+ statusText,
279
+ type,
280
+ url
281
+ });
282
+ }
283
+ }, {
284
+ key: "_processResponse",
285
+ value: function () {
286
+ var _processResponse2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(response) {
287
+ var contentType, isJson, resJson, parsedResponse;
288
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
289
+ while (1) switch (_context3.prev = _context3.next) {
290
+ case 0:
291
+ contentType = response.headers.get('content-type');
292
+ isJson = contentType && contentType.indexOf('application/json') !== -1;
293
+ if (response.ok) {
294
+ _context3.next = 12;
295
+ break;
296
+ }
297
+ _context3.prev = 3;
298
+ _context3.next = 6;
299
+ return isJson ? response.json() : response.text();
300
+ case 6:
301
+ resJson = _context3.sent;
302
+ _context3.next = 11;
303
+ break;
304
+ case 9:
305
+ _context3.prev = 9;
306
+ _context3.t0 = _context3["catch"](3);
307
+ case 11:
308
+ throw new HTTPError(response, resJson);
309
+ case 12:
310
+ _context3.prev = 12;
311
+ if (!isJson) {
312
+ _context3.next = 17;
313
+ break;
314
+ }
315
+ _context3.t1 = response.json();
316
+ _context3.next = 21;
317
+ break;
318
+ case 17:
319
+ _context3.next = 19;
320
+ return response.text();
321
+ case 19:
322
+ _context3.t2 = _context3.sent;
323
+ _context3.t1 = {
324
+ data: _context3.t2
325
+ };
326
+ case 21:
327
+ _context3.next = 23;
328
+ return _context3.t1;
329
+ case 23:
330
+ parsedResponse = _context3.sent;
331
+ this._storeRequestMeta(parsedResponse, response);
332
+ return _context3.abrupt("return", parsedResponse);
333
+ case 28:
334
+ _context3.prev = 28;
335
+ _context3.t3 = _context3["catch"](12);
336
+ return _context3.abrupt("return", response);
337
+ case 31:
338
+ case "end":
339
+ return _context3.stop();
340
+ }
341
+ }, _callee3, this, [[3, 9], [12, 28]]);
342
+ }));
343
+ function _processResponse(_x4) {
344
+ return _processResponse2.apply(this, arguments);
220
345
  }
221
- let [url, params] = _ref2;
222
- const ctrl = new AbortController();
223
- if (params && !('signal' in params)) {
224
- params.signal = ctrl.signal;
346
+ return _processResponse;
347
+ }()
348
+ }, {
349
+ key: "authorizedFetch",
350
+ value: function () {
351
+ var _authorizedFetch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
352
+ var response,
353
+ _args4 = arguments;
354
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
355
+ while (1) switch (_context4.prev = _context4.next) {
356
+ case 0:
357
+ _context4.next = 2;
358
+ return this._performRequest.apply(this, _args4);
359
+ case 2:
360
+ response = _context4.sent;
361
+ return _context4.abrupt("return", this._processResponse(response));
362
+ case 4:
363
+ case "end":
364
+ return _context4.stop();
365
+ }
366
+ }, _callee4, this);
367
+ }));
368
+ function authorizedFetch() {
369
+ return _authorizedFetch.apply(this, arguments);
225
370
  }
226
- return {
227
- promise: method.call(_this2, url, params),
228
- abort: () => ctrl.abort()
229
- };
230
- };
231
- };
232
- }
371
+ return authorizedFetch;
372
+ }()
373
+ }]);
374
+ }();
233
375
 
234
376
  export { CODE, HTTPError, HTTP as default, defaultFetchConfig };
@@ -8,11 +8,7 @@ export default class HTTPMock extends HTTP {
8
8
  requests: HTTPMockRequest[];
9
9
  responsesByUrlMap: Map<string | RegExp, unknown>;
10
10
  constructor();
11
- _fetch(url: string, params: RequestInit): {
12
- status: number;
13
- headers: Headers;
14
- json: () => Promise<unknown>;
15
- };
11
+ _fetch(url: string, params: RequestInit): Promise<Response>;
16
12
  respondDefault(response: unknown): void;
17
13
  respondForUrl(url: string | RegExp, response: unknown): void;
18
14
  _getResponseForUrl(urlToMatch: string): unknown;