@jetbrains/ring-ui-built 6.0.30 → 6.0.32
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/components/_helpers/_rollupPluginBabelHelpers.js +7 -629
- package/components/_helpers/anchor.js +7 -6
- package/components/_helpers/button__classes.js +16 -14
- package/components/_helpers/caption.js +14 -20
- package/components/_helpers/card.js +95 -105
- package/components/_helpers/dialog__body-scroll-preventer.js +11 -19
- package/components/_helpers/icon__svg.js +22 -25
- package/components/_helpers/input.js +146 -177
- package/components/_helpers/query-assist__suggestions.js +74 -90
- package/components/_helpers/select__filter.js +48 -69
- package/components/_helpers/services-link.js +29 -37
- package/components/_helpers/sidebar.js +99 -107
- package/components/_helpers/tab-link.js +7 -7
- package/components/_helpers/theme.js +31 -40
- package/components/_helpers/title.js +57 -72
- package/components/alert/alert.js +150 -202
- package/components/alert/container.js +32 -41
- package/components/alert-service/alert-service.js +105 -170
- package/components/analytics/analytics.js +12 -22
- package/components/analytics/analytics__custom-plugin.js +54 -75
- package/components/auth/auth.js +4 -36
- package/components/auth/auth__core.js +746 -1471
- package/components/auth/background-flow.js +87 -127
- package/components/auth/down-notification.js +30 -73
- package/components/auth/iframe-flow.js +75 -133
- package/components/auth/request-builder.js +46 -82
- package/components/auth/response-parser.js +86 -116
- package/components/auth/storage.js +171 -334
- package/components/auth/token-validator.js +137 -242
- package/components/auth/window-flow.js +92 -134
- package/components/auth-dialog/auth-dialog.js +114 -172
- package/components/auth-dialog-service/auth-dialog-service.js +8 -31
- package/components/avatar/avatar-example-datauri.js +23 -1
- package/components/avatar/avatar.js +119 -152
- package/components/avatar/fallback-avatar.js +22 -38
- package/components/badge/badge.js +35 -45
- package/components/button/button.js +86 -107
- package/components/button-group/button-group.js +19 -33
- package/components/button-set/button-set.js +20 -32
- package/components/button-toolbar/button-toolbar.js +19 -31
- package/components/caret/caret.js +186 -220
- package/components/checkbox/checkbox.js +76 -101
- package/components/clipboard/clipboard-fallback.js +10 -10
- package/components/clipboard/clipboard.js +35 -132
- package/components/code/code.js +92 -166
- package/components/collapse/collapse-content.js +42 -64
- package/components/collapse/collapse-context.js +2 -2
- package/components/collapse/collapse-control.js +12 -14
- package/components/collapse/collapse.js +11 -17
- package/components/collapse/consts.js +4 -4
- package/components/collapse/utils.js +1 -3
- package/components/confirm/confirm.js +66 -104
- package/components/confirm-service/confirm-service.js +37 -59
- package/components/content-layout/content-layout.js +43 -64
- package/components/content-layout/sidebar.js +0 -1
- package/components/contenteditable/contenteditable.js +50 -59
- package/components/control-label/control-label.js +9 -9
- package/components/data-list/data-list.js +129 -182
- package/components/data-list/data-list.mock.js +2 -6
- package/components/data-list/item.js +143 -170
- package/components/data-list/selection.js +76 -136
- package/components/data-list/title.js +1 -12
- package/components/date-picker/consts.js +19 -26
- package/components/date-picker/date-input.js +113 -144
- package/components/date-picker/date-picker.js +227 -282
- package/components/date-picker/date-popup.js +350 -395
- package/components/date-picker/day.js +87 -116
- package/components/date-picker/month-names.js +43 -66
- package/components/date-picker/month-slider.js +51 -76
- package/components/date-picker/month.js +16 -25
- package/components/date-picker/months.js +43 -50
- package/components/date-picker/weekdays.js +12 -22
- package/components/date-picker/years.js +83 -110
- package/components/dialog/dialog.js +142 -190
- package/components/dialog/dialog__body-scroll-preventer.js +0 -4
- package/components/dropdown/anchor.js +0 -9
- package/components/dropdown/dropdown.js +182 -213
- package/components/dropdown-menu/dropdown-menu.js +71 -97
- package/components/editable-heading/editable-heading.js +75 -127
- package/components/error-bubble/error-bubble.js +31 -60
- package/components/error-message/error-message.js +39 -59
- package/components/footer/footer.js +27 -30
- package/components/global/compose.js +1 -10
- package/components/global/composeRefs.js +7 -12
- package/components/global/controls-height.js +2 -2
- package/components/global/create-stateful-context.js +15 -15
- package/components/global/data-tests.js +6 -14
- package/components/global/dom.js +47 -86
- package/components/global/focus-sensor-hoc.js +122 -132
- package/components/global/fuzzy-highlight.js +22 -36
- package/components/global/get-event-key.js +8 -8
- package/components/global/get-uid.js +4 -8
- package/components/global/inject-styles.js +10 -15
- package/components/global/listeners.js +27 -51
- package/components/global/memoize.js +6 -12
- package/components/global/normalize-indent.js +19 -50
- package/components/global/promise-with-timeout.js +6 -8
- package/components/global/prop-types.js +3 -5
- package/components/global/react-dom-renderer.js +28 -44
- package/components/global/react-render-adapter.js +1 -1
- package/components/global/rerender-hoc.js +12 -30
- package/components/global/schedule-raf.js +5 -6
- package/components/global/sniffer.js +1 -1
- package/components/global/theme.js +0 -22
- package/components/global/trivial-template-tag.js +3 -10
- package/components/global/typescript-utils.js +2 -6
- package/components/global/url.js +20 -26
- package/components/global/use-event-callback.js +6 -4
- package/components/grid/col.js +35 -52
- package/components/grid/grid.js +17 -31
- package/components/grid/row.js +35 -47
- package/components/group/group.js +17 -25
- package/components/header/header.js +33 -78
- package/components/header/logo.js +20 -36
- package/components/header/profile.js +166 -199
- package/components/header/services-link.js +0 -4
- package/components/header/services.js +73 -116
- package/components/header/smart-profile.js +111 -203
- package/components/header/smart-services.js +62 -113
- package/components/header/tray-icon.js +21 -37
- package/components/header/tray.js +21 -32
- package/components/heading/heading.js +24 -25
- package/components/http/http.d.ts +1 -3
- package/components/http/http.js +203 -353
- package/components/http/http.mock.js +49 -101
- package/components/hub-source/hub-source.js +83 -190
- package/components/hub-source/hub-source__user.js +11 -44
- package/components/hub-source/hub-source__users-groups.js +37 -65
- package/components/i18n/i18n-context.js +7 -10
- package/components/i18n/i18n.js +7 -10
- package/components/icon/icon.js +76 -93
- package/components/icon/icon__svg.js +0 -8
- package/components/icon/index.js +0 -8
- package/components/input/input.js +0 -13
- package/components/island/adaptive-island-hoc.js +30 -43
- package/components/island/content.js +115 -132
- package/components/island/header.js +57 -70
- package/components/island/island.js +28 -40
- package/components/island-legacy/content-legacy.js +17 -25
- package/components/island-legacy/header-legacy.js +19 -27
- package/components/island-legacy/island-legacy.js +17 -25
- package/components/link/clickableLink.js +44 -59
- package/components/link/link.js +57 -68
- package/components/list/consts.js +2 -2
- package/components/list/list.js +611 -698
- package/components/list/list__custom.js +44 -62
- package/components/list/list__hint.js +10 -19
- package/components/list/list__item.js +133 -174
- package/components/list/list__link.js +37 -50
- package/components/list/list__separator.js +14 -24
- package/components/list/list__title.js +22 -32
- package/components/list/list__users-groups-source.js +54 -126
- package/components/loader/loader.js +43 -74
- package/components/loader/loader__core.js +198 -263
- package/components/loader-inline/loader-inline.js +23 -35
- package/components/loader-screen/loader-screen.js +25 -46
- package/components/login-dialog/login-dialog.js +111 -158
- package/components/login-dialog/service.js +8 -34
- package/components/markdown/markdown.js +15 -23
- package/components/message/message.js +161 -203
- package/components/old-browsers-message/old-browsers-message.js +11 -18
- package/components/old-browsers-message/old-browsers-message__stop.js +0 -7
- package/components/old-browsers-message/white-list.js +8 -16
- package/components/pager/pager.js +212 -271
- package/components/panel/panel.js +17 -25
- package/components/permissions/permissions.js +127 -172
- package/components/permissions/permissions__cache.js +194 -224
- package/components/popup/popup.consts.js +1 -1
- package/components/popup/popup.js +284 -343
- package/components/popup/popup.target.js +9 -8
- package/components/popup/position.js +96 -106
- package/components/popup-menu/popup-menu.js +44 -80
- package/components/progress-bar/progress-bar.js +87 -104
- package/components/query-assist/query-assist.js +838 -916
- package/components/query-assist/query-assist__suggestions.js +1 -30
- package/components/radio/radio.js +19 -34
- package/components/radio/radio__item.js +52 -69
- package/components/select/select.js +852 -957
- package/components/select/select__filter.js +0 -30
- package/components/select/select__popup.js +373 -487
- package/components/shortcuts/core.js +166 -217
- package/components/shortcuts/shortcut-title.js +6 -11
- package/components/shortcuts/shortcuts-hoc.js +19 -45
- package/components/shortcuts/shortcuts.js +50 -75
- package/components/slider/slider.js +99 -122
- package/components/slider/slider.utils.js +14 -24
- package/components/storage/storage.js +4 -33
- package/components/storage/storage__fallback.js +149 -224
- package/components/storage/storage__local.js +90 -153
- package/components/style.css +1 -1
- package/components/tab-trap/tab-trap.js +122 -153
- package/components/table/cell.js +14 -26
- package/components/table/disable-hover-hoc.js +33 -51
- package/components/table/header-cell.js +64 -89
- package/components/table/header.js +104 -132
- package/components/table/multitable.js +107 -125
- package/components/table/row-with-focus-sensor.js +25 -69
- package/components/table/row.js +175 -216
- package/components/table/selection-adapter.js +1 -3
- package/components/table/selection-shortcuts-hoc.js +180 -181
- package/components/table/selection.js +156 -226
- package/components/table/smart-table.js +50 -88
- package/components/table/table.js +289 -358
- package/components/tabs/collapsible-more.js +46 -79
- package/components/tabs/collapsible-tab.js +31 -38
- package/components/tabs/collapsible-tabs.js +88 -153
- package/components/tabs/custom-item.js +4 -2
- package/components/tabs/dumb-tabs.js +74 -117
- package/components/tabs/smart-tabs.js +29 -69
- package/components/tabs/tab-link.js +1 -5
- package/components/tabs/tab.js +19 -31
- package/components/tabs/tabs.js +0 -31
- package/components/tag/tag.js +133 -173
- package/components/tags-input/tags-input.js +329 -427
- package/components/tags-list/tags-list.js +57 -78
- package/components/text/text.js +28 -39
- package/components/toggle/toggle.js +56 -70
- package/components/tooltip/tooltip.js +146 -190
- package/components/user-agreement/service.js +228 -371
- package/components/user-agreement/toolbox.eula.js +160 -1
- package/components/user-agreement/user-agreement.js +85 -120
- package/components/user-card/card.js +0 -29
- package/components/user-card/smart-user-card-tooltip.js +51 -111
- package/components/user-card/tooltip.js +47 -84
- package/components/user-card/user-card.js +0 -29
- package/package.json +1 -1
@@ -1,15 +1,9 @@
|
|
1
|
-
import { _ as _defineProperty, b as _createClass, f as _classCallCheck, h as _asyncToGenerator, i as _regeneratorRuntime } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
-
import 'core-js/modules/es.array.map.js';
|
3
|
-
import 'core-js/modules/es.object.assign.js';
|
4
1
|
import uuid from 'simply-uuid';
|
5
2
|
import { encodeURL } from '../global/url.js';
|
6
|
-
import 'core-js/modules/es.array.concat.js';
|
7
|
-
import 'core-js/modules/es.array.index-of.js';
|
8
|
-
import 'core-js/modules/es.regexp.exec.js';
|
9
|
-
import 'core-js/modules/es.string.match.js';
|
10
|
-
import 'core-js/modules/es.string.replace.js';
|
11
3
|
|
12
|
-
|
4
|
+
class AuthRequestBuilder {
|
5
|
+
config;
|
6
|
+
storage;
|
13
7
|
/**
|
14
8
|
* @param {{
|
15
9
|
* authorization: string,
|
@@ -20,84 +14,54 @@ var AuthRequestBuilder = /*#__PURE__*/function () {
|
|
20
14
|
* }} config
|
21
15
|
* @param {AuthStorage} storage
|
22
16
|
*/
|
23
|
-
|
24
|
-
_classCallCheck(this, AuthRequestBuilder);
|
25
|
-
_defineProperty(this, "config", void 0);
|
26
|
-
_defineProperty(this, "storage", void 0);
|
17
|
+
constructor(config, storage) {
|
27
18
|
this.config = config;
|
28
19
|
this.storage = storage;
|
29
20
|
}
|
30
21
|
/**
|
31
22
|
* @return {string} random string used for state
|
32
23
|
*/
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
case 8:
|
76
|
-
case "end":
|
77
|
-
return _context.stop();
|
78
|
-
}
|
79
|
-
}, _callee, this);
|
80
|
-
}));
|
81
|
-
function prepareAuthRequest(_x, _x2) {
|
82
|
-
return _prepareAuthRequest.apply(this, arguments);
|
83
|
-
}
|
84
|
-
return prepareAuthRequest;
|
85
|
-
}()
|
86
|
-
/**
|
87
|
-
* @param {string} id
|
88
|
-
* @param {StoredState} storedState
|
89
|
-
* @return {Promise}
|
90
|
-
* @private
|
91
|
-
*/
|
92
|
-
)
|
93
|
-
}, {
|
94
|
-
key: "_saveState",
|
95
|
-
value: function _saveState(id, storedState) {
|
96
|
-
var _this$storage;
|
97
|
-
return (_this$storage = this.storage) === null || _this$storage === void 0 ? void 0 : _this$storage.saveState(id, storedState);
|
98
|
-
}
|
99
|
-
}]);
|
100
|
-
}();
|
101
|
-
_defineProperty(AuthRequestBuilder, "_uuid", uuid.generate);
|
24
|
+
static _uuid = uuid.generate;
|
25
|
+
/**
|
26
|
+
* Save state and build an auth server redirect URL.
|
27
|
+
*
|
28
|
+
* @param {object=} extraParams additional query parameters for auth request
|
29
|
+
* @param {object=} extraState additional state parameters to save
|
30
|
+
* @return {Promise.<string>} promise that is resolved to authURL
|
31
|
+
*/
|
32
|
+
async prepareAuthRequest(extraParams, extraState) {
|
33
|
+
const stateId = AuthRequestBuilder._uuid();
|
34
|
+
const scopes = this.config.scopes.map(scope => encodeURIComponent(scope));
|
35
|
+
/* eslint-disable camelcase */
|
36
|
+
const request = Object.assign({
|
37
|
+
response_type: 'token',
|
38
|
+
state: stateId,
|
39
|
+
redirect_uri: this.config.redirectUri,
|
40
|
+
request_credentials: this.config.requestCredentials,
|
41
|
+
client_id: this.config.clientId,
|
42
|
+
scope: scopes.join(' ')
|
43
|
+
}, extraParams || {});
|
44
|
+
/* eslint-enable camelcase */
|
45
|
+
const authURL = encodeURL(this.config.authorization, request);
|
46
|
+
const state = Object.assign({
|
47
|
+
restoreLocation: window.location.href,
|
48
|
+
scopes: this.config.scopes
|
49
|
+
}, extraState || {});
|
50
|
+
await this._saveState(stateId, state);
|
51
|
+
return {
|
52
|
+
url: authURL,
|
53
|
+
stateId
|
54
|
+
};
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* @param {string} id
|
58
|
+
* @param {StoredState} storedState
|
59
|
+
* @return {Promise}
|
60
|
+
* @private
|
61
|
+
*/
|
62
|
+
_saveState(id, storedState) {
|
63
|
+
return this.storage?.saveState(id, storedState);
|
64
|
+
}
|
65
|
+
}
|
102
66
|
|
103
67
|
export { AuthRequestBuilder as default };
|
@@ -1,33 +1,19 @@
|
|
1
|
-
import { _ as _defineProperty, a as _inherits, b as _createClass, d as _objectSpread2, f as _classCallCheck, g as _callSuper } from '../_helpers/_rollupPluginBabelHelpers.js';
|
2
|
-
import 'core-js/modules/es.array.index-of.js';
|
3
|
-
import 'core-js/modules/es.object.to-string.js';
|
4
|
-
import 'core-js/modules/es.regexp.exec.js';
|
5
|
-
import 'core-js/modules/es.regexp.to-string.js';
|
6
|
-
import 'core-js/modules/es.string.replace.js';
|
7
|
-
import 'core-js/modules/web.dom-collections.for-each.js';
|
8
1
|
import ExtendableError from 'es6-error';
|
9
2
|
import { parseQueryString } from '../global/url.js';
|
10
|
-
import 'core-js/modules/es.array.concat.js';
|
11
|
-
import 'core-js/modules/es.string.match.js';
|
12
3
|
|
13
|
-
|
4
|
+
class AuthError extends ExtendableError {
|
5
|
+
code;
|
6
|
+
uri;
|
7
|
+
stateId;
|
14
8
|
// Supports weird IE 11 failing test issue
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
_defineProperty(_this, "uri", void 0);
|
22
|
-
_defineProperty(_this, "stateId", void 0);
|
23
|
-
_this.code = authResponse.error;
|
24
|
-
_this.uri = authResponse.errorUri;
|
25
|
-
_this.stateId = authResponse.state;
|
26
|
-
return _this;
|
9
|
+
constructor() {
|
10
|
+
let authResponse = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
11
|
+
super(authResponse.errorDescription);
|
12
|
+
this.code = authResponse.error;
|
13
|
+
this.uri = authResponse.errorUri;
|
14
|
+
this.stateId = authResponse.state;
|
27
15
|
}
|
28
|
-
|
29
|
-
return _createClass(AuthError);
|
30
|
-
}(ExtendableError);
|
16
|
+
}
|
31
17
|
/**
|
32
18
|
* @typedef {Object} AuthResponse
|
33
19
|
* @property {?string} accessToken
|
@@ -37,100 +23,84 @@ var AuthError = /*#__PURE__*/function (_ExtendableError) {
|
|
37
23
|
* @property {?string} scope
|
38
24
|
* @property {?string} error
|
39
25
|
*/
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
_defineProperty(this, "_authResponse", void 0);
|
26
|
+
class AuthResponseParser {
|
27
|
+
_authResponse;
|
28
|
+
constructor() {
|
44
29
|
this._authResponse = this.readAuthResponseFromURL();
|
45
30
|
}
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
throw new AuthResponseParser.AuthError(authResponse);
|
76
|
-
}
|
77
|
-
// If there is no token in the hash
|
78
|
-
if (!authResponse.accessToken) {
|
79
|
-
return null;
|
80
|
-
}
|
81
|
-
return _objectSpread2(_objectSpread2({}, authResponse), {}, {
|
82
|
-
accessToken: authResponse.accessToken
|
83
|
-
});
|
84
|
-
}
|
85
|
-
/**
|
86
|
-
* Reads the current accessToken from the URL.
|
87
|
-
* Doesn't modify URL
|
88
|
-
*
|
89
|
-
* @return {AuthResponse}
|
90
|
-
*/
|
91
|
-
}, {
|
92
|
-
key: "readAuthResponseFromURL",
|
93
|
-
value: function readAuthResponseFromURL() {
|
94
|
-
var authResponse = {};
|
95
|
-
var rawAuthResponse = parseQueryString(this.getHash());
|
96
|
-
Object.keys(rawAuthResponse).forEach(function (key) {
|
97
|
-
if (key.indexOf('_') !== -1) {
|
98
|
-
authResponse[AuthResponseParser.convertKey(key)] = rawAuthResponse[key];
|
99
|
-
return;
|
100
|
-
}
|
101
|
-
authResponse[key] = rawAuthResponse[key];
|
102
|
-
});
|
103
|
-
return authResponse;
|
104
|
-
}
|
105
|
-
/**
|
106
|
-
* @return {string} part of the URL after # sign.
|
107
|
-
* @private
|
108
|
-
*/
|
109
|
-
}, {
|
110
|
-
key: "getHash",
|
111
|
-
value: function getHash() {
|
112
|
-
// Because of stupid Firefox bug — https://bugzilla.mozilla.org/show_bug.cgi?id=483304
|
113
|
-
var location = this.getLocation();
|
114
|
-
return location && location.replace(/^[^#]*#?/, '');
|
115
|
-
}
|
116
|
-
/**
|
117
|
-
* Current page location.
|
118
|
-
* @return {string}
|
119
|
-
*/
|
120
|
-
}, {
|
121
|
-
key: "getLocation",
|
122
|
-
value: function getLocation() {
|
123
|
-
return window.location.toString();
|
31
|
+
static AuthError = AuthError;
|
32
|
+
static convertKey(key) {
|
33
|
+
return key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
34
|
+
}
|
35
|
+
/**
|
36
|
+
* Check if the hash contains an access token.
|
37
|
+
* If it does, return auth response. Otherwise return undefined.
|
38
|
+
* Always clears the hash part of the URL.
|
39
|
+
*
|
40
|
+
* @throws {Error} if the auth server returned an error
|
41
|
+
* @return {?AuthResponse}
|
42
|
+
*/
|
43
|
+
getAuthResponseFromURL() {
|
44
|
+
return this.validateAuthResponse(this._authResponse);
|
45
|
+
}
|
46
|
+
/**
|
47
|
+
* Validates given authResponse.
|
48
|
+
* If it contains a token - returns the token, if an error is found - throws the error,
|
49
|
+
* otherwise - null
|
50
|
+
* Always clears the hash part of the URL.
|
51
|
+
*
|
52
|
+
* @param authResponse {AuthResponse} parsed authResponse
|
53
|
+
* @throws {Error} if the auth server returned an error
|
54
|
+
* @return {?AuthResponse}
|
55
|
+
*/
|
56
|
+
validateAuthResponse(authResponse) {
|
57
|
+
// Check for errors
|
58
|
+
if (authResponse.error) {
|
59
|
+
throw new AuthResponseParser.AuthError(authResponse);
|
124
60
|
}
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
return key.replace(/_([a-z])/g, function (_, letter) {
|
129
|
-
return letter.toUpperCase();
|
130
|
-
});
|
61
|
+
// If there is no token in the hash
|
62
|
+
if (!authResponse.accessToken) {
|
63
|
+
return null;
|
131
64
|
}
|
132
|
-
|
133
|
-
|
134
|
-
|
65
|
+
return {
|
66
|
+
...authResponse,
|
67
|
+
accessToken: authResponse.accessToken
|
68
|
+
};
|
69
|
+
}
|
70
|
+
/**
|
71
|
+
* Reads the current accessToken from the URL.
|
72
|
+
* Doesn't modify URL
|
73
|
+
*
|
74
|
+
* @return {AuthResponse}
|
75
|
+
*/
|
76
|
+
readAuthResponseFromURL() {
|
77
|
+
const authResponse = {};
|
78
|
+
const rawAuthResponse = parseQueryString(this.getHash());
|
79
|
+
Object.keys(rawAuthResponse).forEach(key => {
|
80
|
+
if (key.indexOf('_') !== -1) {
|
81
|
+
authResponse[AuthResponseParser.convertKey(key)] = rawAuthResponse[key];
|
82
|
+
return;
|
83
|
+
}
|
84
|
+
authResponse[key] = rawAuthResponse[key];
|
85
|
+
});
|
86
|
+
return authResponse;
|
87
|
+
}
|
88
|
+
/**
|
89
|
+
* @return {string} part of the URL after # sign.
|
90
|
+
* @private
|
91
|
+
*/
|
92
|
+
getHash() {
|
93
|
+
// Because of stupid Firefox bug — https://bugzilla.mozilla.org/show_bug.cgi?id=483304
|
94
|
+
const location = this.getLocation();
|
95
|
+
return location && location.replace(/^[^#]*#?/, '');
|
96
|
+
}
|
97
|
+
/**
|
98
|
+
* Current page location.
|
99
|
+
* @return {string}
|
100
|
+
*/
|
101
|
+
getLocation() {
|
102
|
+
return window.location.toString();
|
103
|
+
}
|
104
|
+
}
|
135
105
|
|
136
106
|
export { AuthError, AuthResponseParser as default };
|