Skip to content

Commit ff4d9ed

Browse files
1 parent 1c44b30 commit ff4d9ed

File tree

1,573 files changed

+6398
-3106
lines changed

Some content is hidden

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

1,573 files changed

+6398
-3106
lines changed

.github/workflows/ci.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ name: CI
22

33
on:
44
push:
5+
branches:
6+
- '**' # Runs on all branch pushes
7+
tags-ignore:
8+
- '**' # Ignore all tag pushes
59
repository_dispatch:
610
types: [ pr-approved ]
711

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Jira.js changelog
22

3+
## 5.1.0
4+
5+
- Version 2 Client
6+
- Add `UserNavProperties` API group
7+
- Add `ProjectTemplates` API group
8+
- Add `IssueCustomFieldAssociations` API group
9+
- `IssueSearch.searchForIssuesUsingJql` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearch` instead
10+
- `IssueSearch.searchForIssuesUsingJqlPost` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearchPost` instead
11+
- `IssueSearch.searchForIssuesIds` deprecated
12+
- Add `projectIds` property to `IssueFields.getFieldsPaginated` method
13+
- Version 3 Client
14+
- Add `UserNavProperties` API group
15+
- Add `ProjectTemplates` API group
16+
- Add `IssueCustomFieldAssociations` API group
17+
- `IssueSearch.searchForIssuesUsingJql` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearch` instead
18+
- `IssueSearch.searchForIssuesUsingJqlPost` deprecated. Use `IssueSearch.searchForIssuesUsingJqlEnhancedSearchPost` instead
19+
- `IssueSearch.searchForIssuesIds` deprecated
20+
- Add `projectIds` property to `IssueFields.getFieldsPaginated` method
21+
- Add `submitBulkUnwatch`, `submitBulkWatch` methods to `IssueBulkOperations` API group
22+
323
## 5.0.0
424

525
- Added ESM (ECMAScript Modules) support

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ Available groups:
227227
- [issues](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues)
228228
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-attachments/#api-group-issue-attachments)
229229
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comments/#api-group-issue-comments)
230+
- [issueCustomFieldAssociations](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-custom-field-associations/#api-group-issue-custom-field-associations)
230231
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
231232
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-comment-properties/#api-group-issue-comment-properties)
232233
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issue-fields/#api-group-issue-fields)
@@ -266,6 +267,7 @@ Available groups:
266267
- [plans](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-plans/#api-group-plans)
267268
- [prioritySchemes](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-priority-schemes/#api-group-priority-schemes)
268269
- [projects](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-projects/#api-group-projects)
270+
- [projectTemplates](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-templates/#api-group-project-templates)
269271
- [projectAvatars](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-avatars/#api-group-project-avatars)
270272
- [projectCategories](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-categories/#api-group-project-categories)
271273
- [projectClassificationLevels](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-project-classification-levels/#api-group-project-classification-levels)
@@ -290,6 +292,7 @@ Available groups:
290292
- [teamsInPlan](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-teams-in-plan/#api-group-teams-in-plan)
291293
- [timeTracking](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-time-tracking/#api-group-time-tracking)
292294
- [uiModificationsApps](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-ui-modifications--apps-/#api-group-ui-modifications--apps-)
295+
- [userNavProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-other-operations/#api-group-other-operations)
293296
- [users](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-users/#api-group-users)
294297
- [userProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-user-properties/#api-group-user-properties)
295298
- [userSearch](https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-user-search/#api-group-user-search)
@@ -325,6 +328,7 @@ Available groups:
325328
- [issueAttachments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-attachments/#api-group-issue-attachments)
326329
- [issueBulkOperations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-bulk-operations/#api-group-issue-bulk-operations)
327330
- [issueComments](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comments/#api-group-issue-comments)
331+
- [issueCustomFieldAssociations](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-associations/#api-group-issue-custom-field-associations)
328332
- [issueCustomFieldConfigurationApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-custom-field-configuration--apps-/#api-group-issue-custom-field-configuration--apps-)
329333
- [issueCommentProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-comment-properties/#api-group-issue-comment-properties)
330334
- [issueFields](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-fields/#api-group-issue-fields)
@@ -364,6 +368,7 @@ Available groups:
364368
- [plans](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-plans/#api-group-plans)
365369
- [prioritySchemes](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-priority-schemes/#api-group-priority-schemes)
366370
- [projects](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-group-projects)
371+
- [projectTemplates](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-templates/#api-group-project-templates)
367372
- [projectAvatars](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-avatars/#api-group-project-avatars)
368373
- [projectCategories](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-categories/#api-group-project-categories)
369374
- [projectClassificationLevels](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-project-classification-levels/#api-group-project-classification-levels)
@@ -389,6 +394,7 @@ Available groups:
389394
- [timeTracking](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-time-tracking/#api-group-time-tracking)
390395
- [uiModificationsApps](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-ui-modifications--apps-/#api-group-ui-modifications--apps-)
391396
- [users](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-users/#api-group-users)
397+
- [userNavProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-other-operations/#api-group-other-operations)
392398
- [userProperties](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-user-properties/#api-group-user-properties)
393399
- [userSearch](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-user-search/#api-group-user-search)
394400
- [webhooks](https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-webhooks/#api-group-webhooks)

eslint.config.js

Lines changed: 48 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,62 @@
1-
import js from "@eslint/js";
2-
import globals from "globals";
3-
import tseslint from "typescript-eslint";
4-
import { defineConfig } from "eslint/config";
1+
import js from '@eslint/js';
2+
import globals from 'globals';
3+
import tseslint from 'typescript-eslint';
4+
import { defineConfig } from 'eslint/config';
55
import stylisticJs from '@stylistic/eslint-plugin-js';
66
import stylisticTs from '@stylistic/eslint-plugin-ts';
77

88
export default defineConfig([
9-
{ files: ["**/*.{js,mjs,cjs,ts}"], plugins: { js }, extends: ["js/recommended"] },
10-
{ files: ["**/*.{js,mjs,cjs,ts}"], languageOptions: { globals: {...globals.browser, ...globals.node} } },
9+
{ files: ['**/*.{js,mjs,cjs,ts}'], plugins: { js }, extends: ['js/recommended'] },
10+
{ files: ['**/*.{js,mjs,cjs,ts}'], languageOptions: { globals: { ...globals.browser, ...globals.node } } },
1111
tseslint.configs.recommended,
1212
{
13+
languageOptions: {
14+
parserOptions: {
15+
project: './tsconfig.lint.json',
16+
projectService: true,
17+
tsconfigRootDir: import.meta.dirname,
18+
},
19+
},
1320
plugins: {
1421
'@stylistic/js': stylisticJs,
1522
'@stylistic/ts': stylisticTs,
1623
},
1724
rules: {
18-
'@stylistic/ts/indent': ['error', 2],
1925
'@stylistic/js/no-trailing-spaces': 'error',
26+
'@stylistic/ts/indent': ['error', 2],
27+
'@stylistic/ts/lines-between-class-members': [
28+
'error',
29+
'always',
30+
{
31+
exceptAfterOverload: true,
32+
exceptAfterSingleLine: true,
33+
},
34+
],
35+
'@stylistic/ts/padding-line-between-statements': [
36+
'error',
37+
// Return statements
38+
{ blankLine: 'always', prev: '*', next: 'return' },
39+
// Import statements
40+
{ blankLine: 'always', prev: 'import', next: '*' },
41+
{ blankLine: 'any', prev: 'import', next: 'import' },
42+
],
2043
'@stylistic/ts/quotes': ['error', 'single'],
21-
'@typescript-eslint/no-empty-object-type': 'off', // todo fix it
22-
}
23-
}
44+
'@stylistic/ts/semi': ['error', 'always'],
45+
'@typescript-eslint/consistent-type-imports': [
46+
'error',
47+
{
48+
prefer: 'type-imports',
49+
fixStyle: 'separate-type-imports',
50+
},
51+
],
52+
'@typescript-eslint/no-empty-object-type': 'off',
53+
'@typescript-eslint/no-redundant-type-constituents': 'off', // todo fix it
54+
'@typescript-eslint/no-unnecessary-condition': 'error', // todo fix it
55+
'@typescript-eslint/no-unsafe-argument': 'off', // todo fix it
56+
'@typescript-eslint/no-unsafe-assignment': 'off', // todo fix it
57+
'@typescript-eslint/no-unsafe-call': 'off', // todo fix it
58+
'@typescript-eslint/no-unsafe-member-access': 'off',
59+
'@typescript-eslint/prefer-optional-chain': 'error',
60+
},
61+
},
2462
]);

package.json

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "jira.js",
3-
"version": "5.0.0",
3+
"version": "5.1.0",
44
"description": "A comprehensive JavaScript/TypeScript library designed for both Node.JS and browsers, facilitating seamless interaction with the Atlassian Jira API.",
55
"repository": "https://github.com/MrRefactoring/jira.js.git",
66
"homepage": "https://mrrefactoring.github.io/jira.js",
@@ -47,9 +47,8 @@
4747
"build:src": "rollup -c rollup.config.ts --configPlugin typescript",
4848
"build:tests": "tsc --project tests/tsconfig.json",
4949
"prettier": "prettier --write src",
50-
"lint": "pnpm run lint:tests && pnpm run lint:examples && pnpm run lint:src:agile && pnpm run lint:src:clients && pnpm run lint:src:services && pnpm run lint:src:version2 && pnpm run lint:src:version3 && pnpm run lint:src:files",
50+
"lint": "pnpm run lint:tests && pnpm run lint:src:agile && pnpm run lint:src:clients && pnpm run lint:src:services && pnpm run lint:src:version2 && pnpm run lint:src:version3 && pnpm run lint:src:files",
5151
"lint:tests": "pnpm run lint:base tests",
52-
"lint:examples": "pnpm run lint:base examples",
5352
"lint:src:agile": "pnpm run lint:base src/agile",
5453
"lint:src:clients": "pnpm run lint:base src/clients",
5554
"lint:src:services": "pnpm run lint:base src/services",
@@ -58,12 +57,12 @@
5857
"lint:src:serviceDesk": "pnpm run lint:base src/serviceDesk",
5958
"lint:src:files": "pnpm run lint:base src/*.ts",
6059
"lint:base": "eslint --ext .ts",
61-
"lint:fix": "pnpm run lint:tests --fix && pnpm run lint:examples --fix && pnpm run lint:src:agile --fix && pnpm run lint:src:clients --fix && pnpm run lint:src:services --fix && pnpm run lint:src:version2 --fix && pnpm run lint:src:version3 --fix && pnpm run lint:src:serviceDesk --fix && pnpm run lint:src:files --fix",
60+
"lint:fix": "pnpm run lint:tests --fix && pnpm run lint:src:agile --fix && pnpm run lint:src:clients --fix && pnpm run lint:src:services --fix && pnpm run lint:src:version2 --fix && pnpm run lint:src:version3 --fix && pnpm run lint:src:serviceDesk --fix && pnpm run lint:src:files --fix",
6261
"doc": "typedoc --name \"Jira.js - Jira Cloud API library\" --out docs ./src/index.ts --favicon https://bad37fb3-cb50-4e0b-9035-a3e09e8afb3b.selstorage.ru/jira.js%2Ffavicon.svg",
6362
"test": "pnpm run build:tests && pnpm run test:unit && pnpm run test:integration",
6463
"test:unit": "vitest run tests/unit --minWorkers=1 --maxWorkers=8 --sequence.concurrent",
6564
"test:integration": "vitest run tests/integration --bail=1 --no-file-parallelism --max-concurrency 1 -c vitest.config.mts --hookTimeout 100000 --testTimeout 100000",
66-
"replace:all": "pnpm run replace:permissions:version2 && pnpm run replace:permissions:version3 && pnpm run replace:pagination:version2 && pnpm run replace:pagination:version3 && pnpm run replace:async:version2 && pnpm run replace:async:version3 && pnpm run replace:expansion:version2 && pnpm run replace:expansion:version3 && pnpm run replace:ordering:version2 && pnpm run replace:ordering:version3 && pnpm run replace:groupMember:version2 && pnpm run replace:workflowPaginated:version2 && pnpm run replace:attachment:serviceDesk && pnpm run replace:priority:version3 && pnpm run replace:projectAvatar:version3 && pnpm run replace:issueType:version3",
65+
"replace:all": "pnpm run replace:fixExpansionMarkup && pnpm run replace:permissions:version2 && pnpm run replace:permissions:version3 && pnpm run replace:pagination:version2 && pnpm run replace:pagination:version3 && pnpm run replace:async:version2 && pnpm run replace:async:version3 && pnpm run replace:expansion:version2 && pnpm run replace:expansion:version3 && pnpm run replace:ordering:version2 && pnpm run replace:ordering:version3 && pnpm run replace:groupMember:version2 && pnpm run replace:workflowPaginated:version2 && pnpm run replace:attachment:serviceDesk && pnpm run replace:priority:version3 && pnpm run replace:projectAvatar:version3 && pnpm run replace:issueType:version3 && pnpm run replace:issueType:version2 && pnpm run replace:projectAvatar:version2 && pnpm run replace:priority:version2 && pnpm run replace:projectCreate:agile && pnpm run replace:filterCreate:agile",
6766
"replace:permissions:version2": "grep -rl \"(#permissions)\" ./src/version2 | xargs sed -i '' 's/(#permissions)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/intro\\/#permissions)/g'",
6867
"replace:permissions:version3": "grep -rl \"(#permissions)\" ./src/version3 | xargs sed -i '' 's/(#permissions)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/intro\\/#permissions)/g'",
6968
"replace:pagination:version2": "grep -rl \"(#pagination)\" ./src/version2 | xargs sed -i '' 's/(#pagination)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/intro\\/#pagination)/g'",
@@ -80,15 +79,23 @@
8079
"replace:priority:version3": "grep -rl \"(#api-rest-api-3-priority-id-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-priority-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-issue-priorities\\/#api-rest-api-3-priority-id-put)/g'",
8180
"replace:projectAvatar:version3": "grep -rl \"(#api-rest-api-3-project-projectIdOrKey-avatar-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-project-projectIdOrKey-avatar-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-project-avatars\\/#api-rest-api-3-project-projectidorkey-avatar-put)/g'",
8281
"replace:issueType:version3": "grep -rl \"(#api-rest-api-3-issuetype-id-put)\" ./src/version3 | xargs sed -i '' 's/(#api-rest-api-3-issuetype-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-issue-types\\/#api-rest-api-3-issuetype-id-put)/g'",
83-
"code:formatting": "pnpm run replace:all && pnpm run prettier && pnpm run lint:fix"
82+
"replace:issueType:version2": "grep -rl \"(#api-rest-api-2-issuetype-id-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-issuetype-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-issue-types\\/#api-rest-api-2-issuetype-id-put)/g'",
83+
"replace:projectAvatar:version2": "grep -rl \"(#api-rest-api-2-project-projectIdOrKey-avatar-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-project-projectIdOrKey-avatar-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-project-avatars\\/#api-rest-api-2-project-projectidorkey-avatar-put)/g'",
84+
"replace:priority:version2": "grep -rl \"(#api-rest-api-2-priority-id-put)\" ./src/version2 | xargs sed -i '' 's/(#api-rest-api-2-priority-id-put)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v2\\/api-group-issue-priorities\\/#api-rest-api-2-priority-id-put)/g'",
85+
"replace:projectCreate:agile": "grep -rl \"(#api-rest-api-3-project-post)\" ./src/agile | xargs sed -i '' 's/(#api-rest-api-3-project-post)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-projects\\/#api-rest-api-3-project-post)/g'",
86+
"replace:filterCreate:agile": "grep -rl \"(#api-rest-api-3-filter-post)\" ./src/agile | xargs sed -i '' 's/(#api-rest-api-3-filter-post)/(https:\\/\\/developer.atlassian.com\\/cloud\\/jira\\/platform\\/rest\\/v3\\/api-group-filters\\/#api-rest-api-3-filter-post)/g'",
87+
"replace:fixExpansionMarkup": "grep -rl \"(em>#expansion)\" ./src | xargs sed -i '' 's/(em>#expansion)/(#expansion)/g'",
88+
"replace:fixCodeBlockSemicolons": "grep -rl '```;' ./src | xargs sed -i '' 's/```;/```/g'",
89+
"code:formatting": "pnpm run replace:all && pnpm run prettier && pnpm run lint:fix && pnpm run replace:fixCodeBlockSemicolons"
8490
},
8591
"dependencies": {
8692
"axios": "^1.9.0",
8793
"mime": "^4.0.7",
8894
"zod": "^3.24.3"
8995
},
9096
"devDependencies": {
91-
"@eslint/js": "^9.25.1",
97+
"@eslint/js": "^9.26.0",
98+
"@rollup/plugin-alias": "^5.1.1",
9299
"@rollup/plugin-commonjs": "^28.0.3",
93100
"@rollup/plugin-node-resolve": "^16.0.1",
94101
"@rollup/plugin-typescript": "^12.1.2",
@@ -97,7 +104,7 @@
97104
"@types/node": "^20.17.32",
98105
"@types/sinon": "^17.0.4",
99106
"dotenv": "^16.5.0",
100-
"eslint": "^9.25.1",
107+
"eslint": "^9.26.0",
101108
"globals": "^16.0.0",
102109
"prettier": "^3.5.3",
103110
"prettier-plugin-jsdoc": "^1.3.2",

0 commit comments

Comments
 (0)