Socket
Socket
Sign inDemoInstall

@vssue/api-bitbucket-v2

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vssue/api-bitbucket-v2 - npm Package Compare versions

Comparing version 0.1.9 to 0.2.0

188

lib/index.js

@@ -10,7 +10,6 @@ import * as tslib_1 from "tslib";

* @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/issues/%7Bissue_id%7D/comments
* @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/issues/%7Bissue_id%7D/comments
*/
var BitbucketV2 = /** @class */ (function () {
function BitbucketV2(_a) {
var _b = _a.baseURL, baseURL = _b === void 0 ? 'https://api.bitbucket.org/2.0/' : _b, owner = _a.owner, repo = _a.repo, clientId = _a.clientId, clientSecret = _a.clientSecret, state = _a.state;
var _b = _a.baseURL, baseURL = _b === void 0 ? 'https://api.bitbucket.org' : _b, owner = _a.owner, repo = _a.repo, clientId = _a.clientId, clientSecret = _a.clientSecret, state = _a.state;
this.baseURL = baseURL;

@@ -30,2 +29,5 @@ this.owner = owner;

Object.defineProperty(BitbucketV2.prototype, "platform", {
/**
* The platform api info
*/
get: function () {

@@ -36,2 +38,6 @@ return {

version: 'v2',
meta: {
reactable: false,
sortable: true,
},
};

@@ -42,3 +48,6 @@ },

});
BitbucketV2.prototype.redirectAuthorize = function () {
/**
* Redirect to the authorization page of platform.
*/
BitbucketV2.prototype.redirectAuth = function () {
window.location.href = buildURL('https://bitbucket.org/site/oauth2/authorize', {

@@ -50,3 +59,11 @@ client_id: this.clientId,

};
BitbucketV2.prototype.handleAuthorize = function () {
/**
* Handle authorization.
*
* @remarks
* If the `code` exists in the query, remove them from query, and try to get the access token.
*
* @return A string for access token, `null` for no authorization code
*/
BitbucketV2.prototype.handleAuth = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {

@@ -72,6 +89,13 @@ var query, code, replaceURL, accessToken;

};
/**
* Get user access token via `code`
*
* @param options.code - The code from the query
*
* @return User access token
*/
BitbucketV2.prototype.getAccessToken = function (_a) {
var code = _a.code;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var response, accessToken;
var data;
return tslib_1.__generator(this, function (_b) {

@@ -93,5 +117,4 @@ switch (_b.label) {

case 1:
response = _b.sent();
accessToken = response.data.access_token;
return [2 /*return*/, accessToken];
data = (_b.sent()).data;
return [2 /*return*/, data.access_token];
}

@@ -101,15 +124,21 @@ });

};
/**
* Get the logined user with access token.
*
* @param options.accessToken - User access token
*
* @return The user
*/
BitbucketV2.prototype.getUser = function (_a) {
var accessToken = _a.accessToken;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var response, user;
var data;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, this.$http.get('/user', {
case 0: return [4 /*yield*/, this.$http.get('2.0/user', {
headers: { 'Authorization': "Bearer " + accessToken },
})];
case 1:
response = _b.sent();
user = response.data;
return [2 /*return*/, normalizeUser(user)];
data = (_b.sent()).data;
return [2 /*return*/, normalizeUser(data)];
}

@@ -119,15 +148,19 @@ });

};
BitbucketV2.prototype.getIssues = function (_a) {
var accessToken = _a.accessToken;
/**
* Get issue of this page according to the issue id or the issue title
*
* @param options.accessToken - User access token
* @param options.issueId - The id of issue
* @param options.issueTitle - The title of issue
*
* @return The raw response of issue
*/
BitbucketV2.prototype.getIssue = function (_a) {
var accessToken = _a.accessToken, issueId = _a.issueId, issueTitle = _a.issueTitle;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var options, response, issues;
var options, data, e_1, data;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
options = {
params: {
// to avoid caching
timestamp: Date.now(),
},
};
options = {};
if (accessToken) {

@@ -138,7 +171,30 @@ options.headers = {

}
return [4 /*yield*/, this.$http.get("repositories/" + this.owner + "/" + this.repo + "/issues", options)];
if (!issueId) return [3 /*break*/, 5];
_b.label = 1;
case 1:
response = _b.sent();
issues = response.data.values;
return [2 /*return*/, issues.map(normalizeIssue)];
_b.trys.push([1, 3, , 4]);
return [4 /*yield*/, this.$http.get("2.0/repositories/" + this.owner + "/" + this.repo + "/issues/" + issueId, options)];
case 2:
data = (_b.sent()).data;
return [2 /*return*/, normalizeIssue(data)];
case 3:
e_1 = _b.sent();
if (e_1.response && e_1.response.status === 404) {
return [2 /*return*/, null];
}
else {
throw e_1;
}
return [3 /*break*/, 4];
case 4: return [3 /*break*/, 7];
case 5:
options.params = {
sort: 'created_on',
q: "title=\"" + issueTitle + "\"",
};
return [4 /*yield*/, this.$http.get("2.0/repositories/" + this.owner + "/" + this.repo + "/issues", options)];
case 6:
data = (_b.sent()).data;
return [2 /*return*/, data.size > 0 ? normalizeIssue(data.values[0]) : null];
case 7: return [2 /*return*/];
}

@@ -148,13 +204,24 @@ });

};
/**
* Get comments of this page according to the issue id or the issue title
*
* @param options.accessToken - User access token
* @param options.issueId - The id of issue
* @param options.query - The query parameters
*
* @return The comments
*/
BitbucketV2.prototype.getComments = function (_a) {
var issueId = _a.issueId, accessToken = _a.accessToken;
var accessToken = _a.accessToken, issueId = _a.issueId, _b = _a.query, _c = _b === void 0 ? {} : _b, _d = _c.page, page = _d === void 0 ? 1 : _d, _e = _c.perPage, perPage = _e === void 0 ? 10 : _e, _f = _c.sort, sort = _f === void 0 ? 'desc' : _f;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var options, response, comments;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
var options, data;
return tslib_1.__generator(this, function (_g) {
switch (_g.label) {
case 0:
options = {
params: {
// to avoid caching
timestamp: Date.now(),
// pagination
'page': page,
'pagelen': perPage,
'sort': sort === 'desc' ? '-created_on' : 'created_on',
},

@@ -167,7 +234,11 @@ };

}
return [4 /*yield*/, this.$http.get("repositories/" + this.owner + "/" + this.repo + "/issues/" + issueId + "/comments", options)];
return [4 /*yield*/, this.$http.get("2.0/repositories/" + this.owner + "/" + this.repo + "/issues/" + issueId + "/comments", options)];
case 1:
response = _b.sent();
comments = response.data.values;
return [2 /*return*/, comments.map(normalizeComment)];
data = (_g.sent()).data;
return [2 /*return*/, {
count: data.size,
page: data.page,
perPage: data.pagelen,
data: data.values.map(normalizeComment),
}];
}

@@ -177,9 +248,18 @@ });

};
/**
* Create a new issue
*
* @param options.accessToken - User access token
* @param options.title - The title of issue
* @param options.content - The content of issue
*
* @return The created issue
*/
BitbucketV2.prototype.createIssue = function (_a) {
var title = _a.title, content = _a.content, accessToken = _a.accessToken;
var accessToken = _a.accessToken, title = _a.title, content = _a.content;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var response, issue;
var data;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, this.$http.post("repositories/" + this.owner + "/" + this.repo + "/issues", {
case 0: return [4 /*yield*/, this.$http.post("2.0/repositories/" + this.owner + "/" + this.repo + "/issues", {
title: title,

@@ -195,5 +275,4 @@ content: {

case 1:
response = _b.sent();
issue = response.data;
return [2 /*return*/, normalizeIssue(issue)];
data = (_b.sent()).data;
return [2 /*return*/, normalizeIssue(data)];
}

@@ -203,9 +282,9 @@ });

};
BitbucketV2.prototype.createIssueComment = function (_a) {
var issueId = _a.issueId, content = _a.content, accessToken = _a.accessToken;
BitbucketV2.prototype.createComment = function (_a) {
var accessToken = _a.accessToken, issueId = _a.issueId, content = _a.content;
return tslib_1.__awaiter(this, void 0, void 0, function () {
var response, comment;
var data;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, this.$http.post("repositories/" + this.owner + "/" + this.repo + "/issues/" + issueId + "/comments", {
case 0: return [4 /*yield*/, this.$http.post("2.0/repositories/" + this.owner + "/" + this.repo + "/issues/" + issueId + "/comments", {
content: {

@@ -218,5 +297,4 @@ raw: content,

case 1:
response = _b.sent();
comment = response.data;
return [2 /*return*/, normalizeComment(comment)];
data = (_b.sent()).data;
return [2 /*return*/, normalizeComment(data)];
}

@@ -226,13 +304,19 @@ });

};
/**
* Bitbucket does not support reactions now
*/
BitbucketV2.prototype.createIssueReaction = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/];
throw new Error('Reactions Not Implemented');
});
});
};
/**
* Bitbucket does not support reactions now
*/
BitbucketV2.prototype.createCommentReaction = function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
return tslib_1.__generator(this, function (_a) {
return [2 /*return*/];
throw new Error('Reactions Not Implemented');
});

@@ -244,2 +328,2 @@ });

export default BitbucketV2;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sS0FHTixNQUFNLE9BQU8sQ0FBQTtBQUVkLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEdBQ1gsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNMLGFBQWEsRUFDYixjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sU0FBUyxDQUFBO0FBRWhCOzs7Ozs7R0FNRztBQUNIO0lBaUJFLHFCQUFhLEVBT0s7WUFOaEIsZUFBMEMsRUFBMUMsK0RBQTBDLEVBQzFDLGdCQUFLLEVBQ0wsY0FBSSxFQUNKLHNCQUFRLEVBQ1IsOEJBQVksRUFDWixnQkFBSztRQUVMLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBRWhCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBRWxCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN4QixPQUFPLFNBQUE7WUFDUCxPQUFPLEVBQUU7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjthQUM3QjtTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUE5QkQsc0JBQUksaUNBQVE7YUFBWjtZQUNFLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQTtRQUNILENBQUM7OztPQUFBO0lBMEJELHVDQUFpQixHQUFqQjtRQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMs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O3dCQVRJLFFBQVEsR0FBRyxTQVNmO3dCQUNJLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFBO3dCQUMzQixzQkFBTyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUE7Ozs7S0FDN0I7SUFFSyx3Q0FBa0IsR0FBeEIsVUFBMEIsRUFJekI7WUFIQyxvQkFBTyxFQUNQLG9CQUFPLEVBQ1AsNEJBQVc7Ozs7OzRCQUVNLHFCQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFnQixJQUFJLENBQUMsS0FBSyxTQUFJLElBQUksQ0FBQyxJQUFJLGdCQUFXLE9BQU8sY0FBVyxFQUFFOzRCQUMzRyxPQUFPLEVBQUU7Z0NBQ1AsR0FBRyxFQUFFLE9BQU87NkJBQ2I7eUJBQ0YsRUFBRTs0QkFDRCxPQUFPLEVBQUUsRUFBRSxlQUFlLEVBQUUsWUFBVSxXQUFhLEVBQUU7eUJBQ3RELENBQUMsRUFBQTs7d0JBTkksUUFBUSxHQUFHLFNBTWY7d0JBQ0ksT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7d0JBQzdCLHNCQUFPLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFBOzs7O0tBQ2pDO0lBRUsseUNBQW1CLEdBQXpCOzs7Ozs7S0FFQztJQUVLLDJDQUFxQixHQUEzQjs7Ozs7O0tBRUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUF2S0QsSUF1S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBWc3N1ZUFQSSxcbiAgVnNzdWVBUElPcHRpb25zLFxufSBmcm9tICd2c3N1ZSdcblxuaW1wb3J0IGF4aW9zLCB7XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEF4aW9zUmVxdWVzdENvbmZpZyxcbn0gZnJvbSAnYXhpb3MnXG5cbmltcG9ydCB7XG4gIGJ1aWxkUXVlcnksXG4gIGJ1aWxkVVJMLFxuICBnZXRDbGVhblVSTCxcbiAgcGFyc2VRdWVyeSxcbn0gZnJvbSAnQHZzc3VlL3V0aWxzJ1xuXG5pbXBvcnQge1xuICBub3JtYWxpemVVc2VyLFxuICBub3JtYWxpemVJc3N1ZSxcbiAgbm9ybWFsaXplQ29tbWVudCxcbn0gZnJvbSAnLi91dGlscydcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vY29uZmx1ZW5jZS5hdGxhc3NpYW4uY29tL2JpdGJ1Y2tldC9vYXV0aC1vbi1iaXRidWNrZXQtY2xvdWQtMjM4MDI3NDMxLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS9iaXRidWNrZXQvYXBpLzIvcmVmZXJlbmNlL21ldGEvYXV0aGVudGljYXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS9iaXRidWNrZXQvYXBpLzIvcmVmZXJlbmNlL3Jlc291cmNlL3JlcG9zaXRvcmllcy8lN0J1c2VybmFtZSU3RC8lN0JyZXBvX3NsdWclN0QvaXNzdWVzXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmF0bGFzc2lhbi5jb20vYml0YnVja2V0L2FwaS8yL3JlZmVyZW5jZS9yZXNvdXJjZS9yZXBvc2l0b3JpZXMvJTdCdXNlcm5hbWUlN0QvJTdCcmVwb19zbHVnJTdEL2lzc3Vlcy8lN0Jpc3N1ZV9pZCU3RC9jb21tZW50c1xuICogQHNlZSBodHRwczovL2RldmVsb3Blci5hdGxhc3NpYW4uY29tL2JpdGJ1Y2tldC9hcGkvMi9yZWZlcmVuY2UvcmVzb3VyY2UvcmVwb3NpdG9yaWVzLyU3QnVzZXJuYW1lJTdELyU3QnJlcG9fc2x1ZyU3RC9pc3N1ZXMvJTdCaXNzdWVfaWQlN0QvY29tbWVudHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQml0YnVja2V0VjIgaW1wbGVtZW50cyBWc3N1ZUFQSSB7XG4gIGJhc2VVUkw6IHN0cmluZ1xuICBvd25lcjogc3RyaW5nXG4gIHJlcG86IHN0cmluZ1xuICBjbGllbnRJZDogc3RyaW5nXG4gIGNsaWVudFNlY3JldDogc3RyaW5nXG4gIHN0YXRlOiBzdHJpbmdcbiAgJGh0dHA6IEF4aW9zSW5zdGFuY2VcblxuICBnZXQgcGxhdGZvcm0gKCkge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiAnQml0YnVja2V0JyxcbiAgICAgIGxpbms6ICdodHRwczovL2JpdGJ1Y2tldC5vcmcnLFxuICAgICAgdmVyc2lvbjogJ3YyJyxcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvciAoe1xuICAgIGJhc2VVUkwgPSAnaHR0cHM6Ly9hcGkuYml0YnVja2V0Lm9yZy8yLjAvJyxcbiAgICBvd25lcixcbiAgICByZXBvLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudFNlY3JldCxcbiAgICBzdGF0ZSxcbiAgfTogVnNzdWVBUElPcHRpb25zKSB7XG4gICAgdGhpcy5iYXNlVVJMID0gYmFzZVVSTFxuICAgIHRoaXMub3duZXIgPSBvd25lclxuICAgIHRoaXMucmVwbyA9IHJlcG9cblxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZFxuICAgIHRoaXMuY2xpZW50U2VjcmV0ID0gY2xpZW50U2VjcmV0XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlXG5cbiAgICB0aGlzLiRodHRwID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkwsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICByZWRpcmVjdEF1dGhvcml6ZSAoKSB7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBidWlsZFVSTCgnaHR0cHM6Ly9iaXRidWNrZXQub3JnL3NpdGUvb2F1dGgyL2F1dGhvcml6ZScsIHtcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICAgIHJlZGlyZWN0X3VyaTogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZUF1dGhvcml6ZSAoKSB7XG4gICAgY29uc3QgcXVlcnkgPSBwYXJzZVF1ZXJ5KHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpXG4gICAgaWYgKHF1ZXJ5LmNvZGUpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSBxdWVyeS5jb2RlXG4gICAgICBkZWxldGUgcXVlcnkuY29kZVxuICAgICAgY29uc3QgcmVwbGFjZVVSTCA9IGJ1aWxkVVJMKGdldENsZWFuVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSwgcXVlcnkpICsgd2luZG93LmxvY2F0aW9uLmhhc2hcbiAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgcmVwbGFjZVVSTClcbiAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbih7IGNvZGUgfSlcbiAgICAgIHJldHVybiBhY2Nlc3NUb2tlblxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4gKHsgY29kZSB9KSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoYGh0dHBzOi8vY29ycy1hbnl3aGVyZS5oZXJva3VhcHAuY29tLyR7J2h0dHBzOi8vYml0YnVja2V0Lm9yZy9zaXRlL29hdXRoMi9hY2Nlc3NfdG9rZW4nfWAsIGJ1aWxkUXVlcnkoe1xuICAgICAgZ3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG4gICAgICByZWRpcmVjdF91cmk6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgY29kZSxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9LFxuICAgICAgYXV0aDoge1xuICAgICAgICB1c2VybmFtZTogdGhpcy5jbGllbnRJZCxcbiAgICAgICAgcGFzc3dvcmQ6IHRoaXMuY2xpZW50U2VjcmV0LFxuICAgICAgfSxcbiAgICB9KVxuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gcmVzcG9uc2UuZGF0YS5hY2Nlc3NfdG9rZW5cbiAgICByZXR1cm4gYWNjZXNzVG9rZW5cbiAgfVxuXG4gIGFzeW5jIGdldFVzZXIgKHsgYWNjZXNzVG9rZW4gfSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy4kaHR0cC5nZXQoJy91c2VyJywge1xuICAgICAgaGVhZGVyczogeyAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0sXG4gICAgfSlcbiAgICBjb25zdCB1c2VyID0gcmVzcG9uc2UuZGF0YVxuICAgIHJldHVybiBub3JtYWxpemVVc2VyKHVzZXIpXG4gIH1cblxuICBhc3luYyBnZXRJc3N1ZXMgKHsgYWNjZXNzVG9rZW4gfSkge1xuICAgIGNvbnN0IG9wdGlvbnM6IEF4aW9zUmVxdWVzdENvbmZpZyA9IHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICAvLyB0byBhdm9pZCBjYWNoaW5nXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChhY2Nlc3NUb2tlbikge1xuICAgICAgb3B0aW9ucy5oZWFkZXJzID0ge1xuICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KGByZXBvc2l0b3JpZXMvJHt0aGlzLm93bmVyfS8ke3RoaXMucmVwb30vaXNzdWVzYCwgb3B0aW9ucylcbiAgICBjb25zdCBpc3N1ZXMgPSByZXNwb25zZS5kYXRhLnZhbHVlc1xuICAgIHJldHVybiBpc3N1ZXMubWFwKG5vcm1hbGl6ZUlzc3VlKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q29tbWVudHMgKHtcbiAgICBpc3N1ZUlkLFxuICAgIGFjY2Vzc1Rva2VuLFxuICB9KSB7XG4gICAgY29uc3Qgb3B0aW9uczogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIC8vIHRvIGF2b2lkIGNhY2hpbmdcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XG4gICAgICBvcHRpb25zLmhlYWRlcnMgPSB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy4kaHR0cC5nZXQoYHJlcG9zaXRvcmllcy8ke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfS9pc3N1ZXMvJHtpc3N1ZUlkfS9jb21tZW50c2AsIG9wdGlvbnMpXG4gICAgY29uc3QgY29tbWVudHMgPSByZXNwb25zZS5kYXRhLnZhbHVlc1xuICAgIHJldHVybiBjb21tZW50cy5tYXAobm9ybWFsaXplQ29tbWVudClcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUlzc3VlICh7XG4gICAgdGl0bGUsXG4gICAgY29udGVudCxcbiAgICBhY2Nlc3NUb2tlbixcbiAgfSkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KGByZXBvc2l0b3JpZXMvJHt0aGlzLm93bmVyfS8ke3RoaXMucmVwb30vaXNzdWVzYCwge1xuICAgICAgdGl0bGUsXG4gICAgICBjb250ZW50OiB7XG4gICAgICAgIHJhdzogY29udGVudCxcbiAgICAgIH0sXG4gICAgICBwcmlvcml0eTogJ3RyaXZpYWwnLFxuICAgICAgdHlwZTogJ3Rhc2snLFxuICAgIH0sIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9LFxuICAgIH0pXG4gICAgY29uc3QgaXNzdWUgPSByZXNwb25zZS5kYXRhXG4gICAgcmV0dXJuIG5vcm1hbGl6ZUlzc3VlKGlzc3VlKVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlSXNzdWVDb21tZW50ICh7XG4gICAgaXNzdWVJZCxcbiAgICBjb250ZW50LFxuICAgIGFjY2Vzc1Rva2VuLFxuICB9KSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoYHJlcG9zaXRvcmllcy8ke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfS9pc3N1ZXMvJHtpc3N1ZUlkfS9jb21tZW50c2AsIHtcbiAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgcmF3OiBjb250ZW50LFxuICAgICAgfSxcbiAgICB9LCB7XG4gICAgICBoZWFkZXJzOiB7ICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSxcbiAgICB9KVxuICAgIGNvbnN0IGNvbW1lbnQgPSByZXNwb25zZS5kYXRhXG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbW1lbnQoY29tbWVudClcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUlzc3VlUmVhY3Rpb24gKCkge1xuICAgIC8vIG5vIHN1cHBvcnRcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbW1lbnRSZWFjdGlvbiAoKSB7XG4gICAgLy8gbm8gc3VwcG9ydFxuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sS0FHTixNQUFNLE9BQU8sQ0FBQTtBQUVkLE9BQU8sRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFdBQVcsRUFDWCxVQUFVLEdBQ1gsTUFBTSxjQUFjLENBQUE7QUFFckIsT0FBTyxFQUNMLGFBQWEsRUFDYixjQUFjLEVBQ2QsZ0JBQWdCLEdBQ2pCLE1BQU0sU0FBUyxDQUFBO0FBRWhCOzs7OztHQUtHO0FBQ0g7SUFTRSxxQkFBYSxFQU9LO1lBTmhCLGVBQXFDLEVBQXJDLDBEQUFxQyxFQUNyQyxnQkFBSyxFQUNMLGNBQUksRUFDSixzQkFBUSxFQUNSLDhCQUFZLEVBQ1osZ0JBQUs7UUFFTCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUVoQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQTtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUVsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDeEIsT0FBTyxTQUFBO1lBQ1AsT0FBTyxFQUFFO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7YUFDN0I7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBS0Qsc0JBQUksaUNBQVE7UUFIWjs7V0FFRzthQUNIO1lBQ0UsT0FBTztnQkFDTCxJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFO29CQUNKLFNBQVMsRUFBRSxLQUFLO29CQUNoQixRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGLENBQUE7UUFDSCxDQUFDOzs7T0FBQTtJQUVEOztPQUVHO0lBQ0gsa0NBQVksR0FBWjtRQUNFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyw2Q0FBNkMsRUFBRTtZQUM3RSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDeEIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUNsQyxhQUFhLEVBQUUsTUFBTTtTQUN0QixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNHLGdDQUFVLEdBQWhCOzs7Ozs7d0JBQ1EsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBOzZCQUM1QyxLQUFLLENBQUMsSUFBSSxFQUFWLHdCQUFVO3dCQUNOLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO3dCQUN2QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUE7d0JBQ1gsVUFBVSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQTt3QkFDNUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQTt3QkFDN0IscUJBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLENBQUMsRUFBQTs7d0JBQWpELFdBQVcsR0FBRyxTQUFtQzt3QkFDdkQsc0JBQU8sV0FBVyxFQUFBOzRCQUVwQixzQkFBTyxJQUFJLEVBQUE7Ozs7S0FDWjtJQUVEOzs7Ozs7T0FNRztJQUNHLG9DQUFjLEdBQXBCLFVBQXNCLEVBQTBCO1lBQXhCLGNBQUk7Ozs7OzRCQUNULHFCQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHlDQUF1QyxnREFBa0QsRUFBRSxVQUFVLENBQUM7NEJBQzNJLFVBQVUsRUFBRSxvQkFBb0I7NEJBQ2hDLFlBQVksRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7NEJBQ2xDLElBQUksTUFBQTt5QkFDTCxDQUFDLEVBQUU7NEJBQ0YsT0FBTyxFQUFFO2dDQUNQLGNBQWMsRUFBRSxtQ0FBbUM7NkJBQ3BEOzRCQUNELElBQUksRUFBRTtnQ0FDSixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0NBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTs2QkFDNUI7eUJBQ0YsQ0FBQyxFQUFBOzt3QkFaTSxJQUFJLEdBQUssQ0FBQSxTQVlmLENBQUEsS0FaVTt3QkFhWixzQkFBTyxJQUFJLENBQUMsWUFBWSxFQUFBOzs7O0tBQ3pCO0lBRUQ7Ozs7OztPQU1HO0lBQ0csNkJBQU8sR0FBYixVQUFlLEVBQWU7WUFBYiw0QkFBVzs7Ozs7NEJBQ1QscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFOzRCQUNoRCxPQUFPLEVBQUUsRUFBRSxlQUFlLEVBQUUsWUFBVSxXQUFhLEVBQUU7eUJBQ3RELENBQUMsRUFBQTs7d0JBRk0sSUFBSSxHQUFLLENBQUEsU0FFZixDQUFBLEtBRlU7d0JBR1osc0JBQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFBOzs7O0tBQzNCO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDRyw4QkFBUSxHQUFkLFVBQWdCLEVBSWY7WUFIQyw0QkFBVyxFQUNYLG9CQUFPLEVBQ1AsMEJBQVU7Ozs7Ozt3QkFFSixPQUFPLEdBQXVCLEVBQUUsQ0FBQTt3QkFFdEMsSUFBSSxXQUFXLEVBQUU7NEJBQ2YsT0FBTyxDQUFDLE9BQU8sR0FBRztnQ0FDaEIsZUFBZSxFQUFFLFlBQVUsV0FBYTs2QkFDekMsQ0FBQTt5QkFDRjs2QkFFRyxPQUFPLEVBQVAsd0JBQU87Ozs7d0JBRVUscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsc0JBQW9CLElBQUksQ0FBQyxLQUFLLFNBQUksSUFBSSxDQUFDLElBQUksZ0JBQVcsT0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFBOzt3QkFBdkcsSUFBSSxHQUFLLENBQUEsU0FBOEYsQ0FBQSxLQUFuRzt3QkFDWixzQkFBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUE7Ozt3QkFFM0IsSUFBSSxHQUFDLENBQUMsUUFBUSxJQUFJLEdBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTs0QkFDM0Msc0JBQU8sSUFBSSxFQUFBO3lCQUNaOzZCQUFNOzRCQUNMLE1BQU0sR0FBQyxDQUFBO3lCQUNSOzs7O3dCQUdILE9BQU8sQ0FBQyxNQUFNLEdBQUc7NEJBQ2YsSUFBSSxFQUFFLFlBQVk7NEJBQ2xCLENBQUMsRUFBRSxhQUFVLFVBQVUsT0FBRzt5QkFDM0IsQ0FBQTt3QkFDZ0IscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsc0JBQW9CLElBQUksQ0FBQyxLQUFLLFNBQUksSUFBSSxDQUFDLElBQUksWUFBUyxFQUFFLE9BQU8sQ0FBQyxFQUFBOzt3QkFBNUYsSUFBSSxHQUFLLENBQUEsU0FBbUYsQ0FBQSxLQUF4Rjt3QkFDWixzQkFBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFBOzs7OztLQUUvRDtJQUVEOzs7Ozs7OztPQVFHO0lBQ0csaUNBQVcsR0FBakIsVUFBbUIsRUFRbEI7WUFQQyw0QkFBVyxFQUNYLG9CQUFPLEVBQ1AsYUFJTSxFQUpOLDRCQUlNLEVBSEosWUFBUSxFQUFSLDZCQUFRLEVBQ1IsZUFBWSxFQUFaLGlDQUFZLEVBQ1osWUFBYSxFQUFiLGtDQUFhOzs7Ozs7d0JBR1QsT0FBTyxHQUF1Qjs0QkFDbEMsTUFBTSxFQUFFO2dDQUNOLGFBQWE7Z0NBQ2IsTUFBTSxFQUFFLElBQUk7Z0NBQ1osU0FBUyxFQUFFLE9BQU87Z0NBQ2xCLE1BQU0sRUFBRSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVk7NkJBQ3ZEO3lCQUNGLENBQUE7d0JBQ0QsSUFBSSxXQUFXLEVBQUU7NEJBQ2YsT0FBTyxDQUFDLE9BQU8sR0FBRztnQ0FDaEIsZUFBZSxFQUFFLFlBQVUsV0FBYTs2QkFDekMsQ0FBQTt5QkFDRjt3QkFDZ0IscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsc0JBQW9CLElBQUksQ0FBQyxLQUFLLFNBQUksSUFBSSxDQUFDLElBQUksZ0JBQVcsT0FBTyxjQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUE7O3dCQUFoSCxJQUFJLEdBQUssQ0FBQSxTQUF1RyxDQUFBLEtBQTVHO3dCQUNaLHNCQUFPO2dDQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtnQ0FDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dDQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQ0FDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDOzZCQUN4QyxFQUFBOzs7O0tBQ0Y7SUFFRDs7Ozs7Ozs7T0FRRztJQUNHLGlDQUFXLEdBQWpCLFVBQW1CLEVBSWxCO1lBSEMsNEJBQVcsRUFDWCxnQkFBSyxFQUNMLG9CQUFPOzs7Ozs0QkFFVSxxQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBb0IsSUFBSSxDQUFDLEtBQUssU0FBSSxJQUFJLENBQUMsSUFBSSxZQUFTLEVBQUU7NEJBQzNGLEtBQUssT0FBQTs0QkFDTCxPQUFPLEVBQUU7Z0NBQ1AsR0FBRyxFQUFFLE9BQU87NkJBQ2I7NEJBQ0QsUUFBUSxFQUFFLFNBQVM7NEJBQ25CLElBQUksRUFBRSxNQUFNO3lCQUNiLEVBQUU7NEJBQ0QsT0FBTyxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVUsV0FBYSxFQUFFO3lCQUN0RCxDQUFDLEVBQUE7O3dCQVRNLElBQUksR0FBSyxDQUFBLFNBU2YsQ0FBQSxLQVRVO3dCQVVaLHNCQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBQTs7OztLQUM1QjtJQUVLLG1DQUFhLEdBQW5CLFVBQXFCLEVBSXBCO1lBSEMsNEJBQVcsRUFDWCxvQkFBTyxFQUNQLG9CQUFPOzs7Ozs0QkFFVSxxQkFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBb0IsSUFBSSxDQUFDLEtBQUssU0FBSSxJQUFJLENBQUMsSUFBSSxnQkFBVyxPQUFPLGNBQVcsRUFBRTs0QkFDL0csT0FBTyxFQUFFO2dDQUNQLEdBQUcsRUFBRSxPQUFPOzZCQUNiO3lCQUNGLEVBQUU7NEJBQ0QsT0FBTyxFQUFFLEVBQUUsZUFBZSxFQUFFLFlBQVUsV0FBYSxFQUFFO3lCQUN0RCxDQUFDLEVBQUE7O3dCQU5NLElBQUksR0FBSyxDQUFBLFNBTWYsQ0FBQSxLQU5VO3dCQU9aLHNCQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFBOzs7O0tBQzlCO0lBRUQ7O09BRUc7SUFDRyx5Q0FBbUIsR0FBekI7OztnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUE7OztLQUM3QztJQUVEOztPQUVHO0lBQ0csMkNBQXFCLEdBQTNCOzs7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFBOzs7S0FDN0M7SUFDSCxrQkFBQztBQUFELENBQUMsQUFoUUQsSUFnUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBWc3N1ZUFQSSxcbiAgVnNzdWVBUElPcHRpb25zLFxufSBmcm9tICd2c3N1ZSdcblxuaW1wb3J0IGF4aW9zLCB7XG4gIEF4aW9zSW5zdGFuY2UsXG4gIEF4aW9zUmVxdWVzdENvbmZpZyxcbn0gZnJvbSAnYXhpb3MnXG5cbmltcG9ydCB7XG4gIGJ1aWxkUXVlcnksXG4gIGJ1aWxkVVJMLFxuICBnZXRDbGVhblVSTCxcbiAgcGFyc2VRdWVyeSxcbn0gZnJvbSAnQHZzc3VlL3V0aWxzJ1xuXG5pbXBvcnQge1xuICBub3JtYWxpemVVc2VyLFxuICBub3JtYWxpemVJc3N1ZSxcbiAgbm9ybWFsaXplQ29tbWVudCxcbn0gZnJvbSAnLi91dGlscydcblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vY29uZmx1ZW5jZS5hdGxhc3NpYW4uY29tL2JpdGJ1Y2tldC9vYXV0aC1vbi1iaXRidWNrZXQtY2xvdWQtMjM4MDI3NDMxLmh0bWxcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS9iaXRidWNrZXQvYXBpLzIvcmVmZXJlbmNlL21ldGEvYXV0aGVudGljYXRpb25cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXRsYXNzaWFuLmNvbS9iaXRidWNrZXQvYXBpLzIvcmVmZXJlbmNlL3Jlc291cmNlL3JlcG9zaXRvcmllcy8lN0J1c2VybmFtZSU3RC8lN0JyZXBvX3NsdWclN0QvaXNzdWVzXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmF0bGFzc2lhbi5jb20vYml0YnVja2V0L2FwaS8yL3JlZmVyZW5jZS9yZXNvdXJjZS9yZXBvc2l0b3JpZXMvJTdCdXNlcm5hbWUlN0QvJTdCcmVwb19zbHVnJTdEL2lzc3Vlcy8lN0Jpc3N1ZV9pZCU3RC9jb21tZW50c1xuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCaXRidWNrZXRWMiBpbXBsZW1lbnRzIFZzc3VlQVBJLkluc3RhbmNlIHtcbiAgYmFzZVVSTDogc3RyaW5nXG4gIG93bmVyOiBzdHJpbmdcbiAgcmVwbzogc3RyaW5nXG4gIGNsaWVudElkOiBzdHJpbmdcbiAgY2xpZW50U2VjcmV0OiBzdHJpbmdcbiAgc3RhdGU6IHN0cmluZ1xuICAkaHR0cDogQXhpb3NJbnN0YW5jZVxuXG4gIGNvbnN0cnVjdG9yICh7XG4gICAgYmFzZVVSTCA9ICdodHRwczovL2FwaS5iaXRidWNrZXQub3JnJyxcbiAgICBvd25lcixcbiAgICByZXBvLFxuICAgIGNsaWVudElkLFxuICAgIGNsaWVudFNlY3JldCxcbiAgICBzdGF0ZSxcbiAgfTogVnNzdWVBUElPcHRpb25zKSB7XG4gICAgdGhpcy5iYXNlVVJMID0gYmFzZVVSTFxuICAgIHRoaXMub3duZXIgPSBvd25lclxuICAgIHRoaXMucmVwbyA9IHJlcG9cblxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZFxuICAgIHRoaXMuY2xpZW50U2VjcmV0ID0gY2xpZW50U2VjcmV0XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlXG5cbiAgICB0aGlzLiRodHRwID0gYXhpb3MuY3JlYXRlKHtcbiAgICAgIGJhc2VVUkwsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdBY2NlcHQnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogVGhlIHBsYXRmb3JtIGFwaSBpbmZvXG4gICAqL1xuICBnZXQgcGxhdGZvcm0gKCk6IFZzc3VlQVBJLlBsYXRmb3JtIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ0JpdGJ1Y2tldCcsXG4gICAgICBsaW5rOiAnaHR0cHM6Ly9iaXRidWNrZXQub3JnJyxcbiAgICAgIHZlcnNpb246ICd2MicsXG4gICAgICBtZXRhOiB7XG4gICAgICAgIHJlYWN0YWJsZTogZmFsc2UsXG4gICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVkaXJlY3QgdG8gdGhlIGF1dGhvcml6YXRpb24gcGFnZSBvZiBwbGF0Zm9ybS5cbiAgICovXG4gIHJlZGlyZWN0QXV0aCAoKTogdm9pZCB7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBidWlsZFVSTCgnaHR0cHM6Ly9iaXRidWNrZXQub3JnL3NpdGUvb2F1dGgyL2F1dGhvcml6ZScsIHtcbiAgICAgIGNsaWVudF9pZDogdGhpcy5jbGllbnRJZCxcbiAgICAgIHJlZGlyZWN0X3VyaTogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYXV0aG9yaXphdGlvbi5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgdGhlIGBjb2RlYCBleGlzdHMgaW4gdGhlIHF1ZXJ5LCByZW1vdmUgdGhlbSBmcm9tIHF1ZXJ5LCBhbmQgdHJ5IHRvIGdldCB0aGUgYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBAcmV0dXJuIEEgc3RyaW5nIGZvciBhY2Nlc3MgdG9rZW4sIGBudWxsYCBmb3Igbm8gYXV0aG9yaXphdGlvbiBjb2RlXG4gICAqL1xuICBhc3luYyBoYW5kbGVBdXRoICgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBxdWVyeSA9IHBhcnNlUXVlcnkod2luZG93LmxvY2F0aW9uLnNlYXJjaClcbiAgICBpZiAocXVlcnkuY29kZSkge1xuICAgICAgY29uc3QgY29kZSA9IHF1ZXJ5LmNvZGVcbiAgICAgIGRlbGV0ZSBxdWVyeS5jb2RlXG4gICAgICBjb25zdCByZXBsYWNlVVJMID0gYnVpbGRVUkwoZ2V0Q2xlYW5VUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLCBxdWVyeSkgKyB3aW5kb3cubG9jYXRpb24uaGFzaFxuICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKG51bGwsICcnLCByZXBsYWNlVVJMKVxuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKHsgY29kZSB9KVxuICAgICAgcmV0dXJuIGFjY2Vzc1Rva2VuXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIgYWNjZXNzIHRva2VuIHZpYSBgY29kZWBcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMuY29kZSAtIFRoZSBjb2RlIGZyb20gdGhlIHF1ZXJ5XG4gICAqXG4gICAqIEByZXR1cm4gVXNlciBhY2Nlc3MgdG9rZW5cbiAgICovXG4gIGFzeW5jIGdldEFjY2Vzc1Rva2VuICh7IGNvZGUgfTogeyBjb2RlOiBzdHJpbmcgfSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLiRodHRwLnBvc3QoYGh0dHBzOi8vY29ycy1hbnl3aGVyZS5oZXJva3VhcHAuY29tLyR7J2h0dHBzOi8vYml0YnVja2V0Lm9yZy9zaXRlL29hdXRoMi9hY2Nlc3NfdG9rZW4nfWAsIGJ1aWxkUXVlcnkoe1xuICAgICAgZ3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG4gICAgICByZWRpcmVjdF91cmk6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgY29kZSxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICAgICB9LFxuICAgICAgYXV0aDoge1xuICAgICAgICB1c2VybmFtZTogdGhpcy5jbGllbnRJZCxcbiAgICAgICAgcGFzc3dvcmQ6IHRoaXMuY2xpZW50U2VjcmV0LFxuICAgICAgfSxcbiAgICB9KVxuICAgIHJldHVybiBkYXRhLmFjY2Vzc190b2tlblxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbG9naW5lZCB1c2VyIHdpdGggYWNjZXNzIHRva2VuLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucy5hY2Nlc3NUb2tlbiAtIFVzZXIgYWNjZXNzIHRva2VuXG4gICAqXG4gICAqIEByZXR1cm4gVGhlIHVzZXJcbiAgICovXG4gIGFzeW5jIGdldFVzZXIgKHsgYWNjZXNzVG9rZW4gfSk6IFByb21pc2U8VnNzdWVBUEkuVXNlcj4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy4kaHR0cC5nZXQoJzIuMC91c2VyJywge1xuICAgICAgaGVhZGVyczogeyAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0sXG4gICAgfSlcbiAgICByZXR1cm4gbm9ybWFsaXplVXNlcihkYXRhKVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBpc3N1ZSBvZiB0aGlzIHBhZ2UgYWNjb3JkaW5nIHRvIHRoZSBpc3N1ZSBpZCBvciB0aGUgaXNzdWUgdGl0bGVcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMuYWNjZXNzVG9rZW4gLSBVc2VyIGFjY2VzcyB0b2tlblxuICAgKiBAcGFyYW0gb3B0aW9ucy5pc3N1ZUlkIC0gVGhlIGlkIG9mIGlzc3VlXG4gICAqIEBwYXJhbSBvcHRpb25zLmlzc3VlVGl0bGUgLSBUaGUgdGl0bGUgb2YgaXNzdWVcbiAgICpcbiAgICogQHJldHVybiBUaGUgcmF3IHJlc3BvbnNlIG9mIGlzc3VlXG4gICAqL1xuICBhc3luYyBnZXRJc3N1ZSAoe1xuICAgIGFjY2Vzc1Rva2VuLFxuICAgIGlzc3VlSWQsXG4gICAgaXNzdWVUaXRsZSxcbiAgfSk6IFByb21pc2U8VnNzdWVBUEkuSXNzdWUgfCBudWxsPiB7XG4gICAgY29uc3Qgb3B0aW9uczogQXhpb3NSZXF1ZXN0Q29uZmlnID0ge31cblxuICAgIGlmIChhY2Nlc3NUb2tlbikge1xuICAgICAgb3B0aW9ucy5oZWFkZXJzID0ge1xuICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc3N1ZUlkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuJGh0dHAuZ2V0KGAyLjAvcmVwb3NpdG9yaWVzLyR7dGhpcy5vd25lcn0vJHt0aGlzLnJlcG99L2lzc3Vlcy8ke2lzc3VlSWR9YCwgb3B0aW9ucylcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZUlzc3VlKGRhdGEpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlLnJlc3BvbnNlICYmIGUucmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLnBhcmFtcyA9IHtcbiAgICAgICAgc29ydDogJ2NyZWF0ZWRfb24nLFxuICAgICAgICBxOiBgdGl0bGU9XCIke2lzc3VlVGl0bGV9XCJgLFxuICAgICAgfVxuICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLiRodHRwLmdldChgMi4wL3JlcG9zaXRvcmllcy8ke3RoaXMub3duZXJ9LyR7dGhpcy5yZXBvfS9pc3N1ZXNgLCBvcHRpb25zKVxuICAgICAgcmV0dXJuIGRhdGEuc2l6ZSA+IDAgPyBub3JtYWxpemVJc3N1ZShkYXRhLnZhbHVlc1swXSkgOiBudWxsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb21tZW50cyBvZiB0aGlzIHBhZ2UgYWNjb3JkaW5nIHRvIHRoZSBpc3N1ZSBpZCBvciB0aGUgaXNzdWUgdGl0bGVcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMuYWNjZXNzVG9rZW4gLSBVc2VyIGFjY2VzcyB0b2tlblxuICAgKiBAcGFyYW0gb3B0aW9ucy5pc3N1ZUlkIC0gVGhlIGlkIG9mIGlzc3VlXG4gICAqIEBwYXJhbSBvcHRpb25zLnF1ZXJ5IC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICpcbiAgICogQHJldHVybiBUaGUgY29tbWVudHNcbiAgICovXG4gIGFzeW5jIGdldENvbW1lbnRzICh7XG4gICAgYWNjZXNzVG9rZW4sXG4gICAgaXNzdWVJZCxcbiAgICBxdWVyeToge1xuICAgICAgcGFnZSA9IDEsXG4gICAgICBwZXJQYWdlID0gMTAsXG4gICAgICBzb3J0ID0gJ2Rlc2MnLFxuICAgIH0gPSB7fSxcbiAgfSk6IFByb21pc2U8VnNzdWVBUEkuQ29tbWVudHM+IHtcbiAgICBjb25zdCBvcHRpb25zOiBBeGlvc1JlcXVlc3RDb25maWcgPSB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgLy8gcGFnaW5hdGlvblxuICAgICAgICAncGFnZSc6IHBhZ2UsXG4gICAgICAgICdwYWdlbGVuJzogcGVyUGFnZSxcbiAgICAgICAgJ3NvcnQnOiBzb3J0ID09PSAnZGVzYycgPyAnLWNyZWF0ZWRfb24nIDogJ2NyZWF0ZWRfb24nLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGFjY2Vzc1Rva2VuKSB7XG4gICAgICBvcHRpb25zLmhlYWRlcnMgPSB7XG4gICAgICAgICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy4kaHR0cC5nZXQoYDIuMC9yZXBvc2l0b3JpZXMvJHt0aGlzLm93bmVyfS8ke3RoaXMucmVwb30vaXNzdWVzLyR7aXNzdWVJZH0vY29tbWVudHNgLCBvcHRpb25zKVxuICAgIHJldHVybiB7XG4gICAgICBjb3VudDogZGF0YS5zaXplLFxuICAgICAgcGFnZTogZGF0YS5wYWdlLFxuICAgICAgcGVyUGFnZTogZGF0YS5wYWdlbGVuLFxuICAgICAgZGF0YTogZGF0YS52YWx1ZXMubWFwKG5vcm1hbGl6ZUNvbW1lbnQpLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaXNzdWVcbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMuYWNjZXNzVG9rZW4gLSBVc2VyIGFjY2VzcyB0b2tlblxuICAgKiBAcGFyYW0gb3B0aW9ucy50aXRsZSAtIFRoZSB0aXRsZSBvZiBpc3N1ZVxuICAgKiBAcGFyYW0gb3B0aW9ucy5jb250ZW50IC0gVGhlIGNvbnRlbnQgb2YgaXNzdWVcbiAgICpcbiAgICogQHJldHVybiBUaGUgY3JlYXRlZCBpc3N1ZVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlSXNzdWUgKHtcbiAgICBhY2Nlc3NUb2tlbixcbiAgICB0aXRsZSxcbiAgICBjb250ZW50LFxuICB9KTogUHJvbWlzZTxWc3N1ZUFQSS5Jc3N1ZT4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KGAyLjAvcmVwb3NpdG9yaWVzLyR7dGhpcy5vd25lcn0vJHt0aGlzLnJlcG99L2lzc3Vlc2AsIHtcbiAgICAgIHRpdGxlLFxuICAgICAgY29udGVudDoge1xuICAgICAgICByYXc6IGNvbnRlbnQsXG4gICAgICB9LFxuICAgICAgcHJpb3JpdHk6ICd0cml2aWFsJyxcbiAgICAgIHR5cGU6ICd0YXNrJyxcbiAgICB9LCB7XG4gICAgICBoZWFkZXJzOiB7ICdBdXRob3JpemF0aW9uJzogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAgfSxcbiAgICB9KVxuICAgIHJldHVybiBub3JtYWxpemVJc3N1ZShkYXRhKVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlQ29tbWVudCAoe1xuICAgIGFjY2Vzc1Rva2VuLFxuICAgIGlzc3VlSWQsXG4gICAgY29udGVudCxcbiAgfSk6IFByb21pc2U8VnNzdWVBUEkuQ29tbWVudD4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy4kaHR0cC5wb3N0KGAyLjAvcmVwb3NpdG9yaWVzLyR7dGhpcy5vd25lcn0vJHt0aGlzLnJlcG99L2lzc3Vlcy8ke2lzc3VlSWR9L2NvbW1lbnRzYCwge1xuICAgICAgY29udGVudDoge1xuICAgICAgICByYXc6IGNvbnRlbnQsXG4gICAgICB9LFxuICAgIH0sIHtcbiAgICAgIGhlYWRlcnM6IHsgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCB9LFxuICAgIH0pXG4gICAgcmV0dXJuIG5vcm1hbGl6ZUNvbW1lbnQoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiBCaXRidWNrZXQgZG9lcyBub3Qgc3VwcG9ydCByZWFjdGlvbnMgbm93XG4gICAqL1xuICBhc3luYyBjcmVhdGVJc3N1ZVJlYWN0aW9uICgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0aW9ucyBOb3QgSW1wbGVtZW50ZWQnKVxuICB9XG5cbiAgLyoqXG4gICAqIEJpdGJ1Y2tldCBkb2VzIG5vdCBzdXBwb3J0IHJlYWN0aW9ucyBub3dcbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNvbW1lbnRSZWFjdGlvbiAoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZWFjdGlvbnMgTm90IEltcGxlbWVudGVkJylcbiAgfVxufVxuIl19

@@ -13,2 +13,3 @@ export function normalizeUser(user) {

content: issue.content.raw,
link: issue.links.html.href,
};

@@ -32,2 +33,2 @@ }

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxVQUFVLGFBQWEsQ0FBRSxJQUFJO0lBQ2pDLE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUk7S0FDL0IsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFFLEtBQUs7SUFDbkMsT0FBTztRQUNMLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHO0tBQzNCLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFFLE9BQVk7SUFDNUMsT0FBTztRQUNMLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDN0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRztRQUMvQixNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzdCLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM3QixTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFBO0FBQ0gsQ0FBQztBQUVELGVBQWU7SUFDYixhQUFhLGVBQUE7SUFDYixjQUFjLGdCQUFBO0lBQ2QsZ0JBQWdCLGtCQUFBO0NBQ2pCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBVc2VyLFxuICBJc3N1ZSxcbiAgQ29tbWVudCxcbn0gZnJvbSAndnNzdWUnXG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVVc2VyICh1c2VyKTogVXNlciB7XG4gIHJldHVybiB7XG4gICAgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUsXG4gICAgYXZhdGFyOiB1c2VyLmxpbmtzLmF2YXRhci5ocmVmLFxuICAgIGhvbWVwYWdlOiB1c2VyLmxpbmtzLmh0bWwuaHJlZixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplSXNzdWUgKGlzc3VlKTogSXNzdWUge1xuICByZXR1cm4ge1xuICAgIGlkOiBpc3N1ZS5pZCxcbiAgICB0aXRsZTogaXNzdWUudGl0bGUsXG4gICAgY29udGVudDogaXNzdWUuY29udGVudC5yYXcsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbW1lbnQgKGNvbW1lbnQ6IGFueSk6IENvbW1lbnQge1xuICByZXR1cm4ge1xuICAgIGlkOiBjb21tZW50LmlkLFxuICAgIGNvbnRlbnQ6IGNvbW1lbnQuY29udGVudC5odG1sLFxuICAgIGNvbnRlbnRSYXc6IGNvbW1lbnQuY29udGVudC5yYXcsXG4gICAgYXV0aG9yOiBub3JtYWxpemVVc2VyKGNvbW1lbnQudXNlciksXG4gICAgY3JlYXRlZEF0OiBjb21tZW50LmNyZWF0ZWRfb24sXG4gICAgdXBkYXRlZEF0OiBjb21tZW50LnVwZGF0ZWRfb24sXG4gICAgcmVhY3Rpb25zOiBudWxsLFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbm9ybWFsaXplVXNlcixcbiAgbm9ybWFsaXplSXNzdWUsXG4gIG5vcm1hbGl6ZUNvbW1lbnQsXG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGFBQWEsQ0FBRSxJQUFJO0lBQ2pDLE9BQU87UUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDOUIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUk7S0FDL0IsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFFLEtBQUs7SUFDbkMsT0FBTztRQUNMLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNaLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHO1FBQzFCLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJO0tBQzVCLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFFLE9BQVk7SUFDNUMsT0FBTztRQUNMLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDN0IsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRztRQUMvQixNQUFNLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzdCLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM3QixTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFBO0FBQ0gsQ0FBQztBQUVELGVBQWU7SUFDYixhQUFhLGVBQUE7SUFDYixjQUFjLGdCQUFBO0lBQ2QsZ0JBQWdCLGtCQUFBO0NBQ2pCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWc3N1ZUFQSSB9IGZyb20gJ3Zzc3VlJ1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVXNlciAodXNlcik6IFZzc3VlQVBJLlVzZXIge1xuICByZXR1cm4ge1xuICAgIHVzZXJuYW1lOiB1c2VyLnVzZXJuYW1lLFxuICAgIGF2YXRhcjogdXNlci5saW5rcy5hdmF0YXIuaHJlZixcbiAgICBob21lcGFnZTogdXNlci5saW5rcy5odG1sLmhyZWYsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlzc3VlIChpc3N1ZSk6IFZzc3VlQVBJLklzc3VlIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogaXNzdWUuaWQsXG4gICAgdGl0bGU6IGlzc3VlLnRpdGxlLFxuICAgIGNvbnRlbnQ6IGlzc3VlLmNvbnRlbnQucmF3LFxuICAgIGxpbms6IGlzc3VlLmxpbmtzLmh0bWwuaHJlZixcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ29tbWVudCAoY29tbWVudDogYW55KTogVnNzdWVBUEkuQ29tbWVudCB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGNvbW1lbnQuaWQsXG4gICAgY29udGVudDogY29tbWVudC5jb250ZW50Lmh0bWwsXG4gICAgY29udGVudFJhdzogY29tbWVudC5jb250ZW50LnJhdyxcbiAgICBhdXRob3I6IG5vcm1hbGl6ZVVzZXIoY29tbWVudC51c2VyKSxcbiAgICBjcmVhdGVkQXQ6IGNvbW1lbnQuY3JlYXRlZF9vbixcbiAgICB1cGRhdGVkQXQ6IGNvbW1lbnQudXBkYXRlZF9vbixcbiAgICByZWFjdGlvbnM6IG51bGwsXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBub3JtYWxpemVVc2VyLFxuICBub3JtYWxpemVJc3N1ZSxcbiAgbm9ybWFsaXplQ29tbWVudCxcbn1cbiJdfQ==
{
"name": "@vssue/api-bitbucket-v2",
"version": "0.1.9",
"version": "0.2.0",
"description": "Vssue api for bitbucket v2",

@@ -29,3 +29,3 @@ "license": "MIT",

"dependencies": {
"@vssue/utils": "^0.1.2",
"@vssue/utils": "^0.2.0",
"axios": "^0.18.0"

@@ -36,3 +36,3 @@ },

},
"gitHead": "58b1042ca58ffec75718d48fb0e4026082e39d11"
"gitHead": "b766459604ded3b56082a642a88e211433c7dbc2"
}

@@ -8,1 +8,6 @@ # @vssue/api-bitbucket-v2

[__Github Repo__](https://github.com/meteorlxy/vssue)
## Features
- Comments sortable: `true`
- Comments reactions: `false`

@@ -8,5 +8,4 @@ import { VssueAPI, VssueAPIOptions } from 'vssue';

* @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/issues/%7Bissue_id%7D/comments
* @see https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/issues/%7Bissue_id%7D/comments
*/
export default class BitbucketV2 implements VssueAPI {
export default class BitbucketV2 implements VssueAPI.Instance {
baseURL: string;

@@ -19,35 +18,99 @@ owner: string;

$http: AxiosInstance;
readonly platform: {
name: string;
link: string;
version: string;
};
constructor({ baseURL, owner, repo, clientId, clientSecret, state, }: VssueAPIOptions);
redirectAuthorize(): void;
handleAuthorize(): Promise<any>;
/**
* The platform api info
*/
readonly platform: VssueAPI.Platform;
/**
* Redirect to the authorization page of platform.
*/
redirectAuth(): void;
/**
* Handle authorization.
*
* @remarks
* If the `code` exists in the query, remove them from query, and try to get the access token.
*
* @return A string for access token, `null` for no authorization code
*/
handleAuth(): Promise<string | null>;
/**
* Get user access token via `code`
*
* @param options.code - The code from the query
*
* @return User access token
*/
getAccessToken({ code }: {
code: any;
}): Promise<any>;
code: string;
}): Promise<string>;
/**
* Get the logined user with access token.
*
* @param options.accessToken - User access token
*
* @return The user
*/
getUser({ accessToken }: {
accessToken: any;
}): Promise<import("vssue").User>;
getIssues({ accessToken }: {
}): Promise<VssueAPI.User>;
/**
* Get issue of this page according to the issue id or the issue title
*
* @param options.accessToken - User access token
* @param options.issueId - The id of issue
* @param options.issueTitle - The title of issue
*
* @return The raw response of issue
*/
getIssue({ accessToken, issueId, issueTitle, }: {
accessToken: any;
}): Promise<any>;
getComments({ issueId, accessToken, }: {
issueId: any;
issueTitle: any;
}): Promise<VssueAPI.Issue | null>;
/**
* Get comments of this page according to the issue id or the issue title
*
* @param options.accessToken - User access token
* @param options.issueId - The id of issue
* @param options.query - The query parameters
*
* @return The comments
*/
getComments({ accessToken, issueId, query: { page, perPage, sort, }, }: {
accessToken: any;
}): Promise<any>;
createIssue({ title, content, accessToken, }: {
issueId: any;
query?: {
page?: number | undefined;
perPage?: number | undefined;
sort?: string | undefined;
} | undefined;
}): Promise<VssueAPI.Comments>;
/**
* Create a new issue
*
* @param options.accessToken - User access token
* @param options.title - The title of issue
* @param options.content - The content of issue
*
* @return The created issue
*/
createIssue({ accessToken, title, content, }: {
accessToken: any;
title: any;
content: any;
}): Promise<VssueAPI.Issue>;
createComment({ accessToken, issueId, content, }: {
accessToken: any;
}): Promise<import("vssue").Issue>;
createIssueComment({ issueId, content, accessToken, }: {
issueId: any;
content: any;
accessToken: any;
}): Promise<import("vssue").Comment>;
createIssueReaction(): Promise<void>;
createCommentReaction(): Promise<void>;
}): Promise<VssueAPI.Comment>;
/**
* Bitbucket does not support reactions now
*/
createIssueReaction(): Promise<boolean>;
/**
* Bitbucket does not support reactions now
*/
createCommentReaction(): Promise<boolean>;
}

@@ -1,5 +0,5 @@

import { User, Issue, Comment } from 'vssue';
export declare function normalizeUser(user: any): User;
export declare function normalizeIssue(issue: any): Issue;
export declare function normalizeComment(comment: any): Comment;
import { VssueAPI } from 'vssue';
export declare function normalizeUser(user: any): VssueAPI.User;
export declare function normalizeIssue(issue: any): VssueAPI.Issue;
export declare function normalizeComment(comment: any): VssueAPI.Comment;
declare const _default: {

@@ -6,0 +6,0 @@ normalizeUser: typeof normalizeUser;

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc