@eyeauras/youtrack-cli 0.5.6 → 0.5.7

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 (93) hide show
  1. package/README.md +63 -56
  2. package/dist/src/agile-commands.d.ts.map +1 -1
  3. package/dist/src/agile-commands.js +8 -9
  4. package/dist/src/agile-commands.js.map +1 -1
  5. package/dist/src/agile.d.ts.map +1 -1
  6. package/dist/src/agile.js +9 -15
  7. package/dist/src/agile.js.map +1 -1
  8. package/dist/src/article-extras-commands.d.ts.map +1 -1
  9. package/dist/src/article-extras-commands.js +13 -12
  10. package/dist/src/article-extras-commands.js.map +1 -1
  11. package/dist/src/articles-commands.d.ts.map +1 -1
  12. package/dist/src/articles-commands.js +15 -12
  13. package/dist/src/articles-commands.js.map +1 -1
  14. package/dist/src/articles.d.ts.map +1 -1
  15. package/dist/src/articles.js +13 -14
  16. package/dist/src/articles.js.map +1 -1
  17. package/dist/src/attachment-download-commands.d.ts.map +1 -1
  18. package/dist/src/attachment-download-commands.js +7 -5
  19. package/dist/src/attachment-download-commands.js.map +1 -1
  20. package/dist/src/attachment-download.d.ts +1 -0
  21. package/dist/src/attachment-download.d.ts.map +1 -1
  22. package/dist/src/attachment-download.js +16 -26
  23. package/dist/src/attachment-download.js.map +1 -1
  24. package/dist/src/attachment-form.js +3 -3
  25. package/dist/src/attachment-form.js.map +1 -1
  26. package/dist/src/bundle-values-commands.d.ts.map +1 -1
  27. package/dist/src/bundle-values-commands.js +21 -18
  28. package/dist/src/bundle-values-commands.js.map +1 -1
  29. package/dist/src/cli-support.d.ts +5 -5
  30. package/dist/src/cli-support.d.ts.map +1 -1
  31. package/dist/src/cli-support.js +28 -26
  32. package/dist/src/cli-support.js.map +1 -1
  33. package/dist/src/cli.d.ts.map +1 -1
  34. package/dist/src/cli.js +52 -34
  35. package/dist/src/cli.js.map +1 -1
  36. package/dist/src/client.d.ts +5 -2
  37. package/dist/src/client.d.ts.map +1 -1
  38. package/dist/src/client.js +66 -49
  39. package/dist/src/client.js.map +1 -1
  40. package/dist/src/field-catalog-commands.d.ts.map +1 -1
  41. package/dist/src/field-catalog-commands.js +19 -16
  42. package/dist/src/field-catalog-commands.js.map +1 -1
  43. package/dist/src/group-directory-commands.d.ts.map +1 -1
  44. package/dist/src/group-directory-commands.js +17 -16
  45. package/dist/src/group-directory-commands.js.map +1 -1
  46. package/dist/src/issue-attachments-commands.d.ts.map +1 -1
  47. package/dist/src/issue-attachments-commands.js +9 -8
  48. package/dist/src/issue-attachments-commands.js.map +1 -1
  49. package/dist/src/issue-batch.d.ts +2 -0
  50. package/dist/src/issue-batch.d.ts.map +1 -1
  51. package/dist/src/issue-batch.js +14 -10
  52. package/dist/src/issue-batch.js.map +1 -1
  53. package/dist/src/issue-context-commands.d.ts.map +1 -1
  54. package/dist/src/issue-context-commands.js +13 -12
  55. package/dist/src/issue-context-commands.js.map +1 -1
  56. package/dist/src/issue-context.d.ts.map +1 -1
  57. package/dist/src/issue-context.js +9 -13
  58. package/dist/src/issue-context.js.map +1 -1
  59. package/dist/src/issue-fields-commands.d.ts.map +1 -1
  60. package/dist/src/issue-fields-commands.js +10 -9
  61. package/dist/src/issue-fields-commands.js.map +1 -1
  62. package/dist/src/issue-fields.d.ts +2 -4
  63. package/dist/src/issue-fields.d.ts.map +1 -1
  64. package/dist/src/issue-fields.js +39 -100
  65. package/dist/src/issue-fields.js.map +1 -1
  66. package/dist/src/issue-query-commands.d.ts.map +1 -1
  67. package/dist/src/issue-query-commands.js +15 -14
  68. package/dist/src/issue-query-commands.js.map +1 -1
  69. package/dist/src/issue-query.d.ts.map +1 -1
  70. package/dist/src/issue-query.js +7 -10
  71. package/dist/src/issue-query.js.map +1 -1
  72. package/dist/src/issue-relations-commands.d.ts.map +1 -1
  73. package/dist/src/issue-relations-commands.js +17 -16
  74. package/dist/src/issue-relations-commands.js.map +1 -1
  75. package/dist/src/issue-relations.js +2 -2
  76. package/dist/src/issue-relations.js.map +1 -1
  77. package/dist/src/issue-time-commands.d.ts.map +1 -1
  78. package/dist/src/issue-time-commands.js +12 -11
  79. package/dist/src/issue-time-commands.js.map +1 -1
  80. package/dist/src/issue-time.d.ts.map +1 -1
  81. package/dist/src/issue-time.js +16 -19
  82. package/dist/src/issue-time.js.map +1 -1
  83. package/dist/src/presentation.d.ts +59 -0
  84. package/dist/src/presentation.d.ts.map +1 -0
  85. package/dist/src/presentation.js +467 -0
  86. package/dist/src/presentation.js.map +1 -0
  87. package/dist/src/time-settings-commands.d.ts.map +1 -1
  88. package/dist/src/time-settings-commands.js +13 -11
  89. package/dist/src/time-settings-commands.js.map +1 -1
  90. package/dist/src/user-directory-commands.d.ts.map +1 -1
  91. package/dist/src/user-directory-commands.js +14 -12
  92. package/dist/src/user-directory-commands.js.map +1 -1
  93. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { encodedID, issuePath, mutationBody, mutate, narrative, nullableText, readCollectionAt, readObject, readObjectAt, readPages, } from "./client.js";
1
+ import { encodedID, issuePath, mutationBody, mutate, narrative, nullableText, readCollectionAt, readObjectAt, } from "./client.js";
2
2
  const projectFieldFields = "id,field(id,name,fieldType(id,valueType,isMultiValue)),canBeEmpty,emptyFieldText,isPublic";
3
3
  const issueFieldFields = "id,name,$type,value(id,name,login,minutes,presentation,text),projectCustomField(id)";
4
4
  function projectPath(projectID) {
@@ -14,19 +14,18 @@ export const listUsers = readCollectionAt("api/users", "id,login,fullName");
14
14
  export const listIssueFields = readCollectionAt((issueID) => `${issuePath(issueID)}/customFields`, issueFieldFields);
15
15
  export const getIssueField = readObjectAt(fieldPath, issueFieldFields);
16
16
  function reference(value, user) {
17
- const body = mutationBody(value, user ? ["id", "name", "login"] : ["id", "name"]);
18
- if (Object.keys(body).length === 0) {
19
- throw new Error("YouTrack field reference requires an identity selector.");
17
+ const body = mutationBody(value);
18
+ for (const key of user ? ["id", "name", "login"] : ["id", "name"]) {
19
+ if (Object.hasOwn(body, key))
20
+ narrative(body[key], `value.${key}`);
20
21
  }
21
- return Object.fromEntries(Object.entries(body).map(([key, item]) => [
22
- key, narrative(item, `value.${key}`),
23
- ]));
22
+ return body;
24
23
  }
25
24
  function fieldValue(type, value) {
26
25
  const entity = /^(Single|Multi)(Enum|Build|Version|Owned|Group|User)IssueCustomField$/.exec(type);
27
26
  if (entity?.[1] === "Multi") {
28
27
  if (!Array.isArray(value)) {
29
- throw new Error("YouTrack multi-value field requires an array; use [] to clear it.");
28
+ throw new Error("A multi-value field requires an array; use [] to clear it.");
30
29
  }
31
30
  return value.map((item) => reference(item, entity[2] === "User"));
32
31
  }
@@ -36,7 +35,7 @@ function fieldValue(type, value) {
36
35
  if (![
37
36
  "SimpleIssueCustomField", "DateIssueCustomField", "PeriodIssueCustomField", "TextIssueCustomField",
38
37
  ].includes(type)) {
39
- throw new Error("YouTrack field $type is not a supported concrete issue custom-field type.");
38
+ return value;
40
39
  }
41
40
  if (value === null) {
42
41
  return null;
@@ -46,22 +45,19 @@ function fieldValue(type, value) {
46
45
  if (typeof value === "string" || (typeof value === "number" && Number.isFinite(value))) {
47
46
  return value;
48
47
  }
49
- throw new Error("YouTrack simple field requires text, a finite number or null.");
48
+ throw new Error("A simple field requires text, a finite number or null.");
50
49
  case "DateIssueCustomField":
51
50
  if (typeof value === "number" && Number.isSafeInteger(value)) {
52
51
  return value;
53
52
  }
54
- throw new Error("YouTrack date field requires a safe integer timestamp in milliseconds or null.");
53
+ throw new Error("A date field requires a timestamp in milliseconds or null.");
55
54
  case "PeriodIssueCustomField": {
56
- const body = mutationBody(value, ["minutes", "presentation"]);
57
- if (Object.keys(body).length === 0) {
58
- throw new Error("YouTrack period value requires minutes or presentation.");
59
- }
60
- const result = {};
55
+ const body = mutationBody(value);
56
+ const result = { ...body };
61
57
  if (Object.hasOwn(body, "minutes")) {
62
58
  if (typeof body.minutes !== "number" || !Number.isSafeInteger(body.minutes) ||
63
- body.minutes < 0 || body.minutes > 2_147_483_647) {
64
- throw new Error("YouTrack period minutes must be an integer between 0 and 2147483647.");
59
+ body.minutes < -2_147_483_648 || body.minutes > 2_147_483_647) {
60
+ throw new Error("The period minutes must be a signed 32-bit integer.");
65
61
  }
66
62
  result.minutes = body.minutes;
67
63
  }
@@ -71,119 +67,62 @@ function fieldValue(type, value) {
71
67
  return result;
72
68
  }
73
69
  default: {
74
- const body = mutationBody(value, ["text"]);
75
- if (body.text !== null && typeof body.text !== "string") {
76
- throw new Error("YouTrack text field requires text or null.");
70
+ const body = mutationBody(value);
71
+ if (Object.hasOwn(body, "text") && body.text !== null && typeof body.text !== "string") {
72
+ throw new Error("A text field requires text or null.");
77
73
  }
78
- return { text: body.text };
74
+ return body;
79
75
  }
80
76
  }
81
77
  }
82
78
  export async function setIssueField(connection, issueID, fieldID, input) {
83
- const body = mutationBody(input, ["$type", "value", "event"]);
79
+ const body = mutationBody(input);
84
80
  const type = narrative(body.$type, "field $type");
85
81
  let update;
86
- if (type === "StateMachineIssueCustomField") {
87
- if (Object.hasOwn(body, "value")) {
88
- throw new Error("YouTrack state-machine fields require event instead of value.");
89
- }
90
- const event = mutationBody(body.event, ["id"]);
91
- update = { $type: type, event: { id: narrative(event.id, "event.id") } };
82
+ if (type === "StateMachineIssueCustomField" && Object.hasOwn(body, "event")) {
83
+ const event = mutationBody(body.event);
84
+ update = { ...body, $type: type, event: { ...event, id: narrative(event.id, "event.id") } };
92
85
  }
93
86
  else {
94
- if (Object.hasOwn(body, "event")) {
95
- throw new Error("YouTrack event is only supported for state-machine fields.");
96
- }
97
- update = { $type: type, value: fieldValue(type, body.value) };
87
+ update = { ...body, $type: type,
88
+ ...(Object.hasOwn(body, "value") ? { value: fieldValue(type, body.value) } : {}) };
98
89
  }
99
90
  return mutate(connection, fieldPath(issueID, fieldID), update, issueFieldFields);
100
91
  }
101
92
  export const issueWriteFields = "id,idReadable,summary,updated";
102
- function oneOf(body, keys, label) {
93
+ function textSelectors(body, keys, label) {
103
94
  const present = keys.filter((key) => Object.hasOwn(body, key));
104
- if (present.length !== 1) {
105
- throw new Error(`YouTrack ${label} must use exactly one of ${keys.join(" or ")}.`);
106
- }
107
- const key = present[0];
108
- return { [key]: narrative(body[key], `${label} ${key}`) };
95
+ return Object.fromEntries(present.map(key => [key, narrative(body[key], `${label} ${key}`)]));
109
96
  }
110
97
  /** Validate an issue create/update body without network access. */
111
98
  export function issueWrite(input, create) {
112
- const body = mutationBody(input, [...(create ? ["project"] : []), "summary", "description", "customFields"]);
113
- if (!create && !Object.keys(body).length) {
114
- throw new Error("YouTrack issue update requires summary, description or customFields.");
115
- }
116
- const write = { body: {} };
99
+ const body = mutationBody(input);
100
+ const write = { body: { ...body } };
117
101
  if (create) {
118
- write.project = oneOf(mutationBody(body.project, ["id", "shortName"]), ["id", "shortName"], "project");
119
- encodedID(String(Object.values(write.project)[0]), "project selector");
102
+ const project = mutationBody(body.project);
103
+ write.body.project = { ...project, ...textSelectors(project, ["id", "shortName"], "project") };
120
104
  }
121
105
  if (create || Object.hasOwn(body, "summary"))
122
- write.body.summary = narrative(body.summary, "summary");
106
+ write.body.summary = nullableText(body.summary, "summary");
123
107
  if (Object.hasOwn(body, "description"))
124
108
  write.body.description = nullableText(body.description, "description");
125
109
  if (Object.hasOwn(body, "customFields")) {
126
- if (!Array.isArray(body.customFields) || !body.customFields.length) {
127
- throw new Error("YouTrack customFields must be a nonempty array.");
110
+ if (!Array.isArray(body.customFields)) {
111
+ throw new Error("The customFields must be an array.");
128
112
  }
129
113
  const customFields = body.customFields.map((item) => {
130
- const entry = mutationBody(item, ["$type", "id", "name", "value"]);
114
+ const entry = mutationBody(item);
131
115
  const type = narrative(entry.$type, "field $type");
132
- if (type === "StateMachineIssueCustomField") {
133
- throw new Error("YouTrack state-machine fields change only through issues fields set events or commands apply.");
134
- }
135
- if (!Object.hasOwn(entry, "value"))
136
- throw new Error("YouTrack custom field requires value.");
137
- return { $type: type, ...oneOf(entry, ["id", "name"], "custom field"), value: fieldValue(type, entry.value) };
116
+ return { ...entry, $type: type, ...textSelectors(entry, ["id", "name"], "custom field"),
117
+ ...(Object.hasOwn(entry, "value") ? { value: fieldValue(type, entry.value) } : {}) };
138
118
  });
139
- // Identical selectors fail locally; an id and a name for one field fail after resolution.
140
- if (new Set(customFields.map(({ id, name }) => JSON.stringify([id, name]))).size !== customFields.length) {
141
- throw new Error("YouTrack customFields must not repeat a field.");
142
- }
143
- write.customFields = customFields;
119
+ write.body.customFields = customFields;
144
120
  }
145
121
  return write;
146
122
  }
147
- /** Resolve name selectors with exact reads before the single write; ID-only bodies read nothing. */
123
+ /** Send native selectors without extra catalog reads or body rewriting. */
148
124
  export async function issueRequest(connection, write, issueID) {
149
- const body = { ...write.body };
150
- let fieldsPath = issueID === undefined ? "" : `${issuePath(issueID)}/customFields`;
151
- if (write.project) {
152
- let id = write.project.id;
153
- const shortName = write.project.shortName;
154
- if (typeof shortName === "string") {
155
- const project = await readObject(connection, projectPath(shortName), { fields: "id,shortName" });
156
- if (typeof project.shortName !== "string" || project.shortName.toLowerCase() !== shortName.toLowerCase()) {
157
- throw new Error("YouTrack project shortName did not resolve to that project.");
158
- }
159
- id = project.id;
160
- }
161
- if (typeof id !== "string" || !id)
162
- throw new Error("YouTrack returned an invalid project identity.");
163
- body.project = { id };
164
- fieldsPath = `${projectPath(id)}/customFields`;
165
- }
166
- if (write.customFields) {
167
- const catalog = write.customFields.some((field) => typeof field.name === "string")
168
- ? await readPages(connection, fieldsPath, { fields: issueID === undefined ? "id,field(name)" : "id,name" }, {
169
- top: 50, skip: 0,
170
- })
171
- : [];
172
- const customFields = write.customFields.map(({ name, ...field }) => {
173
- if (typeof name !== "string")
174
- return field;
175
- const matches = catalog.filter((item) => (typeof item.name === "string" ? item.name : item.field?.name) === name);
176
- const id = matches.length === 1 ? matches[0].id : undefined;
177
- if (typeof id !== "string")
178
- throw new Error("YouTrack custom field name must match exactly one field.");
179
- return { ...field, id };
180
- });
181
- if (new Set(customFields.map((field) => field.id)).size !== customFields.length) {
182
- throw new Error("YouTrack customFields must not repeat a field.");
183
- }
184
- body.customFields = customFields;
185
- }
186
- return { path: issueID === undefined ? "api/issues" : issuePath(issueID), body };
125
+ return { path: issueID === undefined ? "api/issues" : issuePath(issueID), body: write.body };
187
126
  }
188
127
  export async function createIssue(connection, input) {
189
128
  const { path, body } = await issueRequest(connection, issueWrite(input, true));
@@ -1 +1 @@
1
- {"version":3,"file":"issue-fields.js","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-fields.js","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-query-commands.d.ts","sourceRoot":"","sources":["../../src/issue-query-commands.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,iBAAiB,qDAmC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qDAW9B,CAAC"}
1
+ {"version":3,"file":"issue-query-commands.d.ts","sourceRoot":"","sources":["../../src/issue-query-commands.ts"],"names":[],"mappings":"AAqDA,eAAO,MAAM,iBAAiB,qDAmC7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qDAW9B,CAAC"}
@@ -2,28 +2,29 @@ import { command } from "@eyeauras/cli-factory";
2
2
  import { requiredText } from "./client.js";
3
3
  import { pagedRead, projectedRead, readCommand, updateCommand, projectionOptions, readOptions } from "./cli-support.js";
4
4
  import { applyCommands, assistCommands, assistSearch, countIssues, getSavedQuery, listSavedQueries, parseIssueSelection, } from "./issue-query.js";
5
+ import { commandApplied, countRecord, savedQueryTable, withView } from "./presentation.js";
5
6
  const queryOptions = [
6
7
  ...projectionOptions,
7
8
  {
8
9
  flags: "--query <query>",
9
- description: "Required YouTrack query text",
10
+ description: "YouTrack query text",
10
11
  required: true,
11
12
  parse: (value) => requiredText(value, "query"),
12
13
  },
13
14
  ];
14
15
  const issueOption = {
15
16
  flags: "--issues <ids>",
16
- description: "Comma-separated explicit issue IDs, never a search query",
17
+ description: "Comma-separated issue IDs",
17
18
  parse: parseIssueSelection,
18
19
  };
19
20
  const assistOptions = [
20
21
  ...queryOptions,
21
22
  {
22
23
  flags: "--caret <position>",
23
- description: "Caret position from zero through the query length",
24
+ description: "Set the command caret position",
24
25
  parse: (value) => {
25
- if (!/^\d+$/.test(value) || !Number.isSafeInteger(Number(value))) {
26
- throw new Error("YouTrack caret must be a nonnegative safe integer.");
26
+ if (!/^-?\d+$/.test(value) || !Number.isSafeInteger(Number(value)) || Number(value) < -2_147_483_648 || Number(value) > 2_147_483_647) {
27
+ throw new Error("The caret must be a signed 32-bit integer.");
27
28
  }
28
29
  return Number(value);
29
30
  },
@@ -37,22 +38,22 @@ function assistInput(options) {
37
38
  };
38
39
  }
39
40
  export const queryRootCommands = [
40
- command("commands", "Apply issue commands or inspect command suggestions", [
41
- updateCommand("apply", "Apply a command to explicitly selected issues", async (connection, { options }, context) => applyCommands(connection, String(options.query), options.issues, readOptions(options)), [...queryOptions, { ...issueOption, required: true }]),
42
- readCommand("assist", "Get command suggestions; this does not execute or guarantee a later command", async (connection, { options }, context) => assistCommands(connection, {
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 }])),
43
+ readCommand("assist", "Suggest command completions", async (connection, { options }, context) => assistCommands(connection, {
43
44
  ...assistInput(options),
44
45
  ...(options.issues === undefined ? {} : { issues: options.issues }),
45
46
  }), [...assistOptions, issueOption]),
46
47
  ]),
47
- command("search", "Inspect YouTrack search suggestions", [
48
- readCommand("assist", "Get completions for a search query", async (connection, { options }, context) => assistSearch(connection, assistInput(options)), assistOptions),
48
+ command("search", "Inspect search suggestions", [
49
+ readCommand("assist", "Suggest search completions", async (connection, { options }, context) => assistSearch(connection, assistInput(options)), assistOptions),
49
50
  ]),
50
- command("saved-queries", "Read saved YouTrack searches", [
51
- pagedRead("list", "List one page of visible saved searches", listSavedQueries),
52
- projectedRead("get <queryID>", "Read a saved search by database ID", getSavedQuery),
51
+ command("saved-queries", "Read saved searches", [
52
+ pagedRead("list", "List saved searches", listSavedQueries, savedQueryTable),
53
+ projectedRead("get <queryID>", "Show a saved search", getSavedQuery),
53
54
  ]),
54
55
  ];
55
56
  export const queryIssueChildren = [
56
- readCommand("count", "Count a search once; -1 means counting is pending", async (connection, { options }, context) => countIssues(connection, String(options.query), readOptions(options)), queryOptions),
57
+ withView(countRecord, readCommand("count", "Count the issues a query matches", async (connection, { options }, context) => countIssues(connection, String(options.query), readOptions(options)), queryOptions)),
57
58
  ];
58
59
  //# sourceMappingURL=issue-query-commands.js.map
@@ -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":"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"}
@@ -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;AAqBD,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,0FAAyD,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,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,0FAAyD,CAAC;AACvF,eAAO,MAAM,aAAa,+GAGzB,CAAC"}
@@ -2,9 +2,6 @@ import { encodedID, fields, mutate, page, readCollection, readCollectionAt, read
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) {
5
- if (ids.length < 1 || new Set(ids).size !== ids.length) {
6
- throw new Error("YouTrack issues must contain one or more distinct explicit issue IDs.");
7
- }
8
5
  return ids.map((id) => {
9
6
  requiredText(id, "issue ID");
10
7
  if (/^\d+-\d+$/.test(id)) {
@@ -13,11 +10,11 @@ function selectedIssues(ids) {
13
10
  if (/^[^\s,]+-\d+$/.test(id)) {
14
11
  return { idReadable: id };
15
12
  }
16
- throw new Error("YouTrack issues require database IDs (2-7) or readable IDs (DEMO-1), not a search query.");
13
+ return { id };
17
14
  });
18
15
  }
19
16
  export function parseIssueSelection(value) {
20
- const ids = value.split(",").map((id) => id.trim());
17
+ const ids = value.split(",");
21
18
  selectedIssues(ids);
22
19
  return ids;
23
20
  }
@@ -25,9 +22,9 @@ function queryBody(options) {
25
22
  const query = requiredText(options.query, "query");
26
23
  if (options.caret !== undefined &&
27
24
  (!Number.isSafeInteger(options.caret) ||
28
- options.caret < 0 ||
29
- options.caret > query.length)) {
30
- throw new Error("YouTrack caret must be an integer between zero and the query length.");
25
+ options.caret < -2_147_483_648 ||
26
+ options.caret > 2_147_483_647)) {
27
+ throw new Error("The caret must be a signed 32-bit integer.");
31
28
  }
32
29
  return {
33
30
  query,
@@ -38,7 +35,7 @@ function suggestionsResult(value, options) {
38
35
  if ((options.fields === undefined || Object.hasOwn(value, "suggestions")) &&
39
36
  (!Array.isArray(value.suggestions) ||
40
37
  value.suggestions.some((item) => item === null || typeof item !== "object" || Array.isArray(item)))) {
41
- throw new Error("YouTrack returned invalid suggestions.");
38
+ throw new Error("Invalid suggestions from YouTrack.");
42
39
  }
43
40
  return value;
44
41
  }
@@ -66,7 +63,7 @@ export async function countIssues(connection, query, options = {}) {
66
63
  (typeof value.count !== "number" ||
67
64
  !Number.isSafeInteger(value.count) ||
68
65
  value.count < -1)) {
69
- throw new Error("YouTrack returned an invalid issue count.");
66
+ throw new Error("Invalid issue count from YouTrack.");
70
67
  }
71
68
  return value;
72
69
  }
@@ -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":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,MAAM,EACN,IAAI,EACJ,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,YAAY,GAKb,MAAM,aAAa,CAAC;AAWrB,MAAM,WAAW,GAAG,qEAAqE,CAAC;AAC1F,MAAM,gBAAgB,GAAG,+BAA+B,CAAC;AAEzD,SAAS,cAAc,CAAC,GAAsB;IAC5C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACpB,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC7B,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,EAAE,EAAE,CAAC;QAChB,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,OAAsB;IACvC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,IACE,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3B,CACE,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;YACpC,OAAO,CAAC,KAAK,GAAG,CAAC,aAAa;YAC9B,OAAO,CAAC,KAAK,GAAG,aAAa,CAC9B,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO;QACL,KAAK;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAqB,EACrB,OAA0B;IAE1B,IACE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACrE,CACE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YACjC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CACjE,CACF,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAsB,EACtB,KAAa,EACb,MAAyB,EACzB,OAAO,GAAsB,EAAE;IAE/B,OAAO,MAAM,CACX,UAAU,EACV,cAAc,EACd;QACE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;QACnC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC;KAC/B,EACD,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAC/C,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAsB,EACtB,OAA6B;IAE7B,OAAO,iBAAiB,CACtB,MAAM,UAAU,CACd,UAAU,EACV,qBAAqB,EACrB;QACE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,kDAAkD,WAAW,EAAE,CAAC;KACzF,EACD;QACE,GAAG,SAAS,CAAC,OAAO,CAAC;QACrB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;KACpF,CACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAAsB,EACtB,OAAsB;IAEtB,OAAO,iBAAiB,CACtB,MAAM,UAAU,CACd,UAAU,EACV,mBAAmB,EACnB,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,WAAW,EAAE,CAAC,EAAE,EACzD,SAAS,CAAC,OAAO,CAAC,CACnB,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,KAAa,EACb,OAAO,GAAsB,EAAE;IAE/B,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,UAAU,EACV,wBAAwB,EACxB,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EACpC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CACxC,CAAC;IACF,IACE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/D,KAAK,CAAC,KAAK,KAAK,IAAI;QACpB,CACE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAC/B,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;YAClC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CACjB,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CACvC,CAAC,OAAe,EAAE,EAAE,CAAC,oBAAoB,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,EAC/E,gBAAgB,CACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-relations-commands.d.ts","sourceRoot":"","sources":["../../src/issue-relations-commands.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,qBAAqB,qDASjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDA4ClC,CAAC"}
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,28 +1,29 @@
1
1
  import { command } from "@eyeauras/cli-factory";
2
2
  import { bodyUpdate, pagedRead, projectedRead, updateCommand } from "./cli-support.js";
3
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";
4
5
  export const relationsRootCommands = [
5
- command("link-types", "Inspect YouTrack issue link types", [
6
- pagedRead("list", "List one page of issue link types", listLinkTypes),
7
- projectedRead("get <typeID>", "Read an issue link type", getLinkType),
6
+ command("link-types", "Inspect issue link types", [
7
+ pagedRead("list", "List link types", listLinkTypes, linkTypeTable),
8
+ projectedRead("get <typeID>", "Show a link type", getLinkType, linkTypeRecord),
8
9
  ]),
9
- command("tags", "Inspect existing YouTrack tags", [
10
- pagedRead("list", "List one page of visible tags", listTags),
11
- projectedRead("get <tagID>", "Read a tag by database ID", getTag),
10
+ command("tags", "Inspect tags", [
11
+ pagedRead("list", "List visible tags", listTags, tagTable),
12
+ projectedRead("get <tagID>", "Show a tag", getTag, tagRecord),
12
13
  ]),
13
14
  ];
14
15
  export const relationsIssueChildren = [
15
- command("links", "Inspect and change issue links; s is outward, t inward, no marker undirected", [
16
- pagedRead("list <issueID>", "List one page of link groups without embedded issues", listIssueLinks),
17
- projectedRead("get <issueID> <linkID>", "Read a link group using its full directional link ID", getIssueLink),
18
- pagedRead("issues <issueID> <linkID>", "List one page of issues linked through this directional link ID", listLinkedIssues),
19
- bodyUpdate("add <issueID> <linkID>", "Link an existing target issue with body id (database ID)", addIssueLink),
20
- updateCommand("remove <issueID> <linkID> <targetIssueID>", "Unlink the target issue; neither issue is deleted", async (connection, { args }, context) => removeIssueLink(connection, args.issueID, args.linkID, args.targetIssueID)),
16
+ command("links", "Inspect and change issue links", [
17
+ pagedRead("list <issueID>", "List the issue's link groups", listIssueLinks, linkGroupList),
18
+ projectedRead("get <issueID> <linkID>", "Show a link group", getIssueLink, linkGroupRecord),
19
+ 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))),
21
22
  ]),
22
- command("tags", "Inspect and change tags assigned to an issue", [
23
- pagedRead("list <issueID>", "List one page of tags assigned to an issue", listIssueTags),
24
- bodyUpdate("add <issueID>", "Assign an existing tag with body id (database ID)", addIssueTag),
25
- updateCommand("remove <issueID> <tagID>", "Remove a tag assignment; the tag is not deleted", async (connection, { args }, context) => removeIssueTag(connection, args.issueID, args.tagID)),
23
+ command("tags", "Inspect and change the issue's tags", [
24
+ 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))),
26
27
  ]),
27
28
  ];
28
29
  //# 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;AAE9B,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,CAAC,YAAY,EAAE,mCAAmC,EAAE;QACzD,SAAS,CAAC,MAAM,EAAE,mCAAmC,EAAE,aAAa,CAAC;QACrE,aAAa,CAAC,cAAc,EAAE,yBAAyB,EAAE,WAAW,CAAC;KACtE,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,gCAAgC,EAAE;QAChD,SAAS,CAAC,MAAM,EAAE,+BAA+B,EAAE,QAAQ,CAAC;QAC5D,aAAa,CAAC,aAAa,EAAE,2BAA2B,EAAE,MAAM,CAAC;KAClE,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,OAAO,CAAC,OAAO,EAAE,8EAA8E,EAAE;QAC/F,SAAS,CACP,gBAAgB,EAChB,sDAAsD,EACtD,cAAc,CACf;QACD,aAAa,CACX,wBAAwB,EACxB,sDAAsD,EACtD,YAAY,CACb;QACD,SAAS,CACP,2BAA2B,EAC3B,iEAAiE,EACjE,gBAAgB,CACjB;QACD,UAAU,CACR,wBAAwB,EACxB,0DAA0D,EAC1D,YAAY,CACb;QACD,aAAa,CACX,2CAA2C,EAC3C,mDAAmD,EACnD,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;KACF,CAAC;IACF,OAAO,CAAC,MAAM,EAAE,8CAA8C,EAAE;QAC9D,SAAS,CAAC,gBAAgB,EAAE,4CAA4C,EAAE,aAAa,CAAC;QACxF,UAAU,CAAC,eAAe,EAAE,mDAAmD,EAAE,WAAW,CAAC;QAC7F,aAAa,CACX,0BAA0B,EAC1B,iDAAiD,EACjD,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;KACF,CAAC;CACH,CAAC"}
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"}
@@ -7,10 +7,10 @@ function linkPath(issueID, linkID) {
7
7
  return `${issuePath(issueID)}/links/${encodedID(linkID, "link ID")}`;
8
8
  }
9
9
  function targetBody(input) {
10
- const body = mutationBody(input, ["id"]);
10
+ const body = mutationBody(input);
11
11
  const id = narrative(body.id, "target id");
12
12
  encodedID(id, "target ID");
13
- return { id };
13
+ return { ...body, id };
14
14
  }
15
15
  export const listLinkTypes = readCollectionAt("api/issueLinkTypes", linkTypeFields);
16
16
  export const getLinkType = readObjectAt((typeID) => `api/issueLinkTypes/${encodedID(typeID, "link type ID")}`, linkTypeFields);
@@ -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":"AAYA,eAAO,MAAM,gBAAgB,qDAa5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,qDAsB7B,CAAC"}
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,24 +1,25 @@
1
1
  import { command } from "@eyeauras/cli-factory";
2
2
  import { pagedRead, projectedBodyUpdate, projectedRead, readCommand, pageOptions, readOptions } from "./cli-support.js";
3
3
  import { addWorkItem, getIssueWorkItem, getTimeTracking, getWorkItem, listIssueWorkItems, listWorkItems, updateWorkItem, } from "./issue-time.js";
4
+ import { withView, workItemTable } from "./presentation.js";
4
5
  export const timeRootCommands = [
5
- command("work-items", "Inspect work items across accessible issues", [
6
- readCommand("list", "List one page of work items, optionally filtered by issue search", async (connection, { options }, context) => listWorkItems(connection, readOptions(options)), [
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
8
  ...pageOptions,
8
- { flags: "--query <query>", description: "YouTrack issue search query" },
9
- ]),
10
- projectedRead("get <itemID>", "Read a work item", getWorkItem),
9
+ { flags: "--query <query>", description: "Issue search query" },
10
+ ])),
11
+ projectedRead("get <itemID>", "Show a work item", getWorkItem),
11
12
  ]),
12
13
  ];
13
14
  export const timeIssueChildren = [
14
15
  command("time-tracking", "Inspect issue time tracking", [
15
- projectedRead("get <issueID>", "Read time-tracking status without expanding work items", getTimeTracking),
16
+ projectedRead("get <issueID>", "Show time-tracking status", getTimeTracking),
16
17
  ]),
17
- command("work-items", "Inspect and record time spent on an issue", [
18
- pagedRead("list <issueID>", "List one page of issue work items", listIssueWorkItems),
19
- projectedRead("get <issueID> <itemID>", "Read an issue work item", getIssueWorkItem),
20
- projectedBodyUpdate("add <issueID>", "Add work time; duration.minutes or duration.presentation is required", addWorkItem),
21
- projectedBodyUpdate("update <issueID> <itemID>", "Update supplied work-item fields; omitted fields stay unchanged", updateWorkItem),
18
+ command("work-items", "Inspect and record time spent", [
19
+ pagedRead("list <issueID>", "List the issue's work items", listIssueWorkItems, workItemTable),
20
+ 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),
22
23
  ]),
23
24
  ];
24
25
  //# 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;AAEzB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,OAAO,CAAC,YAAY,EAAE,6CAA6C,EAAE;QACnE,WAAW,CACT,MAAM,EACN,kEAAkE,EAClE,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,6BAA6B,EAAE;SACzE,CACJ;QACD,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,CACX,eAAe,EACf,wDAAwD,EACxD,eAAe,CAChB;KACF,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,2CAA2C,EAAE;QACjE,SAAS,CAAC,gBAAgB,EAAE,mCAAmC,EAAE,kBAAkB,CAAC;QACpF,aAAa,CAAC,wBAAwB,EAAE,yBAAyB,EAAE,gBAAgB,CAAC;QACpF,mBAAmB,CACjB,eAAe,EACf,sEAAsE,EACtE,WAAW,CACZ;QACD,mBAAmB,CACjB,2BAA2B,EAC3B,iEAAiE,EACjE,cAAc,CACf;KACF,CAAC;CACH,CAAC"}
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 +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,iIAAkD,CAAC;AAClF,eAAO,MAAM,gBAAgB,+HAI5B,CAAC;AAEF,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,6BAK3F;AAED,eAAO,MAAM,WAAW,8GAGvB,CAAC;AA0EF,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,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,iIAAkD,CAAC;AAClF,eAAO,MAAM,gBAAgB,+HAI5B,CAAC;AAEF,wBAAsB,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,GAAE,kBAAuB,6BAK3F;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"}