@eyeauras/youtrack-cli 0.7.1 → 0.9.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 (164) hide show
  1. package/README.md +161 -50
  2. package/dist/src/access-catalog-commands.d.ts +2 -0
  3. package/dist/src/access-catalog-commands.d.ts.map +1 -0
  4. package/dist/src/access-catalog-commands.js +24 -0
  5. package/dist/src/access-catalog-commands.js.map +1 -0
  6. package/dist/src/access-catalog.d.ts +12 -0
  7. package/dist/src/access-catalog.d.ts.map +1 -0
  8. package/dist/src/access-catalog.js +44 -0
  9. package/dist/src/access-catalog.js.map +1 -0
  10. package/dist/src/agile-commands.d.ts.map +1 -1
  11. package/dist/src/agile-commands.js +14 -5
  12. package/dist/src/agile-commands.js.map +1 -1
  13. package/dist/src/agile.d.ts +11 -2
  14. package/dist/src/agile.d.ts.map +1 -1
  15. package/dist/src/agile.js +29 -2
  16. package/dist/src/agile.js.map +1 -1
  17. package/dist/src/article-extras-commands.d.ts +1 -0
  18. package/dist/src/article-extras-commands.d.ts.map +1 -1
  19. package/dist/src/article-extras-commands.js +23 -6
  20. package/dist/src/article-extras-commands.js.map +1 -1
  21. package/dist/src/article-extras.d.ts +15 -2
  22. package/dist/src/article-extras.d.ts.map +1 -1
  23. package/dist/src/article-extras.js +49 -2
  24. package/dist/src/article-extras.js.map +1 -1
  25. package/dist/src/articles-commands.d.ts.map +1 -1
  26. package/dist/src/articles-commands.js +11 -8
  27. package/dist/src/articles-commands.js.map +1 -1
  28. package/dist/src/articles.d.ts +7 -5
  29. package/dist/src/articles.d.ts.map +1 -1
  30. package/dist/src/articles.js +13 -7
  31. package/dist/src/articles.js.map +1 -1
  32. package/dist/src/backup-commands.d.ts +2 -0
  33. package/dist/src/backup-commands.d.ts.map +1 -0
  34. package/dist/src/backup-commands.js +16 -0
  35. package/dist/src/backup-commands.js.map +1 -0
  36. package/dist/src/backup.d.ts +7 -0
  37. package/dist/src/backup.d.ts.map +1 -0
  38. package/dist/src/backup.js +30 -0
  39. package/dist/src/backup.js.map +1 -0
  40. package/dist/src/bundle-values-commands.d.ts.map +1 -1
  41. package/dist/src/bundle-values-commands.js +27 -9
  42. package/dist/src/bundle-values-commands.js.map +1 -1
  43. package/dist/src/bundle-values.d.ts +31 -12
  44. package/dist/src/bundle-values.d.ts.map +1 -1
  45. package/dist/src/bundle-values.js +61 -1
  46. package/dist/src/bundle-values.js.map +1 -1
  47. package/dist/src/cli-support.d.ts +10 -6
  48. package/dist/src/cli-support.d.ts.map +1 -1
  49. package/dist/src/cli-support.js +40 -12
  50. package/dist/src/cli-support.js.map +1 -1
  51. package/dist/src/cli.d.ts.map +1 -1
  52. package/dist/src/cli.js +25 -11
  53. package/dist/src/cli.js.map +1 -1
  54. package/dist/src/client.d.ts +29 -9
  55. package/dist/src/client.d.ts.map +1 -1
  56. package/dist/src/client.js +180 -52
  57. package/dist/src/client.js.map +1 -1
  58. package/dist/src/credential-alias.d.ts +7 -0
  59. package/dist/src/credential-alias.d.ts.map +1 -0
  60. package/dist/src/credential-alias.js +21 -0
  61. package/dist/src/credential-alias.js.map +1 -0
  62. package/dist/src/field-catalog-commands.d.ts.map +1 -1
  63. package/dist/src/field-catalog-commands.js +30 -8
  64. package/dist/src/field-catalog-commands.js.map +1 -1
  65. package/dist/src/field-catalog.d.ts +30 -11
  66. package/dist/src/field-catalog.d.ts.map +1 -1
  67. package/dist/src/field-catalog.js +56 -1
  68. package/dist/src/field-catalog.js.map +1 -1
  69. package/dist/src/group-directory-commands.d.ts.map +1 -1
  70. package/dist/src/group-directory-commands.js +18 -9
  71. package/dist/src/group-directory-commands.js.map +1 -1
  72. package/dist/src/group-directory.d.ts +13 -4
  73. package/dist/src/group-directory.d.ts.map +1 -1
  74. package/dist/src/group-directory.js +41 -2
  75. package/dist/src/group-directory.js.map +1 -1
  76. package/dist/src/index.d.ts +20 -15
  77. package/dist/src/index.d.ts.map +1 -1
  78. package/dist/src/index.js +19 -14
  79. package/dist/src/index.js.map +1 -1
  80. package/dist/src/issue-attachments-commands.d.ts.map +1 -1
  81. package/dist/src/issue-attachments-commands.js +7 -4
  82. package/dist/src/issue-attachments-commands.js.map +1 -1
  83. package/dist/src/issue-attachments.d.ts +5 -3
  84. package/dist/src/issue-attachments.d.ts.map +1 -1
  85. package/dist/src/issue-attachments.js +12 -3
  86. package/dist/src/issue-attachments.js.map +1 -1
  87. package/dist/src/issue-context-commands.d.ts.map +1 -1
  88. package/dist/src/issue-context-commands.js +42 -6
  89. package/dist/src/issue-context-commands.js.map +1 -1
  90. package/dist/src/issue-context.d.ts +20 -4
  91. package/dist/src/issue-context.d.ts.map +1 -1
  92. package/dist/src/issue-context.js +43 -3
  93. package/dist/src/issue-context.js.map +1 -1
  94. package/dist/src/issue-fields-commands.d.ts.map +1 -1
  95. package/dist/src/issue-fields-commands.js +26 -5
  96. package/dist/src/issue-fields-commands.js.map +1 -1
  97. package/dist/src/issue-fields.d.ts +30 -10
  98. package/dist/src/issue-fields.d.ts.map +1 -1
  99. package/dist/src/issue-fields.js +71 -9
  100. package/dist/src/issue-fields.js.map +1 -1
  101. package/dist/src/issue-query-commands.d.ts.map +1 -1
  102. package/dist/src/issue-query-commands.js +28 -6
  103. package/dist/src/issue-query-commands.js.map +1 -1
  104. package/dist/src/issue-query.d.ts +12 -1
  105. package/dist/src/issue-query.d.ts.map +1 -1
  106. package/dist/src/issue-query.js +24 -4
  107. package/dist/src/issue-query.js.map +1 -1
  108. package/dist/src/issue-reactions-commands.d.ts +2 -0
  109. package/dist/src/issue-reactions-commands.d.ts.map +1 -0
  110. package/dist/src/issue-reactions-commands.js +11 -0
  111. package/dist/src/issue-reactions-commands.js.map +1 -0
  112. package/dist/src/issue-reactions.d.ts +6 -0
  113. package/dist/src/issue-reactions.d.ts.map +1 -0
  114. package/dist/src/issue-reactions.js +15 -0
  115. package/dist/src/issue-reactions.js.map +1 -0
  116. package/dist/src/issue-relations-commands.d.ts.map +1 -1
  117. package/dist/src/issue-relations-commands.js +23 -10
  118. package/dist/src/issue-relations-commands.js.map +1 -1
  119. package/dist/src/issue-relations.d.ts +24 -13
  120. package/dist/src/issue-relations.d.ts.map +1 -1
  121. package/dist/src/issue-relations.js +50 -10
  122. package/dist/src/issue-relations.js.map +1 -1
  123. package/dist/src/issue-time-commands.d.ts.map +1 -1
  124. package/dist/src/issue-time-commands.js +20 -6
  125. package/dist/src/issue-time-commands.js.map +1 -1
  126. package/dist/src/issue-time.d.ts +18 -4
  127. package/dist/src/issue-time.d.ts.map +1 -1
  128. package/dist/src/issue-time.js +22 -4
  129. package/dist/src/issue-time.js.map +1 -1
  130. package/dist/src/organization-commands.d.ts +2 -0
  131. package/dist/src/organization-commands.d.ts.map +1 -0
  132. package/dist/src/organization-commands.js +14 -0
  133. package/dist/src/organization-commands.js.map +1 -0
  134. package/dist/src/organizations.d.ts +7 -0
  135. package/dist/src/organizations.d.ts.map +1 -0
  136. package/dist/src/organizations.js +16 -0
  137. package/dist/src/organizations.js.map +1 -0
  138. package/dist/src/presentation.d.ts +39 -1
  139. package/dist/src/presentation.d.ts.map +1 -1
  140. package/dist/src/presentation.js +254 -0
  141. package/dist/src/presentation.js.map +1 -1
  142. package/dist/src/server-settings-commands.d.ts +2 -0
  143. package/dist/src/server-settings-commands.d.ts.map +1 -0
  144. package/dist/src/server-settings-commands.js +95 -0
  145. package/dist/src/server-settings-commands.js.map +1 -0
  146. package/dist/src/server-settings.d.ts +18 -0
  147. package/dist/src/server-settings.d.ts.map +1 -0
  148. package/dist/src/server-settings.js +101 -0
  149. package/dist/src/server-settings.js.map +1 -0
  150. package/dist/src/time-settings-commands.d.ts.map +1 -1
  151. package/dist/src/time-settings-commands.js +15 -8
  152. package/dist/src/time-settings-commands.js.map +1 -1
  153. package/dist/src/time-settings.d.ts +15 -7
  154. package/dist/src/time-settings.d.ts.map +1 -1
  155. package/dist/src/time-settings.js +35 -1
  156. package/dist/src/time-settings.js.map +1 -1
  157. package/dist/src/user-directory-commands.d.ts.map +1 -1
  158. package/dist/src/user-directory-commands.js +80 -7
  159. package/dist/src/user-directory-commands.js.map +1 -1
  160. package/dist/src/user-directory.d.ts +26 -8
  161. package/dist/src/user-directory.d.ts.map +1 -1
  162. package/dist/src/user-directory.js +80 -1
  163. package/dist/src/user-directory.js.map +1 -1
  164. package/package.json +3 -2
@@ -1,8 +1,8 @@
1
- import { command } from "@eyeauras/cli-factory";
1
+ import { command, jsonParser } from "@eyeauras/cli-factory";
2
2
  import { requiredText } from "./client.js";
3
- import { pagedRead, projectedRead, readCommand, updateCommand, projectionOptions, readOptions } from "./cli-support.js";
4
- import { applyCommands, assistCommands, assistSearch, countIssues, getSavedQuery, listSavedQueries, parseIssueSelection, } from "./issue-query.js";
5
- import { commandApplied, countRecord, savedQueryTable, withView } from "./presentation.js";
3
+ import { projectedDelete, pagedRead, projectedBodyUpdate, projectedRead, readCommand, updateCommand, projectionOptions, readOptions, writeOptions, notificationOptions } from "./cli-support.js";
4
+ import { deleteSavedQuery, applyCommands, createSavedQuery, updateSavedQuery, assistCommands, assistSearch, countIssues, getSavedQuery, listSavedQueries, parseIssueSelection, } from "./issue-query.js";
5
+ import { mutationWritten, commandApplied, countRecord, savedQueryTable, savedQueryRecord, withView } from "./presentation.js";
6
6
  const queryOptions = [
7
7
  ...projectionOptions,
8
8
  {
@@ -39,7 +39,26 @@ function assistInput(options) {
39
39
  }
40
40
  export const queryRootCommands = [
41
41
  command("commands", "Apply issue commands or get suggestions", [
42
- withView(commandApplied, updateCommand("apply", "Apply a command to the selected issues", async (connection, { options }, context) => applyCommands(connection, String(options.query), options.issues, readOptions(options)), [...queryOptions, { ...issueOption, required: true }])),
42
+ withView(commandApplied, updateCommand("apply", "Apply a command to the selected issues", async (connection, { options }, context) => applyCommands(connection, String(options.query), options.issues, {
43
+ ...writeOptions(options),
44
+ ...(typeof options.comment === "string" ? { comment: options.comment } : {}),
45
+ ...(options.visibility === undefined ? {} : { visibility: options.visibility }),
46
+ ...(typeof options.caret === "number" ? { caret: options.caret } : {}),
47
+ ...(typeof options.silent === "boolean" ? { silent: options.silent } : {}),
48
+ ...(typeof options.runAs === "string" ? { runAs: options.runAs } : {}),
49
+ }), [...queryOptions, { ...issueOption, required: true }, ...notificationOptions,
50
+ ...assistOptions.filter(option => option.flags.startsWith("--caret ")),
51
+ { flags: "--comment <text>", description: "Add a comment with the command" },
52
+ { flags: "--visibility <json>", description: "Set comment visibility", parse: jsonParser("The visibility must be valid JSON.") },
53
+ { flags: "--run-as <login>", description: "Apply as a selected user" },
54
+ { flags: "--silent [boolean]", description: "Apply silently (true or false)", parse(value) {
55
+ if (value === "true")
56
+ return true;
57
+ if (value === "false")
58
+ return false;
59
+ throw new Error("The silent control must be true or false.");
60
+ } },
61
+ ])),
43
62
  readCommand("assist", "Suggest command completions", async (connection, { options }, context) => assistCommands(connection, {
44
63
  ...assistInput(options),
45
64
  ...(options.issues === undefined ? {} : { issues: options.issues }),
@@ -48,7 +67,10 @@ export const queryRootCommands = [
48
67
  command("search", "Inspect search suggestions", [
49
68
  readCommand("assist", "Suggest search completions", async (connection, { options }, context) => assistSearch(connection, assistInput(options)), assistOptions),
50
69
  ]),
51
- command("saved-queries", "Read saved searches", [
70
+ command("saved-queries", "Read and maintain saved searches", [
71
+ projectedDelete("delete <queryID>", "Delete a selected saved search", deleteSavedQuery, mutationWritten("Deleted saved search", "queryID")),
72
+ projectedBodyUpdate("create", "Create a saved search", createSavedQuery, undefined, savedQueryRecord),
73
+ projectedBodyUpdate("update <queryID>", "Update a saved search", updateSavedQuery, undefined, savedQueryRecord),
52
74
  pagedRead("list", "List saved searches", listSavedQueries, savedQueryTable),
53
75
  projectedRead("get <queryID>", "Show a saved search", getSavedQuery),
54
76
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"issue-query-commands.js","sourceRoot":"","sources":["../../src/issue-query-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-query-commands.js","sourceRoot":"","sources":["../../src/issue-query-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAyB,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjM,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,mBAAmB,GAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9H,MAAM,YAAY,GAAgC;IAChD,GAAG,iBAAiB;IACpB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;KAC/C;CACF,CAAC;AAEF,MAAM,WAAW,GAAqB;IACpC,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,2BAA2B;IACxC,KAAK,EAAE,mBAAmB;CAC3B,CAAC;AAEF,MAAM,aAAa,GAAgC;IACjD,GAAG,YAAY;IACf;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,gCAAgC;QAC7C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,aAAa,EAAE,CAAC;gBACtI,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;KACF;CACF,CAAC;AAEF,SAAS,WAAW,CAAC,OAAgC;IACnD,OAAO;QACL,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,CAAC,UAAU,EAAE,yCAAyC,EAAE;QAC7D,QAAQ,CAAC,cAAc,EAAE,aAAa,CACpC,OAAO,EACP,wCAAwC,EACxC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CACvD,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,OAAO,CAAC,MAAkB,EAC1B;YACE,GAAG,YAAY,CAAC,OAAO,CAAC;YACxB,GAAG,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAA4B,EAAE,CAAC;YACjG,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvE,CACF,EACD,CAAC,GAAG,YAAY,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,mBAAmB;YAC1E,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACtE,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YAC5E,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,wBAAwB,EAAE,KAAK,EAAE,UAAU,CAAC,oCAAoC,CAAC,EAAE;YAChI,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACtE,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,gCAAgC,EAAE,KAAK,CAAC,KAAK;oBACvF,IAAI,KAAK,KAAK,MAAM;wBAAE,OAAO,IAAI,CAAC;oBAClC,IAAI,KAAK,KAAK,OAAO;wBAAE,OAAO,KAAK,CAAC;oBACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,CAAC,EAAE;SACJ,CACF,CAAC;QACF,WAAW,CACT,QAAQ,EACR,6BAA6B,EAC7B,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE;YACrE,GAAG,WAAW,CAAC,OAAO,CAAC;YACvB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAkB,EAAE,CAAC;SAChF,CAAC,EACF,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAChC;KACF,CAAC;IACF,OAAO,CAAC,QAAQ,EAAE,4BAA4B,EAAE;QAC9C,WAAW,CACT,QAAQ,EACR,4BAA4B,EAC5B,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAC1F,aAAa,CACd;KACF,CAAC;IACF,OAAO,CAAC,eAAe,EAAE,kCAAkC,EAAE;QAC3D,eAAe,CAAC,kBAAkB,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,eAAe,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;QAC3I,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,CAAC;QACrG,mBAAmB,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,CAAC;QAC/G,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,CAAC;QAC3E,aAAa,CAAC,eAAe,EAAE,qBAAqB,EAAE,aAAa,CAAC;KACrE,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAC/B,OAAO,EACP,kCAAkC,EAClC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CACrD,UAAU,EACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EACrB,WAAW,CAAC,OAAO,CAAC,CACrB,EACD,YAAY,CACb,CAAC;CACH,CAAC"}
@@ -7,10 +7,21 @@ export interface CommandAssistOptions extends AssistOptions {
7
7
  issues?: readonly string[];
8
8
  }
9
9
  export declare function parseIssueSelection(value: string): string[];
10
- export declare function applyCommands(connection: Connection, query: string, issues: readonly string[], options?: ProjectionOptions): Promise<YouTrackObject | null>;
10
+ export interface CommandApplyOptions extends ProjectionOptions {
11
+ muteUpdateNotifications?: boolean;
12
+ comment?: string | null;
13
+ visibility?: YouTrackObject;
14
+ caret?: number;
15
+ silent?: boolean;
16
+ runAs?: string | null;
17
+ }
18
+ export declare function applyCommands(connection: Connection, query: string, issues: readonly string[], options?: CommandApplyOptions): Promise<YouTrackObject | null>;
11
19
  export declare function assistCommands(connection: Connection, options: CommandAssistOptions): Promise<YouTrackObject>;
12
20
  export declare function assistSearch(connection: Connection, options: AssistOptions): Promise<YouTrackObject>;
13
21
  export declare function countIssues(connection: Connection, query: string, options?: ProjectionOptions): Promise<YouTrackObject>;
14
22
  export declare const listSavedQueries: (connection: Connection, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
15
23
  export declare const getSavedQuery: (connection: Connection, queryID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
24
+ export declare function createSavedQuery(connection: Connection, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
25
+ export declare function updateSavedQuery(connection: Connection, queryID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
26
+ export declare function deleteSavedQuery(connection: Connection, queryID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
16
27
  //# sourceMappingURL=issue-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-query.d.ts","sourceRoot":"","sources":["../../src/issue-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAkBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D;AAsCD,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAUhC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAED,eAAO,MAAM,gBAAgB,4GAAyD,CAAC;AACvF,eAAO,MAAM,aAAa,+GAGzB,CAAC"}
1
+ {"version":3,"file":"issue-query.d.ts","sourceRoot":"","sources":["../../src/issue-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B;AAkBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAI3D;AAsCD,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AACD,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,mBAAwB,GAClG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAShC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAED,eAAO,MAAM,gBAAgB,4GAAyD,CAAC;AACvF,eAAO,MAAM,aAAa,+GAGzB,CAAC;AAUF,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAE7G;AACD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAE9H;AAGD,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,kCAE9G"}
@@ -1,4 +1,4 @@
1
- import { encodedID, fields, mutate, page, readCollection, readCollectionAt, readObject, readObjectAt, requiredText, } from "./client.js";
1
+ import { deleteObject, encodedID, fields, mutate, mutationBody, nullableText, page, readCollection, readCollectionAt, readObject, readObjectAt, requiredText, } from "./client.js";
2
2
  const suggestions = "suggestions(option,description,caret,completionStart,completionEnd)";
3
3
  const savedQueryFields = "id,name,query,owner(id,login)";
4
4
  function selectedIssues(ids) {
@@ -40,10 +40,15 @@ function suggestionsResult(value, options) {
40
40
  return value;
41
41
  }
42
42
  export async function applyCommands(connection, query, issues, options = {}) {
43
+ if (options.silent !== undefined && typeof options.silent !== "boolean")
44
+ throw new Error("The silent control must be boolean.");
43
45
  return mutate(connection, "api/commands", {
44
- query: requiredText(query, "query"),
45
- issues: selectedIssues(issues),
46
- }, fields(options, "query,issues(id,idReadable)"));
46
+ ...queryBody({ ...options, query }), issues: selectedIssues(issues),
47
+ ...(options.comment === undefined ? {} : { comment: nullableText(options.comment, "comment") }),
48
+ ...(options.visibility === undefined ? {} : { visibility: mutationBody(options.visibility) }),
49
+ ...(options.silent === undefined ? {} : { silent: options.silent }),
50
+ ...(options.runAs === undefined ? {} : { runAs: nullableText(options.runAs, "runAs") }),
51
+ }, fields(options, "query,issues(id,idReadable)"), options);
47
52
  }
48
53
  export async function assistCommands(connection, options) {
49
54
  return suggestionsResult(await readObject(connection, "api/commands/assist", {
@@ -69,4 +74,19 @@ export async function countIssues(connection, query, options = {}) {
69
74
  }
70
75
  export const listSavedQueries = readCollectionAt("api/savedQueries", savedQueryFields);
71
76
  export const getSavedQuery = readObjectAt((queryID) => `api/savedQueries/${encodedID(queryID, "saved query ID")}`, savedQueryFields);
77
+ function savedQueryBody(input, creating) {
78
+ const body = mutationBody(input);
79
+ return { ...body,
80
+ ...(creating || Object.hasOwn(body, "name") ? { name: requiredText(body.name, "name") } : {}),
81
+ ...(creating || Object.hasOwn(body, "query") ? { query: nullableText(body.query, "query") } : {}), };
82
+ }
83
+ export async function createSavedQuery(connection, input, options = {}) {
84
+ return mutate(connection, "api/savedQueries", savedQueryBody(input, true), fields(options, savedQueryFields));
85
+ }
86
+ export async function updateSavedQuery(connection, queryID, input, options = {}) {
87
+ return mutate(connection, `api/savedQueries/${encodedID(queryID, "saved query ID")}`, savedQueryBody(input, false), fields(options, savedQueryFields));
88
+ }
89
+ export async function deleteSavedQuery(connection, queryID, options = {}) {
90
+ return deleteObject(connection, `api/savedQueries/${encodedID(queryID, "saved query ID")}`, options);
91
+ }
72
92
  //# sourceMappingURL=issue-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-query.js","sourceRoot":"","sources":["../../src/issue-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-query.js","sourceRoot":"","sources":["../../src/issue-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const issueReactionCommand: import("@eyeauras/cli-factory").CommandDefinition;
2
+ //# sourceMappingURL=issue-reactions-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-reactions-commands.d.ts","sourceRoot":"","sources":["../../src/issue-reactions-commands.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,mDAQ/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { command } from "@eyeauras/cli-factory";
2
+ import { pagedRead, projectedRead, projectedBodyUpdate, updateCommand, projectionOptions, readOptions } from "./cli-support.js";
3
+ import { listIssueReactions, getIssueReaction, addIssueReaction, removeIssueReaction } from "./issue-reactions.js";
4
+ import { arg, done, reactionTable, reactionRecord, withView } from "./presentation.js";
5
+ export const issueReactionCommand = command("reaction", "Read and change comment reactions", [
6
+ pagedRead("list <issueID> <commentID>", "List comment reactions", listIssueReactions, reactionTable),
7
+ projectedRead("get <issueID> <commentID> <reactionID>", "Show a comment reaction", getIssueReaction, reactionRecord),
8
+ projectedBodyUpdate("add <issueID> <commentID>", "Add a comment reaction", addIssueReaction, undefined, reactionRecord),
9
+ withView(done(context => `Removed reaction ${arg(context, "reactionID")}.`), updateCommand("remove <issueID> <commentID> <reactionID>", "Remove a comment reaction", (client, { args, options }) => removeIssueReaction(client, args.issueID, args.commentID, args.reactionID, readOptions(options)), projectionOptions)),
10
+ ]);
11
+ //# sourceMappingURL=issue-reactions-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-reactions-commands.js","sourceRoot":"","sources":["../../src/issue-reactions-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChI,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEvF,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,EAAE,mCAAmC,EAAE;IAC3F,SAAS,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,aAAa,CAAC;IACpG,aAAa,CAAC,wCAAwC,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,cAAc,CAAC;IACpH,mBAAmB,CAAC,2BAA2B,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAC;IACvH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,aAAa,CACxF,2CAA2C,EAAE,2BAA2B,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CACtG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,iBAAiB,CACtH,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type Connection, type ProjectionOptions } from "./client.js";
2
+ export declare const listIssueReactions: (connection: Connection, issueID: string, commentID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
3
+ export declare const getIssueReaction: (connection: Connection, issueID: string, commentID: string, reactionID: string, options?: ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
4
+ export declare function addIssueReaction(connection: Connection, issueID: string, commentID: string, input: unknown, options?: ProjectionOptions): Promise<import("./client.js").YouTrackObject | null>;
5
+ export declare function removeIssueReaction(connection: Connection, issueID: string, commentID: string, reactionID: string, options?: ProjectionOptions): Promise<import("./client.js").YouTrackObject | null>;
6
+ //# sourceMappingURL=issue-reactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-reactions.d.ts","sourceRoot":"","sources":["../../src/issue-reactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAE2B,KAAK,UAAU,EAAE,KAAK,iBAAiB,EACxE,MAAM,aAAa,CAAC;AAMrB,eAAO,MAAM,kBAAkB,sKAAiD,CAAC;AACjF,eAAO,MAAM,gBAAgB,4KAG5B,CAAC;AACF,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,wDAKjJ;AACD,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,wDAExJ"}
@@ -0,0 +1,15 @@
1
+ import { deleteObject, encodedID, fields, issuePath, mutate, mutationBody, nullableText, readCollectionAt, readObjectAt, } from "./client.js";
2
+ const reactionFields = "id,reaction,author(id,login)";
3
+ const reactionPath = (issueID, commentID) => `${issuePath(issueID)}/comments/${encodedID(commentID, "comment ID")}/reactions`;
4
+ export const listIssueReactions = readCollectionAt(reactionPath, reactionFields);
5
+ export const getIssueReaction = readObjectAt((issueID, commentID, reactionID) => `${reactionPath(issueID, commentID)}/${encodedID(reactionID, "reaction ID")}`, reactionFields);
6
+ export async function addIssueReaction(connection, issueID, commentID, input, options = {}) {
7
+ const body = mutationBody(input);
8
+ return mutate(connection, reactionPath(issueID, commentID), {
9
+ ...body, reaction: nullableText(body.reaction, "reaction"),
10
+ }, fields(options, reactionFields));
11
+ }
12
+ export async function removeIssueReaction(connection, issueID, commentID, reactionID, options = {}) {
13
+ return deleteObject(connection, `${reactionPath(issueID, commentID)}/${encodedID(reactionID, "reaction ID")}`, options);
14
+ }
15
+ //# sourceMappingURL=issue-reactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-reactions.js","sourceRoot":"","sources":["../../src/issue-reactions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAC9E,gBAAgB,EAAE,YAAY,GAC/B,MAAM,aAAa,CAAC;AAErB,MAAM,cAAc,GAAG,8BAA8B,CAAC;AACtD,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,SAAiB,EAAE,EAAE,CAC1D,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAC1C,CAAC,OAAe,EAAE,SAAiB,EAAE,UAAkB,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,EACzI,cAAc,CACf,CAAC;AACF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,UAAsB,EAAE,OAAe,EAAE,SAAiB,EAAE,KAAc,EAAE,OAAO,GAAsB,EAAE;IAChJ,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;QAC1D,GAAG,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;KAC3D,EAAE,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AACtC,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAsB,EAAE,OAAe,EAAE,SAAiB,EAAE,UAAkB,EAAE,OAAO,GAAsB,EAAE;IACvJ,OAAO,YAAY,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AAC1H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-relations-commands.d.ts","sourceRoot":"","sources":["../../src/issue-relations-commands.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,qBAAqB,qDASjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDA4BlC,CAAC"}
1
+ {"version":3,"file":"issue-relations-commands.d.ts","sourceRoot":"","sources":["../../src/issue-relations-commands.ts"],"names":[],"mappings":"AAoCA,eAAO,MAAM,qBAAqB,qDAqBjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAgClC,CAAC"}
@@ -1,14 +1,26 @@
1
1
  import { command } from "@eyeauras/cli-factory";
2
- import { bodyUpdate, pagedRead, projectedRead, updateCommand } from "./cli-support.js";
3
- import { addIssueLink, addIssueTag, getIssueLink, getLinkType, getTag, listIssueLinks, listIssueTags, listLinkedIssues, listLinkTypes, listTags, removeIssueLink, removeIssueTag, } from "./issue-relations.js";
4
- import { arg, done, issueLinked, issueTagList, linkGroupList, linkGroupRecord, linkTypeRecord, linkTypeTable, linkedIssueList, tagAdded, tagRecord, tagTable, withView, } from "./presentation.js";
2
+ import { projectedDelete, projectedBodyUpdate, pagedRead, projectedRead, updateCommand, notificationOptions, projectionOptions, readOptions } from "./cli-support.js";
3
+ import { listTagIssues, deleteTag, addIssueLink, addIssueTag, createTag, updateTag, getIssueLink, getLinkType, getTag, getIssueTag, listIssueLinks, listIssueTags, listLinkedIssues, createLinkType, updateLinkType, deleteLinkType, listLinkTypes, listTags, removeIssueLink, removeIssueTag, } from "./issue-relations.js";
4
+ import { issueTable, mutationWritten, arg, done, issueLinked, issueTagList, linkGroupList, linkGroupRecord, linkTypeRecord, linkTypeTable, linkedIssueList, tagAdded, tagRecord, tagTable, tagWritten, withView, } from "./presentation.js";
5
5
  export const relationsRootCommands = [
6
- command("link-types", "Inspect issue link types", [
6
+ command("link-types", "Inspect and manage issue link types", [
7
+ projectedBodyUpdate("create", "Create an issue link type", createLinkType, undefined, mutationWritten("Created link type")),
8
+ projectedBodyUpdate("update <type>", "Update a selected link type", updateLinkType, undefined, mutationWritten("Updated link type", "type")),
9
+ projectedDelete("delete <type>", "Delete a selected link type", deleteLinkType, mutationWritten("Deleted link type", "type")),
7
10
  pagedRead("list", "List link types", listLinkTypes, linkTypeTable),
8
11
  projectedRead("get <typeID>", "Show a link type", getLinkType, linkTypeRecord),
9
12
  ]),
10
- command("tags", "Inspect tags", [
11
- pagedRead("list", "List visible tags", listTags, tagTable),
13
+ command("tags", "Inspect and maintain tags", [
14
+ projectedDelete("delete <tagID>", "Delete a selected tag", deleteTag, mutationWritten("Deleted tag", "tagID")),
15
+ command("issues", "Inspect issues using a tag", [
16
+ pagedRead("list <tagID>", "List issues using the tag", listTagIssues, issueTable, [{
17
+ flags: "--custom-field <name>", description: "Select a custom field (repeatable)",
18
+ parse: (value, previous) => [...(Array.isArray(previous) ? previous : []), value],
19
+ }]),
20
+ ]),
21
+ projectedBodyUpdate("create", "Create a working tag", createTag, undefined, tagWritten),
22
+ projectedBodyUpdate("update <tagID>", "Update a working tag", updateTag, undefined, tagWritten),
23
+ pagedRead("list", "List visible tags", listTags, tagTable, [{ flags: "--query <query>", description: "Filter tags by query" }]),
12
24
  projectedRead("get <tagID>", "Show a tag", getTag, tagRecord),
13
25
  ]),
14
26
  ];
@@ -17,13 +29,14 @@ export const relationsIssueChildren = [
17
29
  pagedRead("list <issueID>", "List the issue's link groups", listIssueLinks, linkGroupList),
18
30
  projectedRead("get <issueID> <linkID>", "Show a link group", getIssueLink, linkGroupRecord),
19
31
  pagedRead("issues <issueID> <linkID>", "List the issues in a link group", listLinkedIssues, linkedIssueList),
20
- bodyUpdate("add <issueID> <linkID>", "Link an issue by database id", addIssueLink, undefined, issueLinked),
21
- withView(done((context) => `Unlinked ${arg(context, "targetIssueID")} from ${arg(context, "issueID")}.`), updateCommand("remove <issueID> <linkID> <targetIssueID>", "Unlink an issue", async (connection, { args }, context) => removeIssueLink(connection, args.issueID, args.linkID, args.targetIssueID))),
32
+ projectedBodyUpdate("add <issueID> <linkID>", "Link an issue by database id", addIssueLink, undefined, issueLinked, notificationOptions),
33
+ withView(done((context) => `Unlinked ${arg(context, "targetIssueID")} from ${arg(context, "issueID")}.`), updateCommand("remove <issueID> <linkID> <targetIssueID>", "Unlink an issue", async (connection, { args, options }, context) => removeIssueLink(connection, args.issueID, args.linkID, args.targetIssueID, readOptions(options)), projectionOptions)),
22
34
  ]),
23
35
  command("tags", "Inspect and change the issue's tags", [
36
+ projectedRead("get <issueID> <tagID>", "Show an assigned tag", getIssueTag, tagRecord),
24
37
  pagedRead("list <issueID>", "List the issue's tags", listIssueTags, issueTagList),
25
- bodyUpdate("add <issueID>", "Add a tag by database id", addIssueTag, undefined, tagAdded),
26
- withView(done((context) => `Removed tag ${arg(context, "tagID")} from ${arg(context, "issueID")}.`), updateCommand("remove <issueID> <tagID>", "Remove a tag from the issue", async (connection, { args }, context) => removeIssueTag(connection, args.issueID, args.tagID))),
38
+ projectedBodyUpdate("add <issueID>", "Add a tag by database id", addIssueTag, undefined, tagAdded),
39
+ withView(done((context) => `Removed tag ${arg(context, "tagID")} from ${arg(context, "issueID")}.`), updateCommand("remove <issueID> <tagID>", "Remove a tag from the issue", async (connection, { args, options }, context) => removeIssueTag(connection, args.issueID, args.tagID, readOptions(options)), projectionOptions)),
27
40
  ]),
28
41
  ];
29
42
  //# sourceMappingURL=issue-relations-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-relations-commands.js","sourceRoot":"","sources":["../../src/issue-relations-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,MAAM,EACN,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,GAAG,EACH,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,CAAC,YAAY,EAAE,0BAA0B,EAAE;QAChD,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,CAAC;QAClE,aAAa,CAAC,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,cAAc,CAAC;KAC/E,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE;QAC9B,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAC1D,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,CAAC,OAAO,EAAE,gCAAgC,EAAE;QACjD,SAAS,CAAC,gBAAgB,EAAE,8BAA8B,EAAE,cAAc,EAAE,aAAa,CAAC;QAC1F,aAAa,CAAC,wBAAwB,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC;QAC3F,SAAS,CAAC,2BAA2B,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,eAAe,CAAC;QAC5G,UAAU,CAAC,wBAAwB,EAAE,8BAA8B,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;QAC1G,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa,CACrH,2CAA2C,EAC3C,iBAAiB,EACjB,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CACtC,eAAe,CACb,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,CACnB,CACJ,CAAC;KACH,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,qCAAqC,EAAE;QACrD,SAAS,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,aAAa,EAAE,YAAY,CAAC;QACjF,UAAU,CAAC,eAAe,EAAE,0BAA0B,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;QACzF,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,aAAa,CAChH,0BAA0B,EAC1B,6BAA6B,EAC7B,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CACtC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CACvD,CAAC;KACH,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"issue-relations-commands.js","sourceRoot":"","sources":["../../src/issue-relations-commands.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,25 @@
1
- import { type Connection, type YouTrackObject } from "./client.js";
2
- export declare const listLinkTypes: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
3
- export declare const getLinkType: (connection: Connection, typeID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<YouTrackObject>;
4
- export declare const listIssueLinks: (connection: Connection, issueID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
5
- export declare const getIssueLink: (connection: Connection, issueID: string, linkID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<YouTrackObject>;
6
- export declare const listLinkedIssues: (connection: Connection, issueID: string, linkID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
7
- export declare function addIssueLink(connection: Connection, issueID: string, linkID: string, input: unknown): Promise<YouTrackObject | null>;
8
- export declare function removeIssueLink(connection: Connection, issueID: string, linkID: string, targetIssueID: string): Promise<YouTrackObject | null>;
9
- export declare const listTags: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
10
- export declare const getTag: (connection: Connection, tagID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<YouTrackObject>;
11
- export declare const listIssueTags: (connection: Connection, issueID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
12
- export declare function addIssueTag(connection: Connection, issueID: string, input: unknown): Promise<YouTrackObject | null>;
13
- export declare function removeIssueTag(connection: Connection, issueID: string, tagID: string): Promise<YouTrackObject | null>;
1
+ import { type Connection, type YouTrackObject, type IssueSearchOptions, type WriteOptions, type PageOptions, type ProjectionOptions } from "./client.js";
2
+ export declare const listLinkTypes: (connection: Connection, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
3
+ export declare const getLinkType: (connection: Connection, typeID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
4
+ export declare const listIssueLinks: (connection: Connection, issueID: string, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
5
+ export declare const getIssueLink: (connection: Connection, issueID: string, linkID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
6
+ export declare const listLinkedIssues: (connection: Connection, issueID: string, linkID: string, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
7
+ export declare function addIssueLink(connection: Connection, issueID: string, linkID: string, input: unknown, options?: WriteOptions): Promise<YouTrackObject | null>;
8
+ export declare function removeIssueLink(connection: Connection, issueID: string, linkID: string, targetIssueID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
9
+ export declare function listTags(connection: Connection, options?: IssueSearchOptions): Promise<import("./client.js").YouTrackPage<YouTrackObject>>;
10
+ export declare const getTag: (connection: Connection, tagID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
11
+ export declare const getIssueTag: (connection: Connection, issueID: string, tagID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
12
+ export declare const listIssueTags: (connection: Connection, issueID: string, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
13
+ export declare function addIssueTag(connection: Connection, issueID: string, input: unknown, options?: WriteOptions): Promise<YouTrackObject | null>;
14
+ export declare function removeIssueTag(connection: Connection, issueID: string, tagID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
15
+ export declare function createTag(connection: Connection, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
16
+ export declare function updateTag(connection: Connection, tagID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
17
+ export interface TagIssueOptions extends PageOptions {
18
+ customFields?: readonly string[];
19
+ }
20
+ export declare function listTagIssues(connection: Connection, tagID: string, options?: TagIssueOptions): Promise<import("./client.js").YouTrackPage<YouTrackObject>>;
21
+ export declare function deleteTag(connection: Connection, tagID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
22
+ export declare function createLinkType(connection: Connection, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
23
+ export declare function updateLinkType(connection: Connection, typeID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
24
+ export declare function deleteLinkType(connection: Connection, typeID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
14
25
  //# sourceMappingURL=issue-relations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-relations.d.ts","sourceRoot":"","sources":["../../src/issue-relations.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAkBrB,eAAO,MAAM,aAAa,kIAAyD,CAAC;AACpF,eAAO,MAAM,WAAW,oIAGvB,CAAC;AACF,eAAO,MAAM,cAAc,mJAG1B,CAAC;AACF,eAAO,MAAM,YAAY,qJAAqC,CAAC;AAC/D,eAAO,MAAM,gBAAgB,mKAG5B,CAAC;AAEF,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAKhC;AAED,eAAO,MAAM,QAAQ,kIAA0C,CAAC;AAChE,eAAO,MAAM,MAAM,mIAGlB,CAAC;AACF,eAAO,MAAM,aAAa,mJAGzB,CAAC;AAEF,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC"}
1
+ {"version":3,"file":"issue-relations.d.ts","sourceRoot":"","sources":["../../src/issue-relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAgBL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAkBrB,eAAO,MAAM,aAAa,4GAAyD,CAAC;AACpF,eAAO,MAAM,WAAW,8GAGvB,CAAC;AACF,eAAO,MAAM,cAAc,6HAG1B,CAAC;AACF,eAAO,MAAM,YAAY,+HAAqC,CAAC;AAC/D,eAAO,MAAM,gBAAgB,6IAG5B,CAAC;AAEF,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhC;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,+DAKtF;AACD,eAAO,MAAM,MAAM,6GAGlB,CAAC;AACF,eAAO,MAAM,WAAW,8HAGvB,CAAC;AACF,eAAO,MAAM,aAAa,6HAGzB,CAAC;AAEF,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAEhC;AAED,wBAAsB,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAEtG;AACD,wBAAsB,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAErH;AAGD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AACD,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,+DAIvG;AACD,wBAAsB,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,kCAErG;AAUD,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAE3G;AACD,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,kCAE3H;AACD,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,kCAE3G"}
@@ -1,4 +1,4 @@
1
- import { deleteObject, encodedID, issuePath, mutate, mutationBody, narrative, readCollectionAt, readObjectAt, } from "./client.js";
1
+ import { customFieldQuery, issueListFields, deleteObject, encodedID, issuePath, mutate, mutationBody, namedMutationBody, narrative, nullableText, fields, page, readPage, requiredText, readCollectionAt, readObjectAt, } from "./client.js";
2
2
  const linkTypeFields = "id,name,directed,sourceToTarget,targetToSource";
3
3
  const linkFields = `id,direction,linkType(${linkTypeFields})`;
4
4
  const linkedIssueFields = "id,idReadable,summary";
@@ -17,19 +17,59 @@ export const getLinkType = readObjectAt((typeID) => `api/issueLinkTypes/${encode
17
17
  export const listIssueLinks = readCollectionAt((issueID) => `${issuePath(issueID)}/links`, linkFields);
18
18
  export const getIssueLink = readObjectAt(linkPath, linkFields);
19
19
  export const listLinkedIssues = readCollectionAt((issueID, linkID) => `${linkPath(issueID, linkID)}/issues`, linkedIssueFields);
20
- export async function addIssueLink(connection, issueID, linkID, input) {
21
- return mutate(connection, `${linkPath(issueID, linkID)}/issues`, targetBody(input), linkedIssueFields);
20
+ export async function addIssueLink(connection, issueID, linkID, input, options = {}) {
21
+ return mutate(connection, `${linkPath(issueID, linkID)}/issues`, targetBody(input), linkedIssueFields, options);
22
22
  }
23
- export async function removeIssueLink(connection, issueID, linkID, targetIssueID) {
24
- return deleteObject(connection, `${linkPath(issueID, linkID)}/issues/${encodedID(targetIssueID, "target issue ID")}`);
23
+ export async function removeIssueLink(connection, issueID, linkID, targetIssueID, options = {}) {
24
+ return deleteObject(connection, `${linkPath(issueID, linkID)}/issues/${encodedID(targetIssueID, "target issue ID")}`, options);
25
+ }
26
+ export async function listTags(connection, options = {}) {
27
+ return readPage(connection, "api/tags", {
28
+ ...page(options, tagFields),
29
+ ...(options.query === undefined ? {} : { query: requiredText(options.query, "query") }),
30
+ });
25
31
  }
26
- export const listTags = readCollectionAt("api/tags", tagFields);
27
32
  export const getTag = readObjectAt((tagID) => `api/tags/${encodedID(tagID, "tag ID")}`, tagFields);
33
+ export const getIssueTag = readObjectAt((issueID, tagID) => `${issuePath(issueID)}/tags/${encodedID(tagID, "tag ID")}`, tagFields);
28
34
  export const listIssueTags = readCollectionAt((issueID) => `${issuePath(issueID)}/tags`, tagFields);
29
- export async function addIssueTag(connection, issueID, input) {
30
- return mutate(connection, `${issuePath(issueID)}/tags`, targetBody(input), tagFields);
35
+ export async function addIssueTag(connection, issueID, input, options = {}) {
36
+ return mutate(connection, `${issuePath(issueID)}/tags`, targetBody(input), fields(options, tagFields));
37
+ }
38
+ export async function removeIssueTag(connection, issueID, tagID, options = {}) {
39
+ return deleteObject(connection, `${issuePath(issueID)}/tags/${encodedID(tagID, "tag ID")}`, options);
40
+ }
41
+ export async function createTag(connection, input, options = {}) {
42
+ return mutate(connection, "api/tags", namedMutationBody(input, true), fields(options, tagFields));
43
+ }
44
+ export async function updateTag(connection, tagID, input, options = {}) {
45
+ return mutate(connection, `api/tags/${encodedID(tagID, "tag ID")}`, namedMutationBody(input, false), fields(options, tagFields));
46
+ }
47
+ export async function listTagIssues(connection, tagID, options = {}) {
48
+ return readPage(connection, `api/tags/${encodedID(tagID, "tag ID")}/issues`, {
49
+ ...page(options, issueListFields), ...customFieldQuery(options.customFields),
50
+ });
51
+ }
52
+ export async function deleteTag(connection, tagID, options = {}) {
53
+ return deleteObject(connection, `api/tags/${encodedID(tagID, "tag ID")}`, options);
54
+ }
55
+ function linkTypeBody(input, creating) {
56
+ const body = namedMutationBody(input, creating);
57
+ if (creating || Object.hasOwn(body, "sourceToTarget"))
58
+ narrative(body.sourceToTarget, "sourceToTarget");
59
+ if (creating || Object.hasOwn(body, "targetToSource"))
60
+ nullableText(body.targetToSource, "targetToSource");
61
+ for (const key of ["directed", "aggregation", "readOnly"])
62
+ if (Object.hasOwn(body, key) && typeof body[key] !== "boolean")
63
+ throw new Error(`The ${key} must be boolean.`);
64
+ return body;
65
+ }
66
+ export async function createLinkType(connection, input, options = {}) {
67
+ return mutate(connection, "api/issueLinkTypes", linkTypeBody(input, true), fields(options, linkTypeFields));
68
+ }
69
+ export async function updateLinkType(connection, typeID, input, options = {}) {
70
+ return mutate(connection, `api/issueLinkTypes/${encodedID(typeID, "link type ID")}`, linkTypeBody(input, false), fields(options, linkTypeFields));
31
71
  }
32
- export async function removeIssueTag(connection, issueID, tagID) {
33
- return deleteObject(connection, `${issuePath(issueID)}/tags/${encodedID(tagID, "tag ID")}`);
72
+ export async function deleteLinkType(connection, typeID, options = {}) {
73
+ return deleteObject(connection, `api/issueLinkTypes/${encodedID(typeID, "link type ID")}`, options);
34
74
  }
35
75
  //# sourceMappingURL=issue-relations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-relations.js","sourceRoot":"","sources":["../../src/issue-relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-relations.js","sourceRoot":"","sources":["../../src/issue-relations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-time-commands.d.ts","sourceRoot":"","sources":["../../src/issue-time-commands.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,gBAAgB,qDAa5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,qDAU7B,CAAC"}
1
+ {"version":3,"file":"issue-time-commands.d.ts","sourceRoot":"","sources":["../../src/issue-time-commands.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,gBAAgB,qDA0B5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,qDAc7B,CAAC"}
@@ -1,11 +1,24 @@
1
1
  import { command } from "@eyeauras/cli-factory";
2
- import { pagedRead, projectedBodyUpdate, projectedRead, readCommand, pageOptions, readOptions } from "./cli-support.js";
3
- import { addWorkItem, getIssueWorkItem, getTimeTracking, getWorkItem, listIssueWorkItems, listWorkItems, updateWorkItem, } from "./issue-time.js";
4
- import { withView, workItemTable } from "./presentation.js";
2
+ import { pagedRead, projectedBodyUpdate, projectedRead, readCommand, pageOptions, readOptions, notificationOptions, updateCommand, projectionOptions } from "./cli-support.js";
3
+ import { addWorkItem, deleteIssueWorkItem, getIssueWorkItem, getTimeTracking, getWorkItem, listIssueWorkItems, listWorkItems, updateWorkItem, } from "./issue-time.js";
4
+ import { withView, workItemTable, done, arg } from "./presentation.js";
5
5
  export const timeRootCommands = [
6
6
  command("work-items", "Inspect work items across issues", [
7
- withView(workItemTable, readCommand("list", "List work items", async (connection, { options }, context) => listWorkItems(connection, readOptions(options)), [
7
+ withView(workItemTable, readCommand("list", "List work items", async (connection, { options }, context) => listWorkItems(connection, {
8
+ ...readOptions(options),
9
+ ...(options.author === undefined ? {} : { author: options.author }),
10
+ ...(options.creator === undefined ? {} : { creator: options.creator }),
11
+ ...Object.fromEntries(["startDate", "endDate", "workStart", "workEnd", "createdStart", "createdEnd", "updatedStart", "updatedEnd"]
12
+ .filter(name => typeof options[name] === "string").map(name => [name, options[name]])),
13
+ }), [
8
14
  ...pageOptions,
15
+ ...["author", "creator"].map(name => ({
16
+ flags: `--${name} <value>`, description: `Filter by ${name} (repeatable)`,
17
+ parse: (value, previous) => [...(Array.isArray(previous) ? previous : []), value],
18
+ })),
19
+ ...["start-date", "end-date", "work-start", "work-end", "created-start", "created-end", "updated-start", "updated-end"].map(name => ({
20
+ flags: `--${name} <value>`, description: `Filter by ${name.replaceAll("-", " ")}`,
21
+ })),
9
22
  { flags: "--query <query>", description: "Issue search query" },
10
23
  ])),
11
24
  projectedRead("get <itemID>", "Show a work item", getWorkItem),
@@ -16,10 +29,11 @@ export const timeIssueChildren = [
16
29
  projectedRead("get <issueID>", "Show time-tracking status", getTimeTracking),
17
30
  ]),
18
31
  command("work-items", "Inspect and record time spent", [
32
+ withView(done(context => `Deleted work item ${arg(context, "itemID")}.`), updateCommand("delete <issueID> <itemID>", "Delete a work item", (client, { args, options }) => deleteIssueWorkItem(client, args.issueID, args.itemID, readOptions(options)), projectionOptions)),
19
33
  pagedRead("list <issueID>", "List the issue's work items", listIssueWorkItems, workItemTable),
20
34
  projectedRead("get <issueID> <itemID>", "Show a work item", getIssueWorkItem),
21
- projectedBodyUpdate("add <issueID>", "Add a work item", addWorkItem),
22
- projectedBodyUpdate("update <issueID> <itemID>", "Update a work item", updateWorkItem),
35
+ projectedBodyUpdate("add <issueID>", "Add a work item", addWorkItem, undefined, undefined, notificationOptions),
36
+ projectedBodyUpdate("update <issueID> <itemID>", "Update a work item", updateWorkItem, undefined, undefined, notificationOptions),
23
37
  ]),
24
38
  ];
25
39
  //# sourceMappingURL=issue-time-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-time-commands.js","sourceRoot":"","sources":["../../src/issue-time-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACxH,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,YAAY,EAAE,kCAAkC,EAAE;QACxD,QAAQ,CAAC,aAAa,EAAE,WAAW,CACjC,MAAM,EACN,iBAAiB,EACjB,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,EAC3F;YACI,GAAG,WAAW;YACd,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAE;SAChE,CACJ,CAAC;QACF,aAAa,CAAC,cAAc,EAAE,kBAAkB,EAAE,WAAW,CAAC;KAC/D,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO,CAAC,eAAe,EAAE,6BAA6B,EAAE;QACtD,aAAa,CAAC,eAAe,EAAE,2BAA2B,EAAE,eAAe,CAAC;KAC7E,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,+BAA+B,EAAE;QACrD,SAAS,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,aAAa,CAAC;QAC7F,aAAa,CAAC,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;QAC7E,mBAAmB,CAAC,eAAe,EAAE,iBAAiB,EAAE,WAAW,CAAC;QACpE,mBAAmB,CAAC,2BAA2B,EAAE,oBAAoB,EAAE,cAAc,CAAC;KACvF,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"issue-time-commands.js","sourceRoot":"","sources":["../../src/issue-time-commands.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
- import { type Connection, type IssueSearchOptions, type ProjectionOptions, type YouTrackObject } from "./client.js";
1
+ import { type Connection, type IssueSearchOptions, type ProjectionOptions, type WriteOptions, type YouTrackObject } from "./client.js";
2
2
  export declare const getTimeTracking: (connection: Connection, issueID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
3
3
  export declare const listIssueWorkItems: (connection: Connection, issueID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
4
4
  export declare const getIssueWorkItem: (connection: Connection, issueID: string, itemID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
5
- export declare function listWorkItems(connection: Connection, options?: IssueSearchOptions): Promise<import("./client.js").YouTrackPage<YouTrackObject>>;
5
+ export interface WorkItemOptions extends IssueSearchOptions {
6
+ author?: string | readonly string[];
7
+ creator?: string | readonly string[];
8
+ startDate?: string;
9
+ endDate?: string;
10
+ workStart?: string;
11
+ workEnd?: string;
12
+ createdStart?: string;
13
+ createdEnd?: string;
14
+ updatedStart?: string;
15
+ updatedEnd?: string;
16
+ }
17
+ /** Values remain strings on the wire so a native Long need not fit a JS number. */
18
+ export declare function listWorkItems(connection: Connection, options?: WorkItemOptions): Promise<import("./client.js").YouTrackPage<YouTrackObject>>;
6
19
  export declare const getWorkItem: (connection: Connection, itemID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
7
- export declare function addWorkItem(connection: Connection, issueID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
8
- export declare function updateWorkItem(connection: Connection, issueID: string, itemID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
20
+ export declare function addWorkItem(connection: Connection, issueID: string, input: unknown, options?: WriteOptions): Promise<YouTrackObject | null>;
21
+ export declare function updateWorkItem(connection: Connection, issueID: string, itemID: string, input: unknown, options?: WriteOptions): Promise<YouTrackObject | null>;
22
+ export declare function deleteIssueWorkItem(connection: Connection, issueID: string, itemID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
9
23
  //# sourceMappingURL=issue-time.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-time.d.ts","sourceRoot":"","sources":["../../src/issue-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAYL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAQrB,eAAO,MAAM,eAAe,+GAG3B,CAAC;AACF,eAAO,MAAM,kBAAkB,mJAAkD,CAAC;AAClF,eAAO,MAAM,gBAAgB,+HAI5B,CAAC;AAEF,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,+DAK3F;AAED,eAAO,MAAM,WAAW,8GAGvB,CAAC;AAuEF,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,kCAQhC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,kCAQhC"}
1
+ {"version":3,"file":"issue-time.d.ts","sourceRoot":"","sources":["../../src/issue-time.ts"],"names":[],"mappings":"AAAA,OAAO,EAcL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAQrB,eAAO,MAAM,eAAe,+GAG3B,CAAC;AACF,eAAO,MAAM,kBAAkB,mJAAkD,CAAC;AAClF,eAAO,MAAM,gBAAgB,+HAI5B,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mFAAmF;AACnF,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,eAAoB,+DAiBxF;AAED,eAAO,MAAM,WAAW,8GAGvB,CAAC;AAuEF,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,kCAS3B;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,kCAS3B;AAED,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,kCAEjI"}