mcp-jira-cloud 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,172 +1,280 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [2.1.0] - 2026-02-15
9
-
10
- ### Added
11
-
12
- - **Phase 1: Core Issue CRUD** (14 new tools)
13
- - `jira_create_issue` - Create new issues with full field support
14
- - `jira_update_issue` - Update issues with partial field support
15
- - `jira_delete_issue` - Delete issues with safety confirmation
16
- - `jira_assign_issue` - Assign/unassign users
17
- - `jira_get_transitions` - Get available workflow transitions
18
- - `jira_transition_issue` - Move issues through workflow
19
- - `jira_get_issue_types` - Get available issue types
20
- - `jira_get_priorities` - Get priority levels
21
- - `jira_get_statuses` - Get available statuses
22
- - `jira_get_components` - Get project components
23
- - `jira_get_versions` - Get project versions
24
- - `jira_search_users` - Search for Jira users
25
- - `jira_get_changelog` - Get issue history
26
-
27
- - **Phase 2: Agile Tools** (16 new tools)
28
- - `jira_get_boards` - List Scrum/Kanban boards
29
- - `jira_get_board` - Get board details
30
- - `jira_get_board_configuration` - Get board configuration
31
- - `jira_get_sprints` - List sprints for a board
32
- - `jira_get_sprint` - Get sprint details
33
- - `jira_create_sprint` - Create new sprints
34
- - `jira_update_sprint` - Update sprint details
35
- - `jira_start_sprint` - Start a future sprint
36
- - `jira_complete_sprint` - Complete an active sprint
37
- - `jira_delete_sprint` - Delete sprints with confirmation
38
- - `jira_get_sprint_issues` - Get issues in a sprint
39
- - `jira_move_issues_to_sprint` - Move issues to a sprint
40
- - `jira_get_backlog_issues` - Get backlog issues
41
- - `jira_move_issues_to_backlog` - Move issues to backlog
42
- - `jira_rank_issues` - Change issue ranking
43
-
44
- - **Phase 3: Issue Relationships** (11 new tools)
45
- - `jira_get_issue_links` - Get linked issues
46
- - `jira_create_issue_link` - Link issues together
47
- - `jira_delete_issue_link` - Remove issue links
48
- - `jira_get_link_types` - Get available link types
49
- - `jira_get_watchers` - Get issue watchers
50
- - `jira_add_watcher` - Add watchers to issues
51
- - `jira_remove_watcher` - Remove watchers
52
- - `jira_get_votes` - Get issue vote count
53
- - `jira_add_vote` - Vote for an issue
54
- - `jira_remove_vote` - Remove vote from issue
55
-
56
- - **Phase 4: Attachments** (2 new tools)
57
- - `jira_get_attachments` - Get issue attachments
58
- - `jira_delete_attachment` - Delete attachments
59
-
60
- - **Phase 5: Epic Management** (4 new tools)
61
- - `jira_get_epics` - Get epics for a board
62
- - `jira_get_epic_issues` - Get issues in an epic
63
- - `jira_move_issues_to_epic` - Move issues to epic
64
- - `jira_remove_issues_from_epic` - Remove issues from epic
65
-
66
- - **Phase 6: Fields and Metadata** (3 new tools)
67
- - `jira_get_fields` - Get all available fields
68
- - `jira_get_create_metadata` - Get metadata for creating issues
69
- - `jira_get_edit_metadata` - Get metadata for editing issues
70
-
71
- - **Phase 7: Filters** (7 new tools)
72
- - `jira_get_filters` - Search saved filters
73
- - `jira_get_filter` - Get filter details
74
- - `jira_create_filter` - Create new filters
75
- - `jira_update_filter` - Update existing filters
76
- - `jira_delete_filter` - Delete filters with confirmation
77
- - `jira_get_my_filters` - Get filters owned by current user
78
- - `jira_get_favourite_filters` - Get favourite filters
79
-
80
- - **Phase 8: Bulk Operations** (4 new tools)
81
- - `jira_bulk_edit_issues` - Bulk edit multiple issues at once
82
- - `jira_bulk_watch_issues` - Add watchers to multiple issues
83
- - `jira_bulk_unwatch_issues` - Remove watchers from multiple issues
84
- - `jira_get_bulk_operation_progress` - Track async bulk operation progress
85
-
86
- - **Phase 9: Dashboard Management** (5 new tools)
87
- - `jira_get_dashboards` - Get dashboards (favourite/owned)
88
- - `jira_search_dashboards` - Search dashboards by criteria
89
- - `jira_get_dashboard` - Get dashboard details
90
- - `jira_get_dashboard_gadgets` - Get gadgets on a dashboard
91
- - `jira_add_dashboard_gadget` - Add a gadget to a dashboard
92
-
93
- - **Phase 10: Enhanced Attachments** (3 new tools)
94
- - `jira_upload_attachment` - Upload files to issues
95
- - `jira_get_attachment_metadata` - Get attachment metadata
96
- - `jira_get_attachment_content` - Get attachment download URL
97
-
98
- - **Phase 11: Labels Management** (2 new tools)
99
- - `jira_get_all_labels` - Get all labels in the instance
100
- - `jira_add_labels` - Add, set, or remove labels on issues
101
-
102
- - **Phase 12: JQL Tools** (3 new tools)
103
- - `jira_autocomplete_jql` - Get JQL autocomplete suggestions
104
- - `jira_validate_jql` - Validate JQL query syntax
105
- - `jira_parse_jql` - Parse JQL into AST structure
106
-
107
- - **Phase 13: Time Tracking Reports** (4 new tools)
108
- - `jira_get_updated_worklog_ids` - Get worklog IDs created/updated since a date
109
- - `jira_get_worklogs_by_ids` - Get full worklog details by IDs
110
- - `jira_get_user_worklogs` - Get all worklogs for a user in a date range with summary
111
- - `jira_get_deleted_worklog_ids` - Get IDs of deleted worklogs for audit
112
-
113
- ### Changed
114
-
115
- - Version bumped to 2.0.0 (major feature release)
116
- - Helper functions for field building (`buildIssueFields`, `buildUpdateOperations`)
117
- - Improved TypeScript strict mode compliance
118
- - Total tools: 78 (up from 18)
119
-
120
- ---
121
-
122
- ## [1.0.0] - 2026-02-15
123
-
124
- ### Added
125
-
126
- - Initial release
127
- - **Authentication**
128
- - Basic Auth support (email + API token)
129
- - OAuth 2.0 support with automatic token refresh
130
- - Keytar integration for secure credential storage
131
- - Multiple authentication status tools
132
-
133
- - **Issue Management**
134
- - `jira_get_issue` - Get full issue details
135
- - `jira_get_issue_summary` - Get issue summary with acceptance criteria
136
- - `jira_search_issues` - Search with JQL (full results)
137
- - `jira_search_issues_summary` - Search with minimal fields
138
- - `jira_get_my_open_issues` - Get current user's open tickets
139
- - `jira_resolve` - Smart routing for common intents
140
-
141
- - **Comments**
142
- - `jira_get_issue_comments` - Retrieve issue comments
143
- - `jira_add_comment` - Add comments to issues
144
-
145
- - **Work Logs**
146
- - `jira_add_worklog` - Log time spent on issues
147
- - `jira_get_worklogs` - Retrieve work logs from issues
148
-
149
- - **Projects**
150
- - `jira_list_projects` - List accessible projects
151
- - `jira_get_project` - Get project details
152
-
153
- - **User**
154
- - `jira_whoami` - Get current user profile
155
-
156
- ### Security
157
-
158
- - Credentials stored securely via Keytar
159
- - `.gitignore` and `.npmignore` configured to protect sensitive data
160
- - OAuth tokens auto-refresh before expiration
161
-
162
- ---
163
-
164
- ## [Unreleased]
165
-
166
- ### Planned
167
-
168
- - Webhook integration
169
- - Burndown chart data
170
- - Release management
171
- - Custom field management
172
- - Team workload reports
1
+ ## [3.0.0](https://github.com/tezaswi7222/jira-mcp/compare/v2.0.5...v3.0.0) (2026-02-17)
2
+
3
+ ### BREAKING CHANGES
4
+
5
+ * The following tools have been removed to prevent accidental data loss:
6
+ - jira_delete_issue (permanent issue deletion)
7
+ - jira_delete_sprint (sprint deletion)
8
+ - jira_delete_attachment (attachment deletion)
9
+ - jira_delete_filter (filter deletion)
10
+ - jira_delete_issue_link (link removal)
11
+
12
+ Users requiring delete functionality should use the Jira web interface.
13
+ Total tools reduced from 78 to 73.
14
+
15
+ Updated documentation:
16
+ - README.md: Updated tool counts and removed deleted tool references
17
+ - CHANGELOG.md: Added [Unreleased] section documenting removals
18
+ - package.json: Updated description with new tool count
19
+
20
+ ### Features
21
+
22
+ * add Phase 13 Time Tracking Reports (78 tools) - jira_get_user_worklogs for user worklog reports by date range ([878ea04](https://github.com/tezaswi7222/jira-mcp/commit/878ea042967f601fd0795963e7df01fa8e1143f3))
23
+ * remove destructive delete tools for safety ([ad40090](https://github.com/tezaswi7222/jira-mcp/commit/ad400900792f13a95323ed85bb1a727bd0dd5c0d))
24
+
25
+ ### 🐛 Bug Fixes
26
+
27
+ * add semantic-release plugins to devDependencies ([1955510](https://github.com/tezaswi7222/jira-mcp/commit/19555101284852b7a98f92d826b71fb3c37fb931))
28
+ * **ci:** remove conflicting npm scripts and fix git credentials ([79240ee](https://github.com/tezaswi7222/jira-mcp/commit/79240eef7b0a7e0c117c94c6ab80136a8a7df95a))
29
+ * **ci:** use deploy key for branch protection bypass ([37b4af8](https://github.com/tezaswi7222/jira-mcp/commit/37b4af83efcd29f067db8094f793dae6716bab5f))
30
+ * **ci:** use GH_ACTION_TOKEN PAT for branch protection bypass ([f46ecdd](https://github.com/tezaswi7222/jira-mcp/commit/f46ecdd8030c4668f02942408200e2f41d545606))
31
+ * update deprecated createmeta API and patch security vulnerabilities ([3a98dd0](https://github.com/tezaswi7222/jira-mcp/commit/3a98dd01059b41bb86f4f8467ea064e37a31d093))
32
+
33
+ # Changelog
34
+
35
+ All notable changes to this project will be documented in this file.
36
+
37
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
38
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
39
+
40
+ ## [Unreleased]
41
+
42
+ ### Removed
43
+
44
+ - **BREAKING CHANGE: Destructive Tools Removed for Safety**
45
+ - `jira_delete_issue` - Permanent issue deletion (use Jira web interface)
46
+ - `jira_delete_sprint` - Sprint deletion (use Jira web interface)
47
+ - `jira_delete_attachment` - Attachment deletion (use Jira web interface)
48
+ - `jira_delete_filter` - Filter deletion (use Jira web interface)
49
+ - `jira_delete_issue_link` - Issue link removal (use Jira web interface)
50
+
51
+ ### Changed
52
+
53
+ - Total tool count reduced from 78 to 73 tools
54
+ - Improved safety by removing all destructive operations
55
+
56
+ ### Added
57
+
58
+ - **CI/CD: Automated Releases with semantic-release**
59
+ - Automatic version bumping based on conventional commits
60
+ - Auto-generated CHANGELOG from commit messages
61
+ - GitHub releases created automatically
62
+ - npm publishing on every release
63
+
64
+ ## [2.2.1] - 2026-02-15
65
+
66
+ ### Added
67
+
68
+ - **Phase 14: Code Quality & Security Hardening**
69
+ - Comprehensive codebase audit for deprecated APIs and best practices
70
+ - Migrated all API endpoints to Jira REST API v3 (latest stable)
71
+ - Verified Jira Agile API v1.0 compliance for all sprint/board operations
72
+ - Conducted full security vulnerability assessment
73
+
74
+ ### Fixed
75
+
76
+ - **Deprecated API Migration**: Updated `jira_get_create_metadata` tool to use modern non-deprecated endpoints
77
+ - Replaced deprecated `GET /rest/api/3/issue/createmeta` with:
78
+ - `GET /rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes` - Get available issue types
79
+ - `GET /rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}` - Get field metadata
80
+ - Now requires `projectIdOrKey` parameter (breaking change from optional `projectKeys` array)
81
+ - Added pagination support with `startAt` and `maxResults` parameters
82
+
83
+ ### Security
84
+
85
+ - **Dependency Updates**: Patched critical security vulnerabilities
86
+ - Updated axios to fix HIGH severity DoS vulnerability (CVE in versions ≤1.13.4) - prototype pollution via `__proto__`
87
+ - Updated qs to fix LOW severity arrayLimit bypass vulnerability (versions 6.7.0-6.14.1)
88
+ - All 166 packages now pass security audit with 0 vulnerabilities
89
+
90
+ ### Verified
91
+
92
+ - **API Modernisation Audit Results**:
93
+ - All 78 tools use Jira REST API v3 (`/rest/api/3/`)
94
+ - All Agile tools use Jira Agile API v1.0 (`/rest/agile/1.0/`)
95
+ - OAuth 2.0 (3LO) and Basic Auth both fully supported
96
+ - Secure credential storage via keytar (OS-level encryption)
97
+ - ✅ Input validation via Zod v4 on all tool parameters
98
+ - Consistent error handling across all endpoints
99
+ - URL encoding applied to all dynamic path parameters
100
+
101
+ ## [2.2.0] - 2026-02-15
102
+
103
+ ### Added
104
+
105
+ - **Phase 13: Time Tracking Reports** (4 new tools)
106
+ - `jira_get_updated_worklog_ids` - Get worklog IDs updated since a timestamp (for efficient sync)
107
+ - `jira_get_worklogs_by_ids` - Bulk fetch worklogs by their IDs (up to 1000 at once)
108
+ - `jira_get_user_worklogs` - Get all worklogs for a user within a date range with automatic JQL and pagination
109
+ - `jira_get_deleted_worklog_ids` - Get worklog IDs that have been deleted since a timestamp
110
+
111
+ ### Changed
112
+
113
+ - Total tool count now at 78 tools across 13 phases
114
+ - Enhanced time tracking capabilities for better reporting and analysis
115
+
116
+ ## [2.1.0] - 2026-02-15
117
+
118
+ ### Added
119
+
120
+ - **Phase 1: Core Issue CRUD** (14 new tools)
121
+ - `jira_create_issue` - Create new issues with full field support
122
+ - `jira_update_issue` - Update issues with partial field support
123
+ - `jira_delete_issue` - Delete issues with safety confirmation
124
+ - `jira_assign_issue` - Assign/unassign users
125
+ - `jira_get_transitions` - Get available workflow transitions
126
+ - `jira_transition_issue` - Move issues through workflow
127
+ - `jira_get_issue_types` - Get available issue types
128
+ - `jira_get_priorities` - Get priority levels
129
+ - `jira_get_statuses` - Get available statuses
130
+ - `jira_get_components` - Get project components
131
+ - `jira_get_versions` - Get project versions
132
+ - `jira_search_users` - Search for Jira users
133
+ - `jira_get_changelog` - Get issue history
134
+
135
+ - **Phase 2: Agile Tools** (16 new tools)
136
+ - `jira_get_boards` - List Scrum/Kanban boards
137
+ - `jira_get_board` - Get board details
138
+ - `jira_get_board_configuration` - Get board configuration
139
+ - `jira_get_sprints` - List sprints for a board
140
+ - `jira_get_sprint` - Get sprint details
141
+ - `jira_create_sprint` - Create new sprints
142
+ - `jira_update_sprint` - Update sprint details
143
+ - `jira_start_sprint` - Start a future sprint
144
+ - `jira_complete_sprint` - Complete an active sprint
145
+ - `jira_delete_sprint` - Delete sprints with confirmation
146
+ - `jira_get_sprint_issues` - Get issues in a sprint
147
+ - `jira_move_issues_to_sprint` - Move issues to a sprint
148
+ - `jira_get_backlog_issues` - Get backlog issues
149
+ - `jira_move_issues_to_backlog` - Move issues to backlog
150
+ - `jira_rank_issues` - Change issue ranking
151
+
152
+ - **Phase 3: Issue Relationships** (11 new tools)
153
+ - `jira_get_issue_links` - Get linked issues
154
+ - `jira_create_issue_link` - Link issues together
155
+ - `jira_delete_issue_link` - Remove issue links
156
+ - `jira_get_link_types` - Get available link types
157
+ - `jira_get_watchers` - Get issue watchers
158
+ - `jira_add_watcher` - Add watchers to issues
159
+ - `jira_remove_watcher` - Remove watchers
160
+ - `jira_get_votes` - Get issue vote count
161
+ - `jira_add_vote` - Vote for an issue
162
+ - `jira_remove_vote` - Remove vote from issue
163
+
164
+ - **Phase 4: Attachments** (2 new tools)
165
+ - `jira_get_attachments` - Get issue attachments
166
+ - `jira_delete_attachment` - Delete attachments
167
+
168
+ - **Phase 5: Epic Management** (4 new tools)
169
+ - `jira_get_epics` - Get epics for a board
170
+ - `jira_get_epic_issues` - Get issues in an epic
171
+ - `jira_move_issues_to_epic` - Move issues to epic
172
+ - `jira_remove_issues_from_epic` - Remove issues from epic
173
+
174
+ - **Phase 6: Fields and Metadata** (3 new tools)
175
+ - `jira_get_fields` - Get all available fields
176
+ - `jira_get_create_metadata` - Get metadata for creating issues
177
+ - `jira_get_edit_metadata` - Get metadata for editing issues
178
+
179
+ - **Phase 7: Filters** (7 new tools)
180
+ - `jira_get_filters` - Search saved filters
181
+ - `jira_get_filter` - Get filter details
182
+ - `jira_create_filter` - Create new filters
183
+ - `jira_update_filter` - Update existing filters
184
+ - `jira_delete_filter` - Delete filters with confirmation
185
+ - `jira_get_my_filters` - Get filters owned by current user
186
+ - `jira_get_favourite_filters` - Get favourite filters
187
+
188
+ - **Phase 8: Bulk Operations** (4 new tools)
189
+ - `jira_bulk_edit_issues` - Bulk edit multiple issues at once
190
+ - `jira_bulk_watch_issues` - Add watchers to multiple issues
191
+ - `jira_bulk_unwatch_issues` - Remove watchers from multiple issues
192
+ - `jira_get_bulk_operation_progress` - Track async bulk operation progress
193
+
194
+ - **Phase 9: Dashboard Management** (5 new tools)
195
+ - `jira_get_dashboards` - Get dashboards (favourite/owned)
196
+ - `jira_search_dashboards` - Search dashboards by criteria
197
+ - `jira_get_dashboard` - Get dashboard details
198
+ - `jira_get_dashboard_gadgets` - Get gadgets on a dashboard
199
+ - `jira_add_dashboard_gadget` - Add a gadget to a dashboard
200
+
201
+ - **Phase 10: Enhanced Attachments** (3 new tools)
202
+ - `jira_upload_attachment` - Upload files to issues
203
+ - `jira_get_attachment_metadata` - Get attachment metadata
204
+ - `jira_get_attachment_content` - Get attachment download URL
205
+
206
+ - **Phase 11: Labels Management** (2 new tools)
207
+ - `jira_get_all_labels` - Get all labels in the instance
208
+ - `jira_add_labels` - Add, set, or remove labels on issues
209
+
210
+ - **Phase 12: JQL Tools** (3 new tools)
211
+ - `jira_autocomplete_jql` - Get JQL autocomplete suggestions
212
+ - `jira_validate_jql` - Validate JQL query syntax
213
+ - `jira_parse_jql` - Parse JQL into AST structure
214
+
215
+ - **Phase 13: Time Tracking Reports** (4 new tools)
216
+ - `jira_get_updated_worklog_ids` - Get worklog IDs created/updated since a date
217
+ - `jira_get_worklogs_by_ids` - Get full worklog details by IDs
218
+ - `jira_get_user_worklogs` - Get all worklogs for a user in a date range with summary
219
+ - `jira_get_deleted_worklog_ids` - Get IDs of deleted worklogs for audit
220
+
221
+ ### Changed
222
+
223
+ - Version bumped to 2.0.0 (major feature release)
224
+ - Helper functions for field building (`buildIssueFields`, `buildUpdateOperations`)
225
+ - Improved TypeScript strict mode compliance
226
+ - Total tools: 78 (up from 18)
227
+
228
+ ---
229
+
230
+ ## [1.0.0] - 2026-02-15
231
+
232
+ ### Added
233
+
234
+ - Initial release
235
+ - **Authentication**
236
+ - Basic Auth support (email + API token)
237
+ - OAuth 2.0 support with automatic token refresh
238
+ - Keytar integration for secure credential storage
239
+ - Multiple authentication status tools
240
+
241
+ - **Issue Management**
242
+ - `jira_get_issue` - Get full issue details
243
+ - `jira_get_issue_summary` - Get issue summary with acceptance criteria
244
+ - `jira_search_issues` - Search with JQL (full results)
245
+ - `jira_search_issues_summary` - Search with minimal fields
246
+ - `jira_get_my_open_issues` - Get current user's open tickets
247
+ - `jira_resolve` - Smart routing for common intents
248
+
249
+ - **Comments**
250
+ - `jira_get_issue_comments` - Retrieve issue comments
251
+ - `jira_add_comment` - Add comments to issues
252
+
253
+ - **Work Logs**
254
+ - `jira_add_worklog` - Log time spent on issues
255
+ - `jira_get_worklogs` - Retrieve work logs from issues
256
+
257
+ - **Projects**
258
+ - `jira_list_projects` - List accessible projects
259
+ - `jira_get_project` - Get project details
260
+
261
+ - **User**
262
+ - `jira_whoami` - Get current user profile
263
+
264
+ ### Security
265
+
266
+ - Credentials stored securely via Keytar
267
+ - `.gitignore` and `.npmignore` configured to protect sensitive data
268
+ - OAuth tokens auto-refresh before expiration
269
+
270
+ ---
271
+
272
+ ## [Unreleased]
273
+
274
+ ### Planned
275
+
276
+ - Webhook integration
277
+ - Burndown chart data
278
+ - Release management
279
+ - Custom field management
280
+ - Team workload reports
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Tezaswi Raj (github: tezaswi7222)
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Tezaswi Raj (github: tezaswi7222)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.