1 | ;
|
2 |
|
3 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
4 |
|
5 | var _Requestable2 = require('./Requestable');
|
6 |
|
7 | var _Requestable3 = _interopRequireDefault(_Requestable2);
|
8 |
|
9 | var _debug = require('debug');
|
10 |
|
11 | var _debug2 = _interopRequireDefault(_debug);
|
12 |
|
13 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
14 |
|
15 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
16 |
|
17 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
18 |
|
19 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /**
|
20 | * @file
|
21 | * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.
|
22 | * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.
|
23 | * Github.js is freely distributable.
|
24 | */
|
25 |
|
26 | var log = (0, _debug2.default)('github:user');
|
27 |
|
28 | /**
|
29 | * A User allows scoping of API requests to a particular Github user.
|
30 | */
|
31 |
|
32 | var User = function (_Requestable) {
|
33 | _inherits(User, _Requestable);
|
34 |
|
35 | /**
|
36 | * Create a User.
|
37 | * @param {string} [username] - the user to use for user-scoped queries
|
38 | * @param {Requestable.auth} [auth] - information required to authenticate to Github
|
39 | * @param {string} [apiBase=https://api.github.com] - the base Github API URL
|
40 | */
|
41 | function User(username, auth, apiBase) {
|
42 | _classCallCheck(this, User);
|
43 |
|
44 | var _this = _possibleConstructorReturn(this, (User.__proto__ || Object.getPrototypeOf(User)).call(this, auth, apiBase));
|
45 |
|
46 | _this.__user = username;
|
47 | return _this;
|
48 | }
|
49 |
|
50 | /**
|
51 | * Get the url for the request. (dependent on if we're requesting for the authenticated user or not)
|
52 | * @private
|
53 | * @param {string} endpoint - the endpoint being requested
|
54 | * @return {string} - the resolved endpoint
|
55 | */
|
56 |
|
57 |
|
58 | _createClass(User, [{
|
59 | key: '__getScopedUrl',
|
60 | value: function __getScopedUrl(endpoint) {
|
61 | if (this.__user) {
|
62 | return endpoint ? '/users/' + this.__user + '/' + endpoint : '/users/' + this.__user;
|
63 | } else {
|
64 | // eslint-disable-line
|
65 | switch (endpoint) {
|
66 | case '':
|
67 | return '/user';
|
68 |
|
69 | case 'notifications':
|
70 | case 'gists':
|
71 | return '/' + endpoint;
|
72 |
|
73 | default:
|
74 | return '/user/' + endpoint;
|
75 | }
|
76 | }
|
77 | }
|
78 |
|
79 | /**
|
80 | * List the user's repositories
|
81 | * @see https://developer.github.com/v3/repos/#list-user-repositories
|
82 | * @param {Object} [options={}] - any options to refine the search
|
83 | * @param {Requestable.callback} [cb] - will receive the list of repositories
|
84 | * @return {Promise} - the promise for the http request
|
85 | */
|
86 |
|
87 | }, {
|
88 | key: 'listRepos',
|
89 | value: function listRepos(options, cb) {
|
90 | if (typeof options === 'function') {
|
91 | cb = options;
|
92 | options = {};
|
93 | }
|
94 |
|
95 | options = this._getOptionsWithDefaults(options);
|
96 |
|
97 | log('Fetching repositories with options: ' + JSON.stringify(options));
|
98 | return this._requestAllPages(this.__getScopedUrl('repos'), options, cb);
|
99 | }
|
100 |
|
101 | /**
|
102 | * List the orgs that the user belongs to
|
103 | * @see https://developer.github.com/v3/orgs/#list-user-organizations
|
104 | * @param {Requestable.callback} [cb] - will receive the list of organizations
|
105 | * @return {Promise} - the promise for the http request
|
106 | */
|
107 |
|
108 | }, {
|
109 | key: 'listOrgs',
|
110 | value: function listOrgs(cb) {
|
111 | return this._request('GET', this.__getScopedUrl('orgs'), null, cb);
|
112 | }
|
113 |
|
114 | /**
|
115 | * List followers of a user
|
116 | * @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user
|
117 | * @param {Requestable.callback} [cb] - will receive the list of followers
|
118 | * @return {Promise} - the promise for the http request
|
119 | */
|
120 |
|
121 | }, {
|
122 | key: 'listFollowers',
|
123 | value: function listFollowers(cb) {
|
124 | return this._request('GET', this.__getScopedUrl('followers'), null, cb);
|
125 | }
|
126 |
|
127 | /**
|
128 | * List users followed by another user
|
129 | * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user
|
130 | * @param {Requestable.callback} [cb] - will receive the list of who a user is following
|
131 | * @return {Promise} - the promise for the http request
|
132 | */
|
133 |
|
134 | }, {
|
135 | key: 'listFollowing',
|
136 | value: function listFollowing(cb) {
|
137 | return this._request('GET', this.__getScopedUrl('following'), null, cb);
|
138 | }
|
139 |
|
140 | /**
|
141 | * List the user's gists
|
142 | * @see https://developer.github.com/v3/gists/#list-a-users-gists
|
143 | * @param {Requestable.callback} [cb] - will receive the list of gists
|
144 | * @return {Promise} - the promise for the http request
|
145 | */
|
146 |
|
147 | }, {
|
148 | key: 'listGists',
|
149 | value: function listGists(cb) {
|
150 | return this._request('GET', this.__getScopedUrl('gists'), null, cb);
|
151 | }
|
152 |
|
153 | /**
|
154 | * List the user's notifications
|
155 | * @see https://developer.github.com/v3/activity/notifications/#list-your-notifications
|
156 | * @param {Object} [options={}] - any options to refine the search
|
157 | * @param {Requestable.callback} [cb] - will receive the list of repositories
|
158 | * @return {Promise} - the promise for the http request
|
159 | */
|
160 |
|
161 | }, {
|
162 | key: 'listNotifications',
|
163 | value: function listNotifications(options, cb) {
|
164 | options = options || {};
|
165 | if (typeof options === 'function') {
|
166 | cb = options;
|
167 | options = {};
|
168 | }
|
169 |
|
170 | options.since = this._dateToISO(options.since);
|
171 | options.before = this._dateToISO(options.before);
|
172 |
|
173 | return this._request('GET', this.__getScopedUrl('notifications'), options, cb);
|
174 | }
|
175 |
|
176 | /**
|
177 | * Show the user's profile
|
178 | * @see https://developer.github.com/v3/users/#get-a-single-user
|
179 | * @param {Requestable.callback} [cb] - will receive the user's information
|
180 | * @return {Promise} - the promise for the http request
|
181 | */
|
182 |
|
183 | }, {
|
184 | key: 'getProfile',
|
185 | value: function getProfile(cb) {
|
186 | return this._request('GET', this.__getScopedUrl(''), null, cb);
|
187 | }
|
188 |
|
189 | /**
|
190 | * Gets the list of starred repositories for the user
|
191 | * @see https://developer.github.com/v3/activity/starring/#list-repositories-being-starred
|
192 | * @param {Requestable.callback} [cb] - will receive the list of starred repositories
|
193 | * @return {Promise} - the promise for the http request
|
194 | */
|
195 |
|
196 | }, {
|
197 | key: 'listStarredRepos',
|
198 | value: function listStarredRepos(cb) {
|
199 | var requestOptions = this._getOptionsWithDefaults();
|
200 | return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb);
|
201 | }
|
202 |
|
203 | /**
|
204 | * Gets the list of starred gists for the user
|
205 | * @see https://developer.github.com/v3/gists/#list-starred-gists
|
206 | * @param {Object} [options={}] - any options to refine the search
|
207 | * @param {Requestable.callback} [cb] - will receive the list of gists
|
208 | * @return {Promise} - the promise for the http request
|
209 | */
|
210 |
|
211 | }, {
|
212 | key: 'listStarredGists',
|
213 | value: function listStarredGists(options, cb) {
|
214 | options = options || {};
|
215 | if (typeof options === 'function') {
|
216 | cb = options;
|
217 | options = {};
|
218 | }
|
219 | options.since = this._dateToISO(options.since);
|
220 | return this._request('GET', '/gists/starred', options, cb);
|
221 | }
|
222 |
|
223 | /**
|
224 | * List email addresses for a user
|
225 | * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user
|
226 | * @param {Requestable.callback} [cb] - will receive the list of emails
|
227 | * @return {Promise} - the promise for the http request
|
228 | */
|
229 |
|
230 | }, {
|
231 | key: 'getEmails',
|
232 | value: function getEmails(cb) {
|
233 | return this._request('GET', '/user/emails', null, cb);
|
234 | }
|
235 |
|
236 | /**
|
237 | * Have the authenticated user follow this user
|
238 | * @see https://developer.github.com/v3/users/followers/#follow-a-user
|
239 | * @param {string} username - the user to follow
|
240 | * @param {Requestable.callback} [cb] - will receive true if the request succeeds
|
241 | * @return {Promise} - the promise for the http request
|
242 | */
|
243 |
|
244 | }, {
|
245 | key: 'follow',
|
246 | value: function follow(username, cb) {
|
247 | return this._request('PUT', '/user/following/' + username, null, cb);
|
248 | }
|
249 |
|
250 | /**
|
251 | * Have the currently authenticated user unfollow this user
|
252 | * @see https://developer.github.com/v3/users/followers/#follow-a-user
|
253 | * @param {string} username - the user to unfollow
|
254 | * @param {Requestable.callback} [cb] - receives true if the request succeeds
|
255 | * @return {Promise} - the promise for the http request
|
256 | */
|
257 |
|
258 | }, {
|
259 | key: 'unfollow',
|
260 | value: function unfollow(username, cb) {
|
261 | return this._request('DELETE', '/user/following/' + username, null, cb);
|
262 | }
|
263 |
|
264 | /**
|
265 | * Create a new repository for the currently authenticated user
|
266 | * @see https://developer.github.com/v3/repos/#create
|
267 | * @param {object} options - the repository definition
|
268 | * @param {Requestable.callback} [cb] - will receive the API response
|
269 | * @return {Promise} - the promise for the http request
|
270 | */
|
271 |
|
272 | }, {
|
273 | key: 'createRepo',
|
274 | value: function createRepo(options, cb) {
|
275 | return this._request('POST', '/user/repos', options, cb);
|
276 | }
|
277 | }]);
|
278 |
|
279 | return User;
|
280 | }(_Requestable3.default);
|
281 |
|
282 | module.exports = User;
|
283 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVzZXIuanMiXSwibmFtZXMiOlsibG9nIiwiVXNlciIsInVzZXJuYW1lIiwiYXV0aCIsImFwaUJhc2UiLCJfX3VzZXIiLCJlbmRwb2ludCIsIm9wdGlvbnMiLCJjYiIsIl9nZXRPcHRpb25zV2l0aERlZmF1bHRzIiwiSlNPTiIsInN0cmluZ2lmeSIsIl9yZXF1ZXN0QWxsUGFnZXMiLCJfX2dldFNjb3BlZFVybCIsIl9yZXF1ZXN0Iiwic2luY2UiLCJfZGF0ZVRvSVNPIiwiYmVmb3JlIiwicmVxdWVzdE9wdGlvbnMiLCJSZXF1ZXN0YWJsZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7Ozs7QUFPQTs7OztBQUNBOzs7Ozs7Ozs7OytlQVJBOzs7Ozs7O0FBU0EsSUFBTUEsTUFBTSxxQkFBTSxhQUFOLENBQVo7O0FBRUE7Ozs7SUFHTUMsSTs7O0FBQ0g7Ozs7OztBQU1BLGlCQUFZQyxRQUFaLEVBQXNCQyxJQUF0QixFQUE0QkMsT0FBNUIsRUFBcUM7QUFBQTs7QUFBQSw4R0FDNUJELElBRDRCLEVBQ3RCQyxPQURzQjs7QUFFbEMsWUFBS0MsTUFBTCxHQUFjSCxRQUFkO0FBRmtDO0FBR3BDOztBQUVEOzs7Ozs7Ozs7O3FDQU1lSSxRLEVBQVU7QUFDdEIsYUFBSSxLQUFLRCxNQUFULEVBQWlCO0FBQ2QsbUJBQU9DLHVCQUNNLEtBQUtELE1BRFgsU0FDcUJDLFFBRHJCLGVBRU0sS0FBS0QsTUFGbEI7QUFLRixVQU5ELE1BTU87QUFBRTtBQUNOLG9CQUFRQyxRQUFSO0FBQ0csb0JBQUssRUFBTDtBQUNHLHlCQUFPLE9BQVA7O0FBRUgsb0JBQUssZUFBTDtBQUNBLG9CQUFLLE9BQUw7QUFDRywrQkFBV0EsUUFBWDs7QUFFSDtBQUNHLG9DQUFnQkEsUUFBaEI7QUFUTjtBQVdGO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7Z0NBT1VDLE8sRUFBU0MsRSxFQUFJO0FBQ3BCLGFBQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNoQ0MsaUJBQUtELE9B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QVVNLEUsRUFBSTtBQUNsQixnQkFBTyxLQUFLTSxRQUFMLENBQWMsS0FBZCx1QkFBd0NaLFFBQXhDLEVBQW9ELElBQXBELEVBQTBETSxFQUExRCxDQUFQO0FBQ0Y7O0FBRUQ7Ozs7Ozs7Ozs7K0JBT1NOLFEsRUFBVU0sRSxFQUFJO0FBQ3BCLGdCQUFPLEtBQUtNLFFBQUwsQ0FBYyxRQUFkLHVCQUEyQ1osUUFBM0MsRUFBdUQsSUFBdkQsRUFBNkRNLEVBQTdELENBQVA7QUFDRjs7QUFFRDs7Ozs7Ozs7OztpQ0FPV0QsTyxFQUFTQyxFLEVBQUk7QUFDckIsZ0JBQU8sS0FBS00sUUFBTCxDQUFjLE1BQWQsRUFBc0IsYUFBdEIsRUFBcUNQLE9BQXJDLEVBQThDQyxFQUE5QyxDQUFQO0FBQ0Y7Ozs7RUF0TWVXLHFCOztBQXlNbkJDLE9BQU9DLE9BQVAsR0FBaUJwQixJQUFqQiIsImZpbGUiOiJVc2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICogQGNvcHlyaWdodCAgMjAxMyBNaWNoYWVsIEF1ZnJlaXRlciAoRGV2ZWxvcG1lbnQgU2VlZCkgYW5kIDIwMTYgWWFob28gSW5jLlxuICogQGxpY2Vuc2UgICAgTGljZW5zZWQgdW5kZXIge0BsaW5rIGh0dHBzOi8vc3BkeC5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlLUNsZWFyLmh0bWwgQlNELTMtQ2xhdXNlLUNsZWFyfS5cbiAqICAgICAgICAgICAgIEdpdGh1Yi5qcyBpcyBmcmVlbHkgZGlzdHJpYnV0YWJsZS5cbiAqL1xuXG5pbXBvcnQgUmVxdWVzdGFibGUgZnJvbSAnLi9SZXF1ZXN0YWJsZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuY29uc3QgbG9nID0gZGVidWcoJ2dpdGh1Yjp1c2VyJyk7XG5cbi8qKlxuICogQSBVc2VyIGFsbG93cyBzY29waW5nIG9mIEFQSSByZXF1ZXN0cyB0byBhIHBhcnRpY3VsYXIgR2l0aHViIHVzZXIuXG4gKi9cbmNsYXNzIFVzZXIgZXh0ZW5kcyBSZXF1ZXN0YWJsZSB7XG4gICAvKipcbiAgICAqIENyZWF0ZSBhIFVzZXIuXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gW3VzZXJuYW1lXSAtIHRoZSB1c2VyIHRvIHVzZSBmb3IgdXNlci1zY29wZWQgcXVlcmllc1xuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5hdXRofSBbYXV0aF0gLSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBhdXRoZW50aWNhdGUgdG8gR2l0aHViXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gW2FwaUJhc2U9aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbV0gLSB0aGUgYmFzZSBHaXRodWIgQVBJIFVSTFxuICAgICovXG4gICBjb25zdHJ1Y3Rvcih1c2VybmFtZSwgYXV0aCwgYXBpQmFzZSkge1xuICAgICAgc3VwZXIoYXV0aCwgYXBpQmFzZSk7XG4gICAgICB0aGlzLl9fdXNlciA9IHVzZXJuYW1lO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEdldCB0aGUgdXJsIGZvciB0aGUgcmVxdWVzdC4gKGRlcGVuZGVudCBvbiBpZiB3ZSdyZSByZXF1ZXN0aW5nIGZvciB0aGUgYXV0aGVudGljYXRlZCB1c2VyIG9yIG5vdClcbiAgICAqIEBwcml2YXRlXG4gICAgKiBAcGFyYW0ge3N0cmluZ30gZW5kcG9pbnQgLSB0aGUgZW5kcG9pbnQgYmVpbmcgcmVxdWVzdGVkXG4gICAgKiBAcmV0dXJuIHtzdHJpbmd9IC0gdGhlIHJlc29sdmVkIGVuZHBvaW50XG4gICAgKi9cbiAgIF9fZ2V0U2NvcGVkVXJsKGVuZHBvaW50KSB7XG4gICAgICBpZiAodGhpcy5fX3VzZXIpIHtcbiAgICAgICAgIHJldHVybiBlbmRwb2ludCA/XG4gICAgICAgICAgICBgL3VzZXJzLyR7dGhpcy5fX3VzZXJ9LyR7ZW5kcG9pbnR9YCA6XG4gICAgICAgICAgICBgL3VzZXJzLyR7dGhpcy5fX3VzZXJ9YFxuICAgICAgICAgICAgO1xuXG4gICAgICB9IGVsc2UgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgICAgICBzd2l0Y2ggKGVuZHBvaW50KSB7XG4gICAgICAgICAgICBjYXNlICcnOlxuICAgICAgICAgICAgICAgcmV0dXJuICcvdXNlcic7XG5cbiAgICAgICAgICAgIGNhc2UgJ25vdGlmaWNhdGlvbnMnOlxuICAgICAgICAgICAgY2FzZSAnZ2lzdHMnOlxuICAgICAgICAgICAgICAgcmV0dXJuIGAvJHtlbmRwb2ludH1gO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgcmV0dXJuIGAvdXNlci8ke2VuZHBvaW50fWA7XG4gICAgICAgICB9XG4gICAgICB9XG4gICB9XG5cbiAgIC8qKlxuICAgICogTGlzdCB0aGUgdXNlcidzIHJlcG9zaXRvcmllc1xuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL3JlcG9zLyNsaXN0LXVzZXItcmVwb3NpdG9yaWVzXG4gICAgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnM9e31dIC0gYW55IG9wdGlvbnMgdG8gcmVmaW5lIHRoZSBzZWFyY2hcbiAgICAqIEBwYXJhbSB7UmVxdWVzdGFibGUuY2FsbGJhY2t9IFtjYl0gLSB3aWxsIHJlY2VpdmUgdGhlIGxpc3Qgb2YgcmVwb3NpdG9yaWVzXG4gICAgKiBAcmV0dXJuIHtQcm9taXNlfSAtIHRoZSBwcm9taXNlIGZvciB0aGUgaHR0cCByZXF1ZXN0XG4gICAgKi9cbiAgIGxpc3RSZXBvcyhvcHRpb25zLCBjYikge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICBjYiA9IG9wdGlvbnM7XG4gICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zV2l0aERlZmF1bHRzKG9wdGlvbnMpO1xuXG4gICAgICBsb2coYEZldGNoaW5nIHJlcG9zaXRvcmllcyB3aXRoIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9YCk7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdEFsbFBhZ2VzKHRoaXMuX19nZXRTY29wZWRVcmwoJ3JlcG9zJyksIG9wdGlvbnMsIGNiKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBMaXN0IHRoZSBvcmdzIHRoYXQgdGhlIHVzZXIgYmVsb25ncyB0b1xuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL29yZ3MvI2xpc3QtdXNlci1vcmdhbml6YXRpb25zXG4gICAgKiBAcGFyYW0ge1JlcXVlc3RhYmxlLmNhbGxiYWNrfSBbY2JdIC0gd2lsbCByZWNlaXZlIHRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbnNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgbGlzdE9yZ3MoY2IpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdHRVQnLCB0aGlzLl9fZ2V0U2NvcGVkVXJsKCdvcmdzJyksIG51bGwsIGNiKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBMaXN0IGZvbGxvd2VycyBvZiBhIHVzZXJcbiAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My91c2Vycy9mb2xsb3dlcnMvI2xpc3QtZm9sbG93ZXJzLW9mLWEtdXNlclxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgbGlzdCBvZiBmb2xsb3dlcnNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgbGlzdEZvbGxvd2VycyhjYikge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ0dFVCcsIHRoaXMuX19nZXRTY29wZWRVcmwoJ2ZvbGxvd2VycycpLCBudWxsLCBjYik7XG4gICB9XG5cbiAgIC8qKlxuICAgICogTGlzdCB1c2VycyBmb2xsb3dlZCBieSBhbm90aGVyIHVzZXJcbiAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My91c2Vycy9mb2xsb3dlcnMvI2xpc3QtdXNlcnMtZm9sbG93ZWQtYnktYW5vdGhlci11c2VyXG4gICAgKiBAcGFyYW0ge1JlcXVlc3RhYmxlLmNhbGxiYWNrfSBbY2JdIC0gd2lsbCByZWNlaXZlIHRoZSBsaXN0IG9mIHdobyBhIHVzZXIgaXMgZm9sbG93aW5nXG4gICAgKiBAcmV0dXJuIHtQcm9taXNlfSAtIHRoZSBwcm9taXNlIGZvciB0aGUgaHR0cCByZXF1ZXN0XG4gICAgKi9cbiAgIGxpc3RGb2xsb3dpbmcoY2IpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdHRVQnLCB0aGlzLl9fZ2V0U2NvcGVkVXJsKCdmb2xsb3dpbmcnKSwgbnVsbCwgY2IpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIExpc3QgdGhlIHVzZXIncyBnaXN0c1xuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL2dpc3RzLyNsaXN0LWEtdXNlcnMtZ2lzdHNcbiAgICAqIEBwYXJhbSB7UmVxdWVzdGFibGUuY2FsbGJhY2t9IFtjYl0gLSB3aWxsIHJlY2VpdmUgdGhlIGxpc3Qgb2YgZ2lzdHNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgbGlzdEdpc3RzKGNiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnR0VUJywgdGhpcy5fX2dldFNjb3BlZFVybCgnZ2lzdHMnKSwgbnVsbCwgY2IpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIExpc3QgdGhlIHVzZXIncyBub3RpZmljYXRpb25zXG4gICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvYWN0aXZpdHkvbm90aWZpY2F0aW9ucy8jbGlzdC15b3VyLW5vdGlmaWNhdGlvbnNcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gLSBhbnkgb3B0aW9ucyB0byByZWZpbmUgdGhlIHNlYXJjaFxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgbGlzdCBvZiByZXBvc2l0b3JpZXNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgbGlzdE5vdGlmaWNhdGlvbnMob3B0aW9ucywgY2IpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICBjYiA9IG9wdGlvbnM7XG4gICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG5cbiAgICAgIG9wdGlvbnMuc2luY2UgPSB0aGlzLl9kYXRlVG9JU08ob3B0aW9ucy5zaW5jZSk7XG4gICAgICBvcHRpb25zLmJlZm9yZSA9IHRoaXMuX2RhdGVUb0lTTyhvcHRpb25zLmJlZm9yZSk7XG5cbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdHRVQnLCB0aGlzLl9fZ2V0U2NvcGVkVXJsKCdub3RpZmljYXRpb25zJyksIG9wdGlvbnMsIGNiKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBTaG93IHRoZSB1c2VyJ3MgcHJvZmlsZVxuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL3VzZXJzLyNnZXQtYS1zaW5nbGUtdXNlclxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgdXNlcidzIGluZm9ybWF0aW9uXG4gICAgKiBAcmV0dXJuIHtQcm9taXNlfSAtIHRoZSBwcm9taXNlIGZvciB0aGUgaHR0cCByZXF1ZXN0XG4gICAgKi9cbiAgIGdldFByb2ZpbGUoY2IpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdHRVQnLCB0aGlzLl9fZ2V0U2NvcGVkVXJsKCcnKSwgbnVsbCwgY2IpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEdldHMgdGhlIGxpc3Qgb2Ygc3RhcnJlZCByZXBvc2l0b3JpZXMgZm9yIHRoZSB1c2VyXG4gICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvYWN0aXZpdHkvc3RhcnJpbmcvI2xpc3QtcmVwb3NpdG9yaWVzLWJlaW5nLXN0YXJyZWRcbiAgICAqIEBwYXJhbSB7UmVxdWVzdGFibGUuY2FsbGJhY2t9IFtjYl0gLSB3aWxsIHJlY2VpdmUgdGhlIGxpc3Qgb2Ygc3RhcnJlZCByZXBvc2l0b3JpZXNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgbGlzdFN0YXJyZWRSZXBvcyhjYikge1xuICAgICAgbGV0IHJlcXVlc3RPcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9uc1dpdGhEZWZhdWx0cygpO1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RBbGxQYWdlcyh0aGlzLl9fZ2V0U2NvcGVkVXJsKCdzdGFycmVkJyksIHJlcXVlc3RPcHRpb25zLCBjYik7XG4gICB9XG5cbiAgIC8qKlxuICAgICogR2V0cyB0aGUgbGlzdCBvZiBzdGFycmVkIGdpc3RzIGZvciB0aGUgdXNlclxuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL2dpc3RzLyNsaXN0LXN0YXJyZWQtZ2lzdHNcbiAgICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucz17fV0gLSBhbnkgb3B0aW9ucyB0byByZWZpbmUgdGhlIHNlYXJjaFxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgbGlzdCBvZiBnaXN0c1xuICAgICogQHJldHVybiB7UHJvbWlzZX0gLSB0aGUgcHJvbWlzZSBmb3IgdGhlIGh0dHAgcmVxdWVzdFxuICAgICovXG4gICBsaXN0U3RhcnJlZEdpc3RzKG9wdGlvbnMsIGNiKSB7XG4gICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgY2IgPSBvcHRpb25zO1xuICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgfVxuICAgICAgb3B0aW9ucy5zaW5jZSA9IHRoaXMuX2RhdGVUb0lTTyhvcHRpb25zLnNpbmNlKTtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdHRVQnLCAnL2dpc3RzL3N0YXJyZWQnLCBvcHRpb25zLCBjYik7XG4gICB9XG5cbiAgIC8qKlxuICAgICogTGlzdCBlbWFpbCBhZGRyZXNzZXMgZm9yIGEgdXNlclxuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL3VzZXJzL2VtYWlscy8jbGlzdC1lbWFpbC1hZGRyZXNzZXMtZm9yLWEtdXNlclxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgbGlzdCBvZiBlbWFpbHNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgZ2V0RW1haWxzKGNiKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdCgnR0VUJywgJy91c2VyL2VtYWlscycsIG51bGwsIGNiKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBIYXZlIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIgZm9sbG93IHRoaXMgdXNlclxuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL3VzZXJzL2ZvbGxvd2Vycy8jZm9sbG93LWEtdXNlclxuICAgICogQHBhcmFtIHtzdHJpbmd9IHVzZXJuYW1lIC0gdGhlIHVzZXIgdG8gZm9sbG93XG4gICAgKiBAcGFyYW0ge1JlcXVlc3RhYmxlLmNhbGxiYWNrfSBbY2JdIC0gd2lsbCByZWNlaXZlIHRydWUgaWYgdGhlIHJlcXVlc3Qgc3VjY2VlZHNcbiAgICAqIEByZXR1cm4ge1Byb21pc2V9IC0gdGhlIHByb21pc2UgZm9yIHRoZSBodHRwIHJlcXVlc3RcbiAgICAqL1xuICAgZm9sbG93KHVzZXJuYW1lLCBjYikge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3QoJ1BVVCcsIGAvdXNlci9mb2xsb3dpbmcvJHt1c2VybmFtZX1gLCBudWxsLCBjYik7XG4gICB9XG5cbiAgIC8qKlxuICAgICogSGF2ZSB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlciB1bmZvbGxvdyB0aGlzIHVzZXJcbiAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My91c2Vycy9mb2xsb3dlcnMvI2ZvbGxvdy1hLXVzZXJcbiAgICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VybmFtZSAtIHRoZSB1c2VyIHRvIHVuZm9sbG93XG4gICAgKiBAcGFyYW0ge1JlcXVlc3RhYmxlLmNhbGxiYWNrfSBbY2JdIC0gcmVjZWl2ZXMgdHJ1ZSBpZiB0aGUgcmVxdWVzdCBzdWNjZWVkc1xuICAgICogQHJldHVybiB7UHJvbWlzZX0gLSB0aGUgcHJvbWlzZSBmb3IgdGhlIGh0dHAgcmVxdWVzdFxuICAgICovXG4gICB1bmZvbGxvdyh1c2VybmFtZSwgY2IpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdERUxFVEUnLCBgL3VzZXIvZm9sbG93aW5nLyR7dXNlcm5hbWV9YCwgbnVsbCwgY2IpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIENyZWF0ZSBhIG5ldyByZXBvc2l0b3J5IGZvciB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlclxuICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5naXRodWIuY29tL3YzL3JlcG9zLyNjcmVhdGVcbiAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gdGhlIHJlcG9zaXRvcnkgZGVmaW5pdGlvblxuICAgICogQHBhcmFtIHtSZXF1ZXN0YWJsZS5jYWxsYmFja30gW2NiXSAtIHdpbGwgcmVjZWl2ZSB0aGUgQVBJIHJlc3BvbnNlXG4gICAgKiBAcmV0dXJuIHtQcm9taXNlfSAtIHRoZSBwcm9taXNlIGZvciB0aGUgaHR0cCByZXF1ZXN0XG4gICAgKi9cbiAgIGNyZWF0ZVJlcG8ob3B0aW9ucywgY2IpIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0KCdQT1NUJywgJy91c2VyL3JlcG9zJywgb3B0aW9ucywgY2IpO1xuICAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFVzZXI7XG4iXX0=
|
284 | //# sourceMappingURL=User.js.map
|