jirallm 0.1.1 → 0.3.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.
Files changed (266) hide show
  1. package/README.md +75 -0
  2. package/dist/cli/commands/assign.d.ts +9 -0
  3. package/dist/cli/commands/assign.d.ts.map +1 -0
  4. package/dist/cli/commands/assign.js +37 -0
  5. package/dist/cli/commands/assign.js.map +1 -0
  6. package/dist/cli/commands/assign.test.d.ts +2 -0
  7. package/dist/cli/commands/assign.test.d.ts.map +1 -0
  8. package/dist/cli/commands/assign.test.js +69 -0
  9. package/dist/cli/commands/assign.test.js.map +1 -0
  10. package/dist/cli/commands/attach.d.ts +16 -0
  11. package/dist/cli/commands/attach.d.ts.map +1 -0
  12. package/dist/cli/commands/attach.js +52 -0
  13. package/dist/cli/commands/attach.js.map +1 -0
  14. package/dist/cli/commands/attach.test.d.ts +2 -0
  15. package/dist/cli/commands/attach.test.d.ts.map +1 -0
  16. package/dist/cli/commands/attach.test.js +92 -0
  17. package/dist/cli/commands/attach.test.js.map +1 -0
  18. package/dist/cli/commands/board.d.ts +10 -0
  19. package/dist/cli/commands/board.d.ts.map +1 -0
  20. package/dist/cli/commands/board.js +54 -0
  21. package/dist/cli/commands/board.js.map +1 -0
  22. package/dist/cli/commands/boards.d.ts +11 -0
  23. package/dist/cli/commands/boards.d.ts.map +1 -0
  24. package/dist/cli/commands/boards.js +27 -0
  25. package/dist/cli/commands/boards.js.map +1 -0
  26. package/dist/cli/commands/boards.test.d.ts +2 -0
  27. package/dist/cli/commands/boards.test.d.ts.map +1 -0
  28. package/dist/cli/commands/boards.test.js +80 -0
  29. package/dist/cli/commands/boards.test.js.map +1 -0
  30. package/dist/cli/commands/comment.d.ts +15 -0
  31. package/dist/cli/commands/comment.d.ts.map +1 -0
  32. package/dist/cli/commands/comment.js +61 -0
  33. package/dist/cli/commands/comment.js.map +1 -0
  34. package/dist/cli/commands/components.d.ts +7 -0
  35. package/dist/cli/commands/components.d.ts.map +1 -0
  36. package/dist/cli/commands/components.js +23 -0
  37. package/dist/cli/commands/components.js.map +1 -0
  38. package/dist/cli/commands/components.test.d.ts +2 -0
  39. package/dist/cli/commands/components.test.d.ts.map +1 -0
  40. package/dist/cli/commands/components.test.js +62 -0
  41. package/dist/cli/commands/components.test.js.map +1 -0
  42. package/dist/cli/commands/create.d.ts +18 -0
  43. package/dist/cli/commands/create.d.ts.map +1 -0
  44. package/dist/cli/commands/create.js +49 -0
  45. package/dist/cli/commands/create.js.map +1 -0
  46. package/dist/cli/commands/create.test.d.ts +2 -0
  47. package/dist/cli/commands/create.test.d.ts.map +1 -0
  48. package/dist/cli/commands/create.test.js +133 -0
  49. package/dist/cli/commands/create.test.js.map +1 -0
  50. package/dist/cli/commands/edit.d.ts +17 -0
  51. package/dist/cli/commands/edit.d.ts.map +1 -0
  52. package/dist/cli/commands/edit.js +52 -0
  53. package/dist/cli/commands/edit.js.map +1 -0
  54. package/dist/cli/commands/edit.test.d.ts +2 -0
  55. package/dist/cli/commands/edit.test.d.ts.map +1 -0
  56. package/dist/cli/commands/edit.test.js +96 -0
  57. package/dist/cli/commands/edit.test.js.map +1 -0
  58. package/dist/cli/commands/fetch.d.ts +7 -0
  59. package/dist/cli/commands/fetch.d.ts.map +1 -0
  60. package/dist/cli/commands/fetch.js +32 -0
  61. package/dist/cli/commands/fetch.js.map +1 -0
  62. package/dist/cli/commands/fetch.test.d.ts +2 -0
  63. package/dist/cli/commands/fetch.test.d.ts.map +1 -0
  64. package/dist/cli/commands/fetch.test.js +93 -0
  65. package/dist/cli/commands/fetch.test.js.map +1 -0
  66. package/dist/cli/commands/fields.d.ts +8 -0
  67. package/dist/cli/commands/fields.d.ts.map +1 -0
  68. package/dist/cli/commands/fields.js +47 -0
  69. package/dist/cli/commands/fields.js.map +1 -0
  70. package/dist/cli/commands/fields.test.d.ts +2 -0
  71. package/dist/cli/commands/fields.test.d.ts.map +1 -0
  72. package/dist/cli/commands/fields.test.js +78 -0
  73. package/dist/cli/commands/fields.test.js.map +1 -0
  74. package/dist/cli/commands/issuetypes.d.ts +7 -0
  75. package/dist/cli/commands/issuetypes.d.ts.map +1 -0
  76. package/dist/cli/commands/issuetypes.js +23 -0
  77. package/dist/cli/commands/issuetypes.js.map +1 -0
  78. package/dist/cli/commands/issuetypes.test.d.ts +2 -0
  79. package/dist/cli/commands/issuetypes.test.d.ts.map +1 -0
  80. package/dist/cli/commands/issuetypes.test.js +62 -0
  81. package/dist/cli/commands/issuetypes.test.js.map +1 -0
  82. package/dist/cli/commands/link.d.ts +18 -0
  83. package/dist/cli/commands/link.d.ts.map +1 -0
  84. package/dist/cli/commands/link.js +51 -0
  85. package/dist/cli/commands/link.js.map +1 -0
  86. package/dist/cli/commands/link.test.d.ts +2 -0
  87. package/dist/cli/commands/link.test.d.ts.map +1 -0
  88. package/dist/cli/commands/link.test.js +96 -0
  89. package/dist/cli/commands/link.test.js.map +1 -0
  90. package/dist/cli/commands/linktypes.d.ts +6 -0
  91. package/dist/cli/commands/linktypes.d.ts.map +1 -0
  92. package/dist/cli/commands/linktypes.js +21 -0
  93. package/dist/cli/commands/linktypes.js.map +1 -0
  94. package/dist/cli/commands/linktypes.test.d.ts +2 -0
  95. package/dist/cli/commands/linktypes.test.d.ts.map +1 -0
  96. package/dist/cli/commands/linktypes.test.js +55 -0
  97. package/dist/cli/commands/linktypes.test.js.map +1 -0
  98. package/dist/cli/commands/me.d.ts +6 -0
  99. package/dist/cli/commands/me.d.ts.map +1 -0
  100. package/dist/cli/commands/me.js +17 -0
  101. package/dist/cli/commands/me.js.map +1 -0
  102. package/dist/cli/commands/me.test.d.ts +2 -0
  103. package/dist/cli/commands/me.test.d.ts.map +1 -0
  104. package/dist/cli/commands/me.test.js +58 -0
  105. package/dist/cli/commands/me.test.js.map +1 -0
  106. package/dist/cli/commands/projects.d.ts +9 -0
  107. package/dist/cli/commands/projects.d.ts.map +1 -0
  108. package/dist/cli/commands/projects.js +25 -0
  109. package/dist/cli/commands/projects.js.map +1 -0
  110. package/dist/cli/commands/projects.test.d.ts +2 -0
  111. package/dist/cli/commands/projects.test.d.ts.map +1 -0
  112. package/dist/cli/commands/projects.test.js +73 -0
  113. package/dist/cli/commands/projects.test.js.map +1 -0
  114. package/dist/cli/commands/search.d.ts +11 -0
  115. package/dist/cli/commands/search.d.ts.map +1 -0
  116. package/dist/cli/commands/search.js +41 -0
  117. package/dist/cli/commands/search.js.map +1 -0
  118. package/dist/cli/commands/search.test.d.ts +2 -0
  119. package/dist/cli/commands/search.test.d.ts.map +1 -0
  120. package/dist/cli/commands/search.test.js +106 -0
  121. package/dist/cli/commands/search.test.js.map +1 -0
  122. package/dist/cli/commands/setup.d.ts.map +1 -1
  123. package/dist/cli/commands/setup.js +5 -13
  124. package/dist/cli/commands/setup.js.map +1 -1
  125. package/dist/cli/commands/sprints.d.ts +10 -0
  126. package/dist/cli/commands/sprints.d.ts.map +1 -0
  127. package/dist/cli/commands/sprints.js +28 -0
  128. package/dist/cli/commands/sprints.js.map +1 -0
  129. package/dist/cli/commands/sprints.test.d.ts +2 -0
  130. package/dist/cli/commands/sprints.test.d.ts.map +1 -0
  131. package/dist/cli/commands/sprints.test.js +68 -0
  132. package/dist/cli/commands/sprints.test.js.map +1 -0
  133. package/dist/cli/commands/transition.d.ts +8 -0
  134. package/dist/cli/commands/transition.d.ts.map +1 -0
  135. package/dist/cli/commands/transition.js +46 -0
  136. package/dist/cli/commands/transition.js.map +1 -0
  137. package/dist/cli/commands/upgrade.d.ts +16 -0
  138. package/dist/cli/commands/upgrade.d.ts.map +1 -0
  139. package/dist/cli/commands/upgrade.js +83 -0
  140. package/dist/cli/commands/upgrade.js.map +1 -0
  141. package/dist/cli/commands/upgrade.test.d.ts +2 -0
  142. package/dist/cli/commands/upgrade.test.d.ts.map +1 -0
  143. package/dist/cli/commands/upgrade.test.js +146 -0
  144. package/dist/cli/commands/upgrade.test.js.map +1 -0
  145. package/dist/cli/commands/watchers.d.ts +10 -0
  146. package/dist/cli/commands/watchers.d.ts.map +1 -0
  147. package/dist/cli/commands/watchers.js +43 -0
  148. package/dist/cli/commands/watchers.js.map +1 -0
  149. package/dist/cli/commands/watchers.test.d.ts +2 -0
  150. package/dist/cli/commands/watchers.test.d.ts.map +1 -0
  151. package/dist/cli/commands/watchers.test.js +90 -0
  152. package/dist/cli/commands/watchers.test.js.map +1 -0
  153. package/dist/cli/commands/worklog.d.ts +8 -0
  154. package/dist/cli/commands/worklog.d.ts.map +1 -0
  155. package/dist/cli/commands/worklog.js +100 -0
  156. package/dist/cli/commands/worklog.js.map +1 -0
  157. package/dist/cli/commands/worklog.test.d.ts +2 -0
  158. package/dist/cli/commands/worklog.test.d.ts.map +1 -0
  159. package/dist/cli/commands/worklog.test.js +195 -0
  160. package/dist/cli/commands/worklog.test.js.map +1 -0
  161. package/dist/cli/index.js +712 -2
  162. package/dist/cli/index.js.map +1 -1
  163. package/dist/cli/issueKey.d.ts.map +1 -1
  164. package/dist/cli/issueKey.js +6 -2
  165. package/dist/cli/issueKey.js.map +1 -1
  166. package/dist/cli/issueKey.test.js +35 -0
  167. package/dist/cli/issueKey.test.js.map +1 -1
  168. package/dist/cli/jsonOutput.d.ts +6 -0
  169. package/dist/cli/jsonOutput.d.ts.map +1 -0
  170. package/dist/cli/jsonOutput.js +7 -0
  171. package/dist/cli/jsonOutput.js.map +1 -0
  172. package/dist/cli/jsonOutput.test.d.ts +2 -0
  173. package/dist/cli/jsonOutput.test.d.ts.map +1 -0
  174. package/dist/cli/jsonOutput.test.js +44 -0
  175. package/dist/cli/jsonOutput.test.js.map +1 -0
  176. package/dist/cli/resolveOrg.d.ts +2 -0
  177. package/dist/cli/resolveOrg.d.ts.map +1 -0
  178. package/dist/cli/resolveOrg.js +15 -0
  179. package/dist/cli/resolveOrg.js.map +1 -0
  180. package/dist/index.d.ts +5 -1
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +3 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/lib/chunkMarkdown.d.ts +6 -0
  185. package/dist/lib/chunkMarkdown.d.ts.map +1 -0
  186. package/dist/lib/chunkMarkdown.js +73 -0
  187. package/dist/lib/chunkMarkdown.js.map +1 -0
  188. package/dist/lib/chunkMarkdown.test.d.ts +2 -0
  189. package/dist/lib/chunkMarkdown.test.d.ts.map +1 -0
  190. package/dist/lib/chunkMarkdown.test.js +171 -0
  191. package/dist/lib/chunkMarkdown.test.js.map +1 -0
  192. package/dist/lib/config.d.ts +6 -0
  193. package/dist/lib/config.d.ts.map +1 -1
  194. package/dist/lib/config.js +25 -0
  195. package/dist/lib/config.js.map +1 -1
  196. package/dist/lib/config.test.js +67 -0
  197. package/dist/lib/config.test.js.map +1 -1
  198. package/dist/lib/configSchema.d.ts +44 -0
  199. package/dist/lib/configSchema.d.ts.map +1 -1
  200. package/dist/lib/configSchema.js +20 -0
  201. package/dist/lib/configSchema.js.map +1 -1
  202. package/dist/lib/customFieldWrite.d.ts +21 -0
  203. package/dist/lib/customFieldWrite.d.ts.map +1 -0
  204. package/dist/lib/customFieldWrite.js +83 -0
  205. package/dist/lib/customFieldWrite.js.map +1 -0
  206. package/dist/lib/customFieldWrite.test.d.ts +2 -0
  207. package/dist/lib/customFieldWrite.test.d.ts.map +1 -0
  208. package/dist/lib/customFieldWrite.test.js +87 -0
  209. package/dist/lib/customFieldWrite.test.js.map +1 -0
  210. package/dist/lib/exportFields.d.ts +30 -0
  211. package/dist/lib/exportFields.d.ts.map +1 -0
  212. package/dist/lib/exportFields.js +169 -0
  213. package/dist/lib/exportFields.js.map +1 -0
  214. package/dist/lib/exportFields.test.d.ts +2 -0
  215. package/dist/lib/exportFields.test.d.ts.map +1 -0
  216. package/dist/lib/exportFields.test.js +145 -0
  217. package/dist/lib/exportFields.test.js.map +1 -0
  218. package/dist/lib/exporter.d.ts +25 -3
  219. package/dist/lib/exporter.d.ts.map +1 -1
  220. package/dist/lib/exporter.js +195 -18
  221. package/dist/lib/exporter.js.map +1 -1
  222. package/dist/lib/exporter.test.d.ts +2 -0
  223. package/dist/lib/exporter.test.d.ts.map +1 -0
  224. package/dist/lib/exporter.test.js +227 -0
  225. package/dist/lib/exporter.test.js.map +1 -0
  226. package/dist/lib/jiraClient.d.ts +272 -1
  227. package/dist/lib/jiraClient.d.ts.map +1 -1
  228. package/dist/lib/jiraClient.discovery.test.d.ts +2 -0
  229. package/dist/lib/jiraClient.discovery.test.d.ts.map +1 -0
  230. package/dist/lib/jiraClient.discovery.test.js +209 -0
  231. package/dist/lib/jiraClient.discovery.test.js.map +1 -0
  232. package/dist/lib/jiraClient.js +656 -16
  233. package/dist/lib/jiraClient.js.map +1 -1
  234. package/dist/lib/jiraClient.test.d.ts +2 -0
  235. package/dist/lib/jiraClient.test.d.ts.map +1 -0
  236. package/dist/lib/jiraClient.test.js +383 -0
  237. package/dist/lib/jiraClient.test.js.map +1 -0
  238. package/dist/lib/jiraClient.write.test.d.ts +2 -0
  239. package/dist/lib/jiraClient.write.test.d.ts.map +1 -0
  240. package/dist/lib/jiraClient.write.test.js +358 -0
  241. package/dist/lib/jiraClient.write.test.js.map +1 -0
  242. package/dist/lib/markdownToWiki.d.ts +2 -0
  243. package/dist/lib/markdownToWiki.d.ts.map +1 -0
  244. package/dist/lib/markdownToWiki.js +110 -0
  245. package/dist/lib/markdownToWiki.js.map +1 -0
  246. package/dist/lib/markdownToWiki.test.d.ts +2 -0
  247. package/dist/lib/markdownToWiki.test.d.ts.map +1 -0
  248. package/dist/lib/markdownToWiki.test.js +122 -0
  249. package/dist/lib/markdownToWiki.test.js.map +1 -0
  250. package/dist/lib/platform.d.ts +2 -0
  251. package/dist/lib/platform.d.ts.map +1 -1
  252. package/dist/lib/platform.js +8 -0
  253. package/dist/lib/platform.js.map +1 -1
  254. package/dist/lib/runCommand.d.ts +1 -0
  255. package/dist/lib/runCommand.d.ts.map +1 -1
  256. package/dist/lib/runCommand.js +8 -1
  257. package/dist/lib/runCommand.js.map +1 -1
  258. package/dist/lib/worklog.d.ts +36 -0
  259. package/dist/lib/worklog.d.ts.map +1 -0
  260. package/dist/lib/worklog.js +188 -0
  261. package/dist/lib/worklog.js.map +1 -0
  262. package/dist/lib/worklog.test.d.ts +2 -0
  263. package/dist/lib/worklog.test.d.ts.map +1 -0
  264. package/dist/lib/worklog.test.js +118 -0
  265. package/dist/lib/worklog.test.js.map +1 -0
  266. package/package.json +3 -1
@@ -1,3 +1,4 @@
1
+ import type { CustomFieldDefs } from './exportFields.js';
1
2
  export type JiraConfig = {
2
3
  baseUrl: string;
3
4
  projectKey: string;
@@ -57,17 +58,172 @@ type HistoryEntry = {
57
58
  date: string;
58
59
  content: string;
59
60
  };
61
+ export type JiraBoard = {
62
+ id: number;
63
+ name: string;
64
+ type: string;
65
+ };
66
+ export type JiraBoardConfiguration = {
67
+ columnConfig: {
68
+ columns: Array<{
69
+ name: string;
70
+ statuses: Array<{
71
+ id: string;
72
+ self: string;
73
+ }>;
74
+ }>;
75
+ };
76
+ };
77
+ export type JiraTransition = {
78
+ id: string;
79
+ name: string;
80
+ to: {
81
+ id: string;
82
+ name: string;
83
+ };
84
+ };
85
+ export type JqlIssue = {
86
+ key: string;
87
+ fields: Record<string, unknown>;
88
+ };
89
+ export type JiraSearchPage<T> = {
90
+ issues: T[];
91
+ nextPageToken?: string;
92
+ isLast: boolean;
93
+ };
94
+ export type JiraProject = {
95
+ id: string;
96
+ key: string;
97
+ name: string;
98
+ projectTypeKey?: string;
99
+ simplified?: boolean;
100
+ style?: string;
101
+ lead?: {
102
+ accountId: string;
103
+ displayName: string;
104
+ };
105
+ };
106
+ export type JiraSprint = {
107
+ id: number;
108
+ self: string;
109
+ state: 'active' | 'future' | 'closed' | string;
110
+ name: string;
111
+ startDate?: string;
112
+ endDate?: string;
113
+ completeDate?: string;
114
+ originBoardId?: number;
115
+ goal?: string;
116
+ };
117
+ export type JiraIssueType = {
118
+ id: string;
119
+ name: string;
120
+ description?: string;
121
+ iconUrl?: string;
122
+ subtask: boolean;
123
+ hierarchyLevel?: number;
124
+ };
125
+ export type JiraIssueLinkType = {
126
+ id: string;
127
+ name: string;
128
+ inward: string;
129
+ outward: string;
130
+ };
131
+ export type JiraPriority = {
132
+ id: string;
133
+ name: string;
134
+ iconUrl?: string;
135
+ description?: string;
136
+ };
137
+ export type JiraStatus = {
138
+ id: string;
139
+ name: string;
140
+ description?: string;
141
+ statusCategory?: {
142
+ id: number;
143
+ key: string;
144
+ name: string;
145
+ colorName?: string;
146
+ };
147
+ };
148
+ export type JiraComponent = {
149
+ id: string;
150
+ name: string;
151
+ description?: string;
152
+ };
153
+ export type JiraCreateField = {
154
+ fieldId: string;
155
+ name: string;
156
+ required: boolean;
157
+ schemaType?: string;
158
+ allowedValues?: string[];
159
+ };
160
+ export type JiraWatcher = {
161
+ accountId: string;
162
+ displayName: string;
163
+ active?: boolean;
164
+ };
165
+ export type JiraIssueLink = {
166
+ id: string;
167
+ self?: string;
168
+ type: {
169
+ id?: string;
170
+ name: string;
171
+ inward: string;
172
+ outward: string;
173
+ };
174
+ inwardIssue?: {
175
+ key: string;
176
+ };
177
+ outwardIssue?: {
178
+ key: string;
179
+ };
180
+ };
181
+ export type JiraPage<T> = {
182
+ values: T[];
183
+ startAt: number;
184
+ maxResults: number;
185
+ isLast: boolean;
186
+ total?: number;
187
+ };
60
188
  type SubtaskSummary = {
61
189
  key: string;
62
190
  title: string;
63
191
  status: string;
64
192
  };
193
+ export type IssueLinkSummary = {
194
+ type: string;
195
+ key: string;
196
+ title: string;
197
+ status?: string;
198
+ };
199
+ export type TimeTrackingSummary = {
200
+ originalEstimate?: string;
201
+ remainingEstimate?: string;
202
+ timeSpent?: string;
203
+ };
65
204
  export type JiraTaskData = {
66
205
  key: string;
67
206
  title: string;
68
207
  status: string;
69
208
  description: string;
70
209
  issueType?: string;
210
+ priority?: string;
211
+ resolution?: string;
212
+ assignee?: string;
213
+ reporter?: string;
214
+ creator?: string;
215
+ createdAt?: string;
216
+ updatedAt?: string;
217
+ dueDate?: string;
218
+ resolutionDate?: string;
219
+ components?: string[];
220
+ labels?: string[];
221
+ fixVersions?: string[];
222
+ versions?: string[];
223
+ sprint?: string;
224
+ storyPoints?: number;
225
+ timetracking?: TimeTrackingSummary;
226
+ issueLinks?: IssueLinkSummary[];
71
227
  parent?: {
72
228
  key: string;
73
229
  title: string;
@@ -78,6 +234,7 @@ export type JiraTaskData = {
78
234
  title: string;
79
235
  };
80
236
  subtasks?: SubtaskSummary[];
237
+ customFields?: Record<string, unknown>;
81
238
  attachments: Array<{
82
239
  id: string;
83
240
  filename: string;
@@ -86,6 +243,20 @@ export type JiraTaskData = {
86
243
  }>;
87
244
  history: HistoryEntry[];
88
245
  };
246
+ export type FetchIssueDetailsOptions = {
247
+ jiraFieldIds?: string[];
248
+ customFieldDefs?: CustomFieldDefs;
249
+ };
250
+ type JiraFieldMeta = {
251
+ id: string;
252
+ name: string;
253
+ custom: boolean;
254
+ schema?: {
255
+ type?: string;
256
+ custom?: string;
257
+ items?: string;
258
+ };
259
+ };
89
260
  export type JiraTaskSummary = {
90
261
  key: string;
91
262
  title: string;
@@ -105,7 +276,13 @@ export type JiraTaskSummary = {
105
276
  export declare class JiraClient {
106
277
  private config;
107
278
  private authHeader;
279
+ private fieldsCache?;
280
+ private sprintFieldIdCache?;
281
+ private storyPointsFieldIdCache?;
108
282
  constructor(config: JiraConfig, apiToken: string);
283
+ listFields(): Promise<JiraFieldMeta[]>;
284
+ detectSprintFieldId(): Promise<string | undefined>;
285
+ detectStoryPointsFieldId(): Promise<string | undefined>;
109
286
  private extractEpicFromFields;
110
287
  convertADFToMarkdown(content: string | JiraADFDocument | null | undefined, attachments?: Array<{
111
288
  id: string;
@@ -119,10 +296,104 @@ export declare class JiraClient {
119
296
  emailAddress?: string;
120
297
  displayName: string;
121
298
  }>;
122
- fetchIssueDetails(issueKey: string): Promise<JiraTaskData>;
299
+ fetchIssueDetails(issueKey: string, options?: FetchIssueDetailsOptions): Promise<JiraTaskData>;
300
+ private buildTaskData;
123
301
  fetchIssueComments(issueKey: string): Promise<JiraComment[]>;
124
302
  fetchIssueChangelog(issueKey: string): Promise<JiraChangelogHistory[]>;
125
303
  fetchIssueSubtasks(parentKey: string): Promise<SubtaskSummary[]>;
304
+ addComment(issueKey: string, wikiBody: string, parentCommentId?: string): Promise<{
305
+ id: string;
306
+ }>;
307
+ addWorklog(issueKey: string, payload: {
308
+ started: string;
309
+ timeSpentSeconds: number;
310
+ comment?: string;
311
+ visibility?: {
312
+ type: 'group' | 'role';
313
+ value: string;
314
+ };
315
+ }): Promise<{
316
+ id: string;
317
+ issueId: string;
318
+ }>;
319
+ deleteComment(issueKey: string, commentId: string): Promise<void>;
320
+ private makeAgileRequest;
321
+ findBoardByName(name: string): Promise<JiraBoard>;
322
+ getBoardConfiguration(boardId: number): Promise<JiraBoardConfiguration>;
323
+ getBoardColumnStatusIds(boardName: string, columnName: string): Promise<string[]>;
324
+ searchByJql(jql: string, fields?: string[]): Promise<JqlIssue[]>;
325
+ searchIssues(jql: string, opts?: {
326
+ fields?: string[];
327
+ limit?: number;
328
+ nextPageToken?: string;
329
+ }): Promise<JiraSearchPage<JqlIssue>>;
330
+ listProjects(opts?: {
331
+ query?: string;
332
+ startAt?: number;
333
+ limit?: number;
334
+ }): Promise<JiraPage<JiraProject>>;
335
+ listBoards(opts?: {
336
+ projectKey?: string;
337
+ type?: 'scrum' | 'kanban' | 'simple';
338
+ name?: string;
339
+ startAt?: number;
340
+ limit?: number;
341
+ }): Promise<JiraPage<JiraBoard>>;
342
+ listSprints(boardId: number, opts?: {
343
+ state?: 'active' | 'future' | 'closed';
344
+ startAt?: number;
345
+ limit?: number;
346
+ }): Promise<JiraPage<JiraSprint>>;
347
+ listIssueTypes(projectKey?: string): Promise<JiraIssueType[]>;
348
+ listComponents(projectKey: string): Promise<JiraComponent[]>;
349
+ /**
350
+ * Fetch the fields available on the create screen for a given issue type, including
351
+ * allowedValues for select fields — helps users discover valid custom-field option strings.
352
+ */
353
+ getCreateFields(projectKey: string, issueTypeName: string): Promise<JiraCreateField[]>;
354
+ listLinkTypes(): Promise<JiraIssueLinkType[]>;
355
+ listPriorities(): Promise<JiraPriority[]>;
356
+ listStatuses(projectKey?: string): Promise<JiraStatus[]>;
357
+ getIssueTransitions(issueKey: string): Promise<JiraTransition[]>;
358
+ transitionIssue(issueKey: string, targetStatus: string): Promise<Pick<JiraTransition, 'id' | 'name'>>;
359
+ createIssue(input: {
360
+ projectKey: string;
361
+ issueType: string;
362
+ summary: string;
363
+ descriptionMarkdown?: string;
364
+ assigneeAccountId?: string;
365
+ labels?: string[];
366
+ priority?: string;
367
+ parentKey?: string;
368
+ components?: string[];
369
+ customFields?: Record<string, unknown>;
370
+ }): Promise<{
371
+ id: string;
372
+ key: string;
373
+ self: string;
374
+ }>;
375
+ editIssue(issueKey: string, input: {
376
+ summary?: string;
377
+ descriptionMarkdown?: string;
378
+ assigneeAccountId?: string | null;
379
+ labels?: string[];
380
+ priority?: string;
381
+ components?: string[];
382
+ customFields?: Record<string, unknown>;
383
+ }): Promise<void>;
384
+ assignIssue(issueKey: string, accountIdOrNull: string | null): Promise<void>;
385
+ linkIssues(inwardKey: string, outwardKey: string, linkTypeName: string, comment?: string): Promise<void>;
386
+ removeIssueLink(linkId: string): Promise<void>;
387
+ listWatchers(issueKey: string): Promise<JiraWatcher[]>;
388
+ addWatcher(issueKey: string, accountId: string): Promise<void>;
389
+ removeWatcher(issueKey: string, accountId: string): Promise<void>;
390
+ uploadAttachment(issueKey: string, filePath: string): Promise<Array<{
391
+ id: string;
392
+ filename: string;
393
+ size: number;
394
+ mimeType?: string;
395
+ }>>;
396
+ deleteAttachment(attachmentId: string): Promise<void>;
126
397
  downloadAttachment(attachmentUrl: string, outputPath: string): Promise<void>;
127
398
  }
128
399
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"jiraClient.d.ts","sourceRoot":"","sources":["../../src/lib/jiraClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jiraClient.d.ts","sourceRoot":"","sources":["../../src/lib/jiraClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jiraClient.discovery.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jiraClient.discovery.test.d.ts","sourceRoot":"","sources":["../../src/lib/jiraClient.discovery.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,209 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { JiraClient } from './jiraClient.js';
3
+ const FAKE_CONFIG = {
4
+ baseUrl: 'https://example.atlassian.net',
5
+ projectKey: 'PROJ',
6
+ userEmail: 'user@example.com',
7
+ };
8
+ function captureFetch(handler) {
9
+ const calls = [];
10
+ vi.stubGlobal('fetch', vi.fn(async (url, init) => {
11
+ const body = typeof init?.body === 'string' ? init.body : undefined;
12
+ calls.push({
13
+ url,
14
+ method: init?.method ?? 'GET',
15
+ headers: (init?.headers ?? {}),
16
+ body,
17
+ });
18
+ const payload = handler(url);
19
+ return {
20
+ ok: true,
21
+ status: 200,
22
+ statusText: 'OK',
23
+ json: async () => payload,
24
+ };
25
+ }));
26
+ return { client: new JiraClient(FAKE_CONFIG, 'token'), calls };
27
+ }
28
+ beforeEach(() => {
29
+ vi.unstubAllGlobals();
30
+ });
31
+ describe('JiraClient.searchIssues', () => {
32
+ it('POSTs to /search/jql with JQL, fields, and limit', async () => {
33
+ const { client, calls } = captureFetch(() => ({
34
+ issues: [{ key: 'PROJ-1', fields: { summary: 'one' } }],
35
+ isLast: true,
36
+ }));
37
+ const page = await client.searchIssues('project = PROJ', {
38
+ fields: ['summary', 'status'],
39
+ limit: 25,
40
+ });
41
+ expect(calls).toHaveLength(1);
42
+ expect(calls[0].method).toBe('POST');
43
+ expect(calls[0].url).toContain('/rest/api/3/search/jql');
44
+ const body = JSON.parse(calls[0].body);
45
+ expect(body).toEqual({
46
+ jql: 'project = PROJ',
47
+ fields: ['summary', 'status'],
48
+ maxResults: 25,
49
+ });
50
+ expect(page.issues).toHaveLength(1);
51
+ expect(page.isLast).toBe(true);
52
+ });
53
+ it('forwards nextPageToken in body when provided', async () => {
54
+ const { client, calls } = captureFetch(() => ({
55
+ issues: [],
56
+ nextPageToken: 'abc',
57
+ isLast: false,
58
+ }));
59
+ const page = await client.searchIssues('x', { nextPageToken: 'prev-token' });
60
+ const body = JSON.parse(calls[0].body);
61
+ expect(body.nextPageToken).toBe('prev-token');
62
+ expect(page.nextPageToken).toBe('abc');
63
+ expect(page.isLast).toBe(false);
64
+ });
65
+ it('defaults fields and limit when not provided', async () => {
66
+ const { client, calls } = captureFetch(() => ({ issues: [], isLast: true }));
67
+ await client.searchIssues('x');
68
+ const body = JSON.parse(calls[0].body);
69
+ expect(body.fields).toEqual(['summary', 'status', 'assignee', 'issuetype']);
70
+ expect(body.maxResults).toBe(50);
71
+ expect(body.nextPageToken).toBeUndefined();
72
+ });
73
+ it('treats response.isLast === undefined as isLast: true', async () => {
74
+ const { client } = captureFetch(() => ({ issues: [] }));
75
+ const page = await client.searchIssues('x');
76
+ expect(page.isLast).toBe(true);
77
+ });
78
+ });
79
+ describe('JiraClient.listProjects', () => {
80
+ it('GETs /project/search with query and pagination params', async () => {
81
+ const { client, calls } = captureFetch(() => ({
82
+ values: [{ id: '1', key: 'PROJ', name: 'Proj' }],
83
+ startAt: 0,
84
+ maxResults: 50,
85
+ isLast: true,
86
+ }));
87
+ const result = await client.listProjects({ query: 'pro', limit: 10, startAt: 5 });
88
+ expect(calls[0].method).toBe('GET');
89
+ expect(calls[0].url).toContain('/rest/api/3/project/search?');
90
+ expect(calls[0].url).toContain('query=pro');
91
+ expect(calls[0].url).toContain('maxResults=10');
92
+ expect(calls[0].url).toContain('startAt=5');
93
+ expect(result.values[0].key).toBe('PROJ');
94
+ });
95
+ it('omits query string when no opts provided', async () => {
96
+ const { client, calls } = captureFetch(() => ({
97
+ values: [],
98
+ startAt: 0,
99
+ maxResults: 50,
100
+ isLast: true,
101
+ }));
102
+ await client.listProjects();
103
+ expect(calls[0].url).toBe('https://example.atlassian.net/rest/api/3/project/search');
104
+ });
105
+ });
106
+ describe('JiraClient.listBoards', () => {
107
+ it('GETs /rest/agile/1.0/board with projectKey/type/name filters', async () => {
108
+ const { client, calls } = captureFetch(() => ({
109
+ values: [{ id: 7, name: 'Board', type: 'scrum' }],
110
+ startAt: 0,
111
+ maxResults: 50,
112
+ isLast: true,
113
+ }));
114
+ await client.listBoards({ projectKey: 'PROJ', type: 'scrum', name: 'My' });
115
+ expect(calls[0].url).toContain('/rest/agile/1.0/board?');
116
+ expect(calls[0].url).toContain('projectKeyOrId=PROJ');
117
+ expect(calls[0].url).toContain('type=scrum');
118
+ expect(calls[0].url).toContain('name=My');
119
+ });
120
+ });
121
+ describe('JiraClient.listSprints', () => {
122
+ it('GETs /rest/agile/1.0/board/{id}/sprint with state filter', async () => {
123
+ const { client, calls } = captureFetch(() => ({
124
+ values: [{ id: 99, name: 'Sprint 99', state: 'active', self: 'x' }],
125
+ startAt: 0,
126
+ maxResults: 50,
127
+ isLast: true,
128
+ }));
129
+ const page = await client.listSprints(42, { state: 'active', limit: 5 });
130
+ expect(calls[0].url).toContain('/rest/agile/1.0/board/42/sprint?');
131
+ expect(calls[0].url).toContain('state=active');
132
+ expect(calls[0].url).toContain('maxResults=5');
133
+ expect(page.values[0].id).toBe(99);
134
+ });
135
+ it('omits query string when no opts provided', async () => {
136
+ const { client, calls } = captureFetch(() => ({
137
+ values: [],
138
+ startAt: 0,
139
+ maxResults: 50,
140
+ isLast: true,
141
+ }));
142
+ await client.listSprints(42);
143
+ expect(calls[0].url).toBe('https://example.atlassian.net/rest/agile/1.0/board/42/sprint');
144
+ });
145
+ });
146
+ describe('JiraClient.listIssueTypes', () => {
147
+ it('GETs /issuetype when no project supplied', async () => {
148
+ const { client, calls } = captureFetch(() => [
149
+ { id: '1', name: 'Task', subtask: false },
150
+ ]);
151
+ const types = await client.listIssueTypes();
152
+ expect(calls).toHaveLength(1);
153
+ expect(calls[0].url).toContain('/rest/api/3/issuetype');
154
+ expect(calls[0].url).not.toContain('project');
155
+ expect(types[0].name).toBe('Task');
156
+ });
157
+ it('resolves projectId then queries /issuetype/project when project supplied', async () => {
158
+ const { client, calls } = captureFetch((url) => {
159
+ if (url.endsWith('/project/PROJ'))
160
+ return { id: '10000' };
161
+ return [{ id: '1', name: 'Bug', subtask: false }];
162
+ });
163
+ const types = await client.listIssueTypes('PROJ');
164
+ expect(calls).toHaveLength(2);
165
+ expect(calls[0].url).toContain('/rest/api/3/project/PROJ');
166
+ expect(calls[1].url).toContain('/rest/api/3/issuetype/project?projectId=10000');
167
+ expect(types[0].name).toBe('Bug');
168
+ });
169
+ });
170
+ describe('JiraClient.listLinkTypes', () => {
171
+ it('unwraps the issueLinkTypes envelope', async () => {
172
+ const { client } = captureFetch(() => ({
173
+ issueLinkTypes: [
174
+ { id: '1', name: 'Blocks', inward: 'is blocked by', outward: 'blocks' },
175
+ ],
176
+ }));
177
+ const types = await client.listLinkTypes();
178
+ expect(types).toEqual([
179
+ { id: '1', name: 'Blocks', inward: 'is blocked by', outward: 'blocks' },
180
+ ]);
181
+ });
182
+ });
183
+ describe('JiraClient.listPriorities', () => {
184
+ it('GETs /priority', async () => {
185
+ const { client, calls } = captureFetch(() => [{ id: '3', name: 'Medium' }]);
186
+ const out = await client.listPriorities();
187
+ expect(calls[0].url).toContain('/rest/api/3/priority');
188
+ expect(out[0].name).toBe('Medium');
189
+ });
190
+ });
191
+ describe('JiraClient.listStatuses', () => {
192
+ it('GETs /status when no project provided', async () => {
193
+ const { client, calls } = captureFetch(() => [{ id: '1', name: 'Open' }]);
194
+ const out = await client.listStatuses();
195
+ expect(calls[0].url).toContain('/rest/api/3/status');
196
+ expect(out[0].name).toBe('Open');
197
+ });
198
+ it('deduplicates statuses across issue types when project provided', async () => {
199
+ const { client, calls } = captureFetch(() => [
200
+ { statuses: [{ id: '1', name: 'Open' }, { id: '2', name: 'Done' }] },
201
+ { statuses: [{ id: '1', name: 'Open' }, { id: '3', name: 'In Progress' }] },
202
+ ]);
203
+ const out = await client.listStatuses('PROJ');
204
+ expect(calls[0].url).toContain('/rest/api/3/project/PROJ/statuses');
205
+ const ids = out.map((s) => s.id).sort();
206
+ expect(ids).toEqual(['1', '2', '3']);
207
+ });
208
+ });
209
+ //# sourceMappingURL=jiraClient.discovery.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jiraClient.discovery.test.js","sourceRoot":"","sources":["../../src/lib/jiraClient.discovery.test.ts"],"names":[],"mappings":"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"}