Skip to content

Commit 04b68ed

Browse files
API updates (MrRefactoring#279)
* API updates * docs warnings resolved * type clarified * version3 api updates * version3 api updates
1 parent 043a6e3 commit 04b68ed

File tree

130 files changed

+2640
-895
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+2640
-895
lines changed

package-lock.json

+300-261
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
{
22
"name": "jira.js",
33
"version": "2.19.1",
4-
"description": "jira.js is a powerful Node.JS/Browser module that allows you to interact with the Jira API very easily",
4+
"description": "A comprehensive JavaScript/TypeScript library designed for both Node.JS and browsers, facilitating seamless interaction with the Atlassian Jira API.",
55
"main": "out/index.js",
66
"types": "out/index.d.ts",
77
"repository": "https://github.com/MrRefactoring/jira.js.git",
88
"author": "Vladislav Tupikin <[email protected]>",
99
"license": "MIT",
1010
"keywords": [
11-
"atlassian",
1211
"jira",
12+
"javascript",
13+
"typescript",
14+
"nodejs",
15+
"browser",
16+
"atlassian",
1317
"api",
14-
"agile",
15-
"cloud",
16-
"serviceDesk",
17-
"wrapper",
1818
"client",
19-
"rest"
19+
"library"
2020
],
2121
"scripts": {
2222
"build": "tsc",
@@ -62,32 +62,32 @@
6262
}
6363
},
6464
"devDependencies": {
65-
"@swc-node/register": "1.6.6",
66-
"@swc/helpers": "^0.5.1",
67-
"@types/express": "^4.17.17",
68-
"@types/node": "^20.5.9",
65+
"@swc-node/register": "^1.6.8",
66+
"@swc/helpers": "^0.5.2",
67+
"@types/express": "^4.17.18",
68+
"@types/node": "^20.8.0",
6969
"@types/oauth": "^0.9.2",
70-
"@types/sinon": "^10.0.16",
71-
"@typescript-eslint/eslint-plugin": "^6.6.0",
72-
"@typescript-eslint/parser": "^6.6.0",
70+
"@types/sinon": "^10.0.17",
71+
"@typescript-eslint/eslint-plugin": "^6.7.3",
72+
"@typescript-eslint/parser": "^6.7.3",
7373
"ava": "^5.3.1",
7474
"dotenv": "^16.3.1",
75-
"eslint": "^8.48.0",
75+
"eslint": "^8.50.0",
7676
"eslint-config-airbnb": "^19.0.4",
7777
"eslint-config-airbnb-typescript": "^17.1.0",
78-
"eslint-import-resolver-typescript": "^3.6.0",
78+
"eslint-import-resolver-typescript": "^3.6.1",
7979
"eslint-plugin-import": "^2.28.1",
8080
"prettier": "^3.0.3",
81-
"prettier-plugin-jsdoc": "^1.0.1",
82-
"sinon": "^15.2.0",
81+
"prettier-plugin-jsdoc": "^1.0.2",
82+
"sinon": "^16.0.0",
8383
"ts-node": "^10.9.1",
8484
"typedoc": "^0.25.1",
8585
"typedoc-plugin-extras": "^3.0.0",
8686
"typescript": "^5.2.2"
8787
},
8888
"dependencies": {
8989
"atlassian-jwt": "^2.0.2",
90-
"axios": "^1.5.0",
90+
"axios": "^1.5.1",
9191
"form-data": "^4.0.0",
9292
"oauth": "^0.10.0",
9393
"tslib": "^2.6.2"

src/version2/dashboards.ts

+56-15
Original file line numberDiff line numberDiff line change
@@ -55,27 +55,68 @@ export class Dashboards {
5555
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None.
5656
*/
5757
async createDashboard<T = Models.Dashboard>(
58-
parameters: Parameters.CreateDashboard | undefined,
58+
parameters: Parameters.CreateDashboard,
5959
callback: Callback<T>,
6060
): Promise<void>;
6161
/**
6262
* Creates a dashboard.
6363
*
6464
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None.
6565
*/
66-
async createDashboard<T = Models.Dashboard>(parameters?: Parameters.CreateDashboard, callback?: never): Promise<T>;
66+
async createDashboard<T = Models.Dashboard>(parameters: Parameters.CreateDashboard, callback?: never): Promise<T>;
6767
async createDashboard<T = Models.Dashboard>(
68-
parameters?: Parameters.CreateDashboard,
68+
parameters: Parameters.CreateDashboard,
6969
callback?: Callback<T>,
7070
): Promise<void | T> {
7171
const config: RequestConfig = {
7272
url: '/rest/api/2/dashboard',
7373
method: 'POST',
7474
data: {
75-
name: parameters?.name,
76-
description: parameters?.description,
77-
sharePermissions: parameters?.sharePermissions,
78-
editPermissions: parameters?.editPermissions,
75+
description: parameters.description,
76+
editPermissions: parameters.editPermissions,
77+
name: parameters.name,
78+
sharePermissions: parameters.sharePermissions,
79+
},
80+
};
81+
82+
return this.client.sendRequest(config, callback);
83+
}
84+
85+
/**
86+
* Bulk edit dashboards. Maximum number of dashboards to be edited at the same time is 100.
87+
*
88+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None
89+
*
90+
* The dashboards to be updated must be owned by the user, or the user must be an administrator.
91+
*/
92+
async bulkEditDashboards<T = Models.BulkEditShareableEntity>(
93+
parameters: Parameters.BulkEditDashboards,
94+
callback: Callback<T>,
95+
): Promise<void>;
96+
/**
97+
* Bulk edit dashboards. Maximum number of dashboards to be edited at the same time is 100.
98+
*
99+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None
100+
*
101+
* The dashboards to be updated must be owned by the user, or the user must be an administrator.
102+
*/
103+
async bulkEditDashboards<T = Models.BulkEditShareableEntity>(
104+
parameters: Parameters.BulkEditDashboards,
105+
callback?: never,
106+
): Promise<T>;
107+
async bulkEditDashboards<T = Models.BulkEditShareableEntity>(
108+
parameters: Parameters.BulkEditDashboards,
109+
callback?: Callback<T>,
110+
): Promise<void | T> {
111+
const config: RequestConfig = {
112+
url: '/rest/api/2/dashboard/bulk/edit',
113+
method: 'PUT',
114+
data: {
115+
action: parameters.action,
116+
changeOwnerDetails: parameters.changeOwnerDetails,
117+
entityIds: parameters.entityIds,
118+
extendAdminPermissions: parameters.extendAdminPermissions,
119+
permissionDetails: parameters.permissionDetails,
79120
},
80121
};
81122

@@ -247,12 +288,12 @@ export class Dashboards {
247288
url: `/rest/api/2/dashboard/${parameters.dashboardId}/gadget`,
248289
method: 'POST',
249290
data: {
250-
moduleKey: parameters.moduleKey,
251-
uri: parameters.uri,
252291
color: parameters.color,
292+
ignoreUriAndModuleKeyValidation: parameters.ignoreUriAndModuleKeyValidation,
293+
moduleKey: parameters.moduleKey,
253294
position: parameters.position,
254295
title: parameters.title,
255-
ignoreUriAndModuleKeyValidation: parameters.ignoreUriAndModuleKeyValidation,
296+
uri: parameters.uri,
256297
},
257298
};
258299

@@ -276,9 +317,9 @@ export class Dashboards {
276317
url: `/rest/api/2/dashboard/${parameters.dashboardId}/gadget/${parameters.gadgetId}`,
277318
method: 'PUT',
278319
data: {
279-
title: parameters.title,
280320
color: parameters.color,
281321
position: parameters.position,
322+
title: parameters.title,
282323
},
283324
};
284325

@@ -608,10 +649,10 @@ export class Dashboards {
608649
url: `/rest/api/2/dashboard/${parameters.id}`,
609650
method: 'PUT',
610651
data: {
611-
name: parameters.name,
612652
description: parameters.description,
613-
sharePermissions: parameters.sharePermissions,
614653
editPermissions: parameters.editPermissions,
654+
name: parameters.name,
655+
sharePermissions: parameters.sharePermissions,
615656
},
616657
};
617658

@@ -675,10 +716,10 @@ export class Dashboards {
675716
url: `/rest/api/2/dashboard/${parameters.id}/copy`,
676717
method: 'POST',
677718
data: {
678-
name: parameters.name,
679719
description: parameters.description,
680-
sharePermissions: parameters.sharePermissions,
681720
editPermissions: parameters.editPermissions,
721+
name: parameters.name,
722+
sharePermissions: parameters.sharePermissions,
682723
},
683724
};
684725

src/version2/filters.ts

+19-28
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ export class Filters {
99

1010
/**
1111
* @deprecated Returns all filters. Deprecated, use [Search for filters](#api-rest-api-2-filter-search-get) that
12-
* supports search and pagination.
13-
*
14-
* This operation can be accessed anonymously.
15-
*
12+
* supports search and pagination. This operation can be accessed anonymously.
1613
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None,
1714
* however, only the following filters are returned:
1815
*
@@ -29,10 +26,7 @@ export class Filters {
2926
): Promise<void>;
3027
/**
3128
* @deprecated Returns all filters. Deprecated, use [ Search for filters](#api-rest-api-2-filter-search-get) that
32-
* supports search and pagination.
33-
*
34-
* This operation can be accessed anonymously.
35-
*
29+
* supports search and pagination. This operation can be accessed anonymously.
3630
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None,
3731
* however, only the following filters are returned:
3832
*
@@ -63,20 +57,17 @@ export class Filters {
6357
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
6458
* Permission to access Jira.
6559
*/
66-
async createFilter<T = Models.Filter>(
67-
parameters: Parameters.CreateFilter | undefined,
68-
callback: Callback<T>,
69-
): Promise<void>;
60+
async createFilter<T = Models.Filter>(parameters: Parameters.CreateFilter, callback: Callback<T>): Promise<void>;
7061
/**
7162
* Creates a filter. The filter is shared according to the [default share scope](#api-rest-api-2-filter-post). The
7263
* filter is not selected as a favorite.
7364
*
7465
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
7566
* Permission to access Jira.
7667
*/
77-
async createFilter<T = Models.Filter>(parameters?: Parameters.CreateFilter, callback?: never): Promise<T>;
68+
async createFilter<T = Models.Filter>(parameters: Parameters.CreateFilter, callback?: never): Promise<T>;
7869
async createFilter<T = Models.Filter>(
79-
parameters?: Parameters.CreateFilter,
70+
parameters: Parameters.CreateFilter,
8071
callback?: Callback<T>,
8172
): Promise<void | T> {
8273
const config: RequestConfig = {
@@ -87,20 +78,20 @@ export class Filters {
8778
overrideSharePermissions: parameters?.overrideSharePermissions,
8879
},
8980
data: {
90-
self: parameters?.self,
91-
id: parameters?.id,
92-
name: parameters?.name,
93-
description: parameters?.description,
94-
owner: parameters?.owner,
95-
jql: parameters?.jql,
96-
viewUrl: parameters?.viewUrl,
97-
searchUrl: parameters?.searchUrl,
98-
favourite: parameters?.favourite,
99-
favouritedCount: parameters?.favouritedCount,
100-
sharePermissions: parameters?.sharePermissions,
101-
editPermissions: parameters?.editPermissions,
102-
sharedUsers: parameters?.sharedUsers,
103-
subscriptions: parameters?.subscriptions,
81+
description: parameters.description,
82+
editPermissions: parameters.editPermissions,
83+
favourite: parameters.favourite,
84+
favouritedCount: parameters.favouritedCount,
85+
id: parameters.id,
86+
jql: parameters.jql,
87+
name: parameters.name,
88+
owner: parameters.owner,
89+
searchUrl: parameters.searchUrl,
90+
self: parameters.self,
91+
sharePermissions: parameters.sharePermissions,
92+
sharedUsers: parameters.sharedUsers,
93+
subscriptions: parameters.subscriptions,
94+
viewUrl: parameters.viewUrl,
10495
},
10596
};
10697

src/version2/groups.ts

-4
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,15 @@ export class Groups {
1010
/**
1111
* @deprecated This operation is deprecated, use
1212
* [`group/member`](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-groups/#api-rest-api-2-group-member-get).
13-
*
1413
* Returns all users in a group.
15-
*
1614
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
1715
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
1816
*/
1917
async getGroup<T = Models.Group>(parameters: Parameters.GetGroup, callback: Callback<T>): Promise<void>;
2018
/**
2119
* @deprecated This operation is deprecated, use
2220
* [`group/member`](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-groups/#api-rest-api-2-group-member-get).
23-
*
2421
* Returns all users in a group.
25-
*
2622
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
2723
* _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg).
2824
*/

src/version2/instanceInformation.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@ import { Callback } from '../callback';
33
import { Client } from '../clients';
44
import { RequestConfig } from '../requestConfig';
55

6+
/** @deprecated Use {@link LicenseMetrics} */
67
export class InstanceInformation {
78
constructor(private client: Client) {}
89

910
/**
10-
* Returns licensing information about the Jira instance.
11-
*
12-
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None.
11+
* @deprecated Use {@link LicenseMetrics.getLicense}. Returns licensing information about the Jira instance.
12+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
13+
* None.
1314
*/
1415
async getLicense<T = Models.License>(callback: Callback<T>): Promise<void>;
1516
/**
16-
* Returns licensing information about the Jira instance.
17-
*
18-
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:** None.
17+
* @deprecated Use {@link LicenseMetrics.getLicense}. Returns licensing information about the Jira instance.
18+
* **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v2/intro/#permissions) required:**
19+
* None.
1920
*/
2021
async getLicense<T = Models.License>(callback?: never): Promise<T>;
2122
async getLicense<T = Models.License>(callback?: Callback<T>): Promise<void | T> {

0 commit comments

Comments
 (0)