@eyeauras/youtrack-cli 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +102 -17
  3. package/dist/src/article-extras-commands.d.ts.map +1 -1
  4. package/dist/src/article-extras-commands.js +3 -1
  5. package/dist/src/article-extras-commands.js.map +1 -1
  6. package/dist/src/articles-commands.d.ts.map +1 -1
  7. package/dist/src/articles-commands.js +8 -6
  8. package/dist/src/articles-commands.js.map +1 -1
  9. package/dist/src/articles.d.ts +9 -0
  10. package/dist/src/articles.d.ts.map +1 -1
  11. package/dist/src/articles.js +19 -0
  12. package/dist/src/articles.js.map +1 -1
  13. package/dist/src/attachment-download-commands.d.ts +1 -0
  14. package/dist/src/attachment-download-commands.d.ts.map +1 -1
  15. package/dist/src/attachment-download-commands.js +11 -6
  16. package/dist/src/attachment-download-commands.js.map +1 -1
  17. package/dist/src/attachment-download.d.ts +1 -0
  18. package/dist/src/attachment-download.d.ts.map +1 -1
  19. package/dist/src/attachment-download.js +10 -2
  20. package/dist/src/attachment-download.js.map +1 -1
  21. package/dist/src/bin.js +0 -0
  22. package/dist/src/cli-support.d.ts +5 -2
  23. package/dist/src/cli-support.d.ts.map +1 -1
  24. package/dist/src/cli-support.js +50 -7
  25. package/dist/src/cli-support.js.map +1 -1
  26. package/dist/src/cli.d.ts.map +1 -1
  27. package/dist/src/cli.js +51 -8
  28. package/dist/src/cli.js.map +1 -1
  29. package/dist/src/client.d.ts +19 -4
  30. package/dist/src/client.d.ts.map +1 -1
  31. package/dist/src/client.js +61 -27
  32. package/dist/src/client.js.map +1 -1
  33. package/dist/src/index.d.ts +5 -4
  34. package/dist/src/index.d.ts.map +1 -1
  35. package/dist/src/index.js +5 -4
  36. package/dist/src/index.js.map +1 -1
  37. package/dist/src/issue-batch.d.ts +28 -0
  38. package/dist/src/issue-batch.d.ts.map +1 -0
  39. package/dist/src/issue-batch.js +138 -0
  40. package/dist/src/issue-batch.js.map +1 -0
  41. package/dist/src/issue-context-commands.d.ts.map +1 -1
  42. package/dist/src/issue-context-commands.js +1 -1
  43. package/dist/src/issue-context-commands.js.map +1 -1
  44. package/dist/src/issue-fields.d.ts +16 -0
  45. package/dist/src/issue-fields.d.ts.map +1 -1
  46. package/dist/src/issue-fields.js +96 -1
  47. package/dist/src/issue-fields.js.map +1 -1
  48. package/package.json +3 -2
@@ -0,0 +1,28 @@
1
+ import { type Connection, type YouTrackObject } from "./client.js";
2
+ import { type IssueWrite } from "./issue-fields.js";
3
+ export interface BatchRow {
4
+ row: number;
5
+ source: Record<string, unknown>;
6
+ issue?: string;
7
+ write: IssueWrite;
8
+ }
9
+ /** Parse a .json array or header-row .csv manifest and validate every row locally. */
10
+ export declare function manifestRows(text: string, path: string): BatchRow[];
11
+ /**
12
+ * Apply rows in order without retries or rollback. HTTP 4xx and pre-write failures are definite;
13
+ * other write failures are uncertain and never enter the resubmittable failed-row manifest.
14
+ */
15
+ export declare function applyIssueBatch(connection: Connection, rows: readonly BatchRow[], options: {
16
+ appDataDirectory: string;
17
+ continueOnError?: boolean;
18
+ failedRows?: string;
19
+ }): Promise<{
20
+ status: string;
21
+ completed: number;
22
+ failed: number;
23
+ uncertain: number;
24
+ unattempted: number;
25
+ rows: YouTrackObject[];
26
+ failedRows?: YouTrackObject | null;
27
+ }>;
28
+ //# sourceMappingURL=issue-batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-batch.d.ts","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,KAAK,UAAU,EAAE,KAAK,cAAc,EAAsB,MAAM,aAAa,CAAC;AACxH,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIhG,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CACnB;AAsCD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA4BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,OAAO,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;GAkDtF"}
@@ -0,0 +1,138 @@
1
+ import { saveProfileFile } from "@eyeauras/cli-factory";
2
+ import { parse } from "csv-parse/sync";
3
+ import { encodedID, mutate, mutationBody } from "./client.js";
4
+ import { issueRequest, issueWrite, issueWriteFields } from "./issue-fields.js";
5
+ const columns = ["action", "issue", "project.id", "project.shortName", "summary", "description", "customFields"];
6
+ function csvRows(text) {
7
+ let records;
8
+ try {
9
+ records = parse(text, {
10
+ bom: true,
11
+ skip_empty_lines: true,
12
+ columns: (header) => {
13
+ if (header.some((column) => !columns.includes(column)) || new Set(header).size !== header.length) {
14
+ throw new Error();
15
+ }
16
+ return header;
17
+ },
18
+ });
19
+ }
20
+ catch {
21
+ throw new Error("YouTrack manifest must be valid CSV with one header of distinct supported columns.");
22
+ }
23
+ return records.map((record) => {
24
+ const row = {};
25
+ for (const [column, cell] of Object.entries(record)) {
26
+ if (cell === "")
27
+ continue;
28
+ if (column.startsWith("project.")) {
29
+ row.project = { ...row.project, [column.slice("project.".length)]: cell };
30
+ }
31
+ else if (column === "customFields") {
32
+ try {
33
+ row.customFields = JSON.parse(cell);
34
+ }
35
+ catch {
36
+ row.customFields = cell; // Invalid JSON then fails row validation with its row number.
37
+ }
38
+ }
39
+ else {
40
+ row[column] = cell;
41
+ }
42
+ }
43
+ return row;
44
+ });
45
+ }
46
+ /** Parse a .json array or header-row .csv manifest and validate every row locally. */
47
+ export function manifestRows(text, path) {
48
+ const csv = /\.csv$/i.test(path);
49
+ if (!csv && !/\.json$/i.test(path))
50
+ throw new Error("YouTrack manifest must be a .json or .csv file.");
51
+ let rows;
52
+ if (csv) {
53
+ rows = csvRows(text);
54
+ }
55
+ else {
56
+ try {
57
+ rows = JSON.parse(text);
58
+ }
59
+ catch {
60
+ throw new Error("YouTrack manifest must be valid JSON.");
61
+ }
62
+ }
63
+ if (!Array.isArray(rows) || !rows.length)
64
+ throw new Error("YouTrack manifest must be a nonempty array of rows.");
65
+ return rows.map((value, index) => {
66
+ try {
67
+ const source = mutationBody(value, ["action", "issue", "project", "summary", "description", "customFields"]);
68
+ const { action, issue, ...body } = source;
69
+ if (action === "create" && issue === undefined)
70
+ return { row: index + 1, source, write: issueWrite(body, true) };
71
+ if (action === "update" && typeof issue === "string") {
72
+ encodedID(issue, "issue ID");
73
+ return { row: index + 1, source, issue, write: issueWrite(body, false) };
74
+ }
75
+ throw new Error("YouTrack manifest action must be create, or update with an issue ID.");
76
+ }
77
+ catch (error) {
78
+ throw new Error(`YouTrack manifest row ${index + 1}: ${error.message.replace(/^YouTrack /, "")}`);
79
+ }
80
+ });
81
+ }
82
+ /**
83
+ * Apply rows in order without retries or rollback. HTTP 4xx and pre-write failures are definite;
84
+ * other write failures are uncertain and never enter the resubmittable failed-row manifest.
85
+ */
86
+ export async function applyIssueBatch(connection, rows, options) {
87
+ if (options.failedRows !== undefined && !/\.json$/i.test(options.failedRows)) {
88
+ throw new Error("YouTrack failed-rows name must end with .json.");
89
+ }
90
+ const results = [];
91
+ let stop = false;
92
+ for (const row of rows) {
93
+ if (stop || connection.signal?.aborted) {
94
+ results.push({ row: row.row, status: "unattempted" });
95
+ continue;
96
+ }
97
+ let sent = false;
98
+ try {
99
+ const { path, body } = await issueRequest(connection, row.write, row.issue);
100
+ sent = true;
101
+ results.push({ row: row.row, status: "completed", result: await mutate(connection, path, body, issueWriteFields) });
102
+ }
103
+ catch (error) {
104
+ const status = error.status;
105
+ const rejected = !sent || (typeof status === "number" && status >= 400 && status < 500);
106
+ results.push({ row: row.row, status: rejected ? "failed" : "uncertain", error: error.message });
107
+ stop = !options.continueOnError;
108
+ }
109
+ }
110
+ const count = (status) => results.filter((result) => result.status === status).length;
111
+ const resubmit = rows.filter((_row, index) => ["failed", "unattempted"].includes(String(results[index]?.status)));
112
+ let failedRows = null;
113
+ if (options.failedRows !== undefined && resubmit.length) {
114
+ try {
115
+ failedRows = {
116
+ ...await saveProfileFile({
117
+ appDataDirectory: options.appDataDirectory,
118
+ name: options.failedRows,
119
+ content: `${JSON.stringify(resubmit.map((row) => row.source), null, 2)}\n`,
120
+ signal: connection.signal,
121
+ }),
122
+ };
123
+ }
124
+ catch (error) {
125
+ failedRows = { error: error.message };
126
+ }
127
+ }
128
+ return {
129
+ status: count("completed") === rows.length ? "completed" : "incomplete",
130
+ completed: count("completed"),
131
+ failed: count("failed"),
132
+ uncertain: count("uncertain"),
133
+ unattempted: count("unattempted"),
134
+ rows: results,
135
+ ...(options.failedRows === undefined ? {} : { failedRows }),
136
+ };
137
+ }
138
+ //# sourceMappingURL=issue-batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue-batch.js","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issue-context-commands.d.ts","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,mBAAmB,qDAU/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,qDAyBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAOlC,CAAC"}
1
+ {"version":3,"file":"issue-context-commands.d.ts","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,mBAAmB,qDAU/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,qDAyBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDAQlC,CAAC"}
@@ -42,6 +42,6 @@ export const contextIssueChildren = [
42
42
  ];
43
43
  export const contextCommentChildren = [
44
44
  projectedRead("get <issueID> <commentID>", "Read a specific issue comment", getComment),
45
- bodyUpdate("update <issueID> <commentID>", "Replace comment text with a nonempty text field", updateComment),
45
+ bodyUpdate("update <issueID> <commentID>", "Replace comment text with a nonempty text field", updateComment, "text"),
46
46
  ];
47
47
  //# sourceMappingURL=issue-context-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-context-commands.js","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,eAAe,GAAgC;IACnD,GAAG,iBAAiB;IACpB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yDAAyD;KACvE;IACD,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gCAAgC,EAAE;CACtE,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,OAAO;QACL,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,YAAY,EAAE,6CAA6C,EAAE;QACnE,WAAW,CACT,MAAM,EACN,gEAAgE,EAChE,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CACzC,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAC7D,eAAe,CAChB;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,UAAU,EAAE,mCAAmC,EAAE;QACvD,WAAW,CACT,gBAAgB,EAChB,gEAAgE,EAChE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,sBAAsB,CACpB,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,mBAAmB,CAAC,OAAO,CAAC,CAC7B,EACH,eAAe,CAChB;KACF,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,uCAAuC,EAAE;QAC1D,SAAS,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,gBAAgB,CAAC;KACtF,CAAC;IACF,OAAO,CAAC,aAAa,EAAE,8CAA8C,EAAE;QACrE,SAAS,CAAC,gBAAgB,EAAE,gDAAgD,EAAE,cAAc,CAAC;QAC7F,aAAa,CACX,0BAA0B,EAC1B,0CAA0C,EAC1C,YAAY,CACb;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,UAAU,CAAC;IACvF,UAAU,CACR,8BAA8B,EAC9B,iDAAiD,EACjD,aAAa,CACd;CACF,CAAC"}
1
+ {"version":3,"file":"issue-context-commands.js","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,eAAe,GAAgC;IACnD,GAAG,iBAAiB;IACpB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yDAAyD;KACvE;IACD,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gCAAgC,EAAE;CACtE,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,OAAO;QACL,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,YAAY,EAAE,6CAA6C,EAAE;QACnE,WAAW,CACT,MAAM,EACN,gEAAgE,EAChE,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CACzC,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAC7D,eAAe,CAChB;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,UAAU,EAAE,mCAAmC,EAAE;QACvD,WAAW,CACT,gBAAgB,EAChB,gEAAgE,EAChE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,sBAAsB,CACpB,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,mBAAmB,CAAC,OAAO,CAAC,CAC7B,EACH,eAAe,CAChB;KACF,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,uCAAuC,EAAE;QAC1D,SAAS,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,gBAAgB,CAAC;KACtF,CAAC;IACF,OAAO,CAAC,aAAa,EAAE,8CAA8C,EAAE;QACrE,SAAS,CAAC,gBAAgB,EAAE,gDAAgD,EAAE,cAAc,CAAC;QAC7F,aAAa,CACX,0BAA0B,EAC1B,0CAA0C,EAC1C,YAAY,CACb;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,UAAU,CAAC;IACvF,UAAU,CACR,8BAA8B,EAC9B,iDAAiD,EACjD,aAAa,EACb,MAAM,CACP;CACF,CAAC"}
@@ -6,4 +6,20 @@ export declare const listUsers: (connection: Connection, options?: import("./cli
6
6
  export declare const listIssueFields: (connection: Connection, issueID: string, options?: import("./client.js").PageOptions | undefined) => Promise<YouTrackObject[]>;
7
7
  export declare const getIssueField: (connection: Connection, issueID: string, fieldID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<YouTrackObject>;
8
8
  export declare function setIssueField(connection: Connection, issueID: string, fieldID: string, input: unknown): Promise<YouTrackObject | null>;
9
+ export declare const issueWriteFields = "id,idReadable,summary,updated";
10
+ /** A locally validated create/update body whose name selectors are not resolved yet. */
11
+ export interface IssueWrite {
12
+ project?: YouTrackObject;
13
+ body: YouTrackObject;
14
+ customFields?: YouTrackObject[];
15
+ }
16
+ /** Validate an issue create/update body without network access. */
17
+ export declare function issueWrite(input: unknown, create: boolean): IssueWrite;
18
+ /** Resolve name selectors with exact reads before the single write; ID-only bodies read nothing. */
19
+ export declare function issueRequest(connection: Connection, write: IssueWrite, issueID?: string): Promise<{
20
+ path: string;
21
+ body: YouTrackObject;
22
+ }>;
23
+ export declare function createIssue(connection: Connection, input: unknown): Promise<YouTrackObject | null>;
24
+ export declare function updateIssue(connection: Connection, id: string, input: unknown): Promise<YouTrackObject | null>;
9
25
  //# sourceMappingURL=issue-fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"issue-fields.d.ts","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,UAAU,uIAAsE,CAAC;AAC9F,eAAO,MAAM,iBAAiB,mIAG7B,CAAC;AACF,eAAO,MAAM,eAAe,wJAI3B,CAAC;AACF,eAAO,MAAM,SAAS,gHAAqD,CAAC;AAC5E,eAAO,MAAM,eAAe,iIAG3B,CAAC;AACF,eAAO,MAAM,aAAa,sJAA4C,CAAC;AAwEvE,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiBhC"}
1
+ {"version":3,"file":"issue-fields.d.ts","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,UAAU,uIAAsE,CAAC;AAC9F,eAAO,MAAM,iBAAiB,mIAG7B,CAAC;AACF,eAAO,MAAM,eAAe,wJAI3B,CAAC;AACF,eAAO,MAAM,SAAS,gHAAqD,CAAC;AAC5E,eAAO,MAAM,eAAe,iIAG3B,CAAC;AACF,eAAO,MAAM,aAAa,sJAA4C,CAAC;AAwEvE,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiBhC;AAED,eAAO,MAAM,gBAAgB,kCAAkC,CAAC;AAEhE,wFAAwF;AACxF,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAC;CACjC;AAWD,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,CAgCtE;AAED,oGAAoG;AACpG,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAqCjD;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGxG;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGhC"}
@@ -1,4 +1,4 @@
1
- import { encodedID, issuePath, mutationBody, mutate, narrative, readCollectionAt, readObjectAt, } from "./client.js";
1
+ import { encodedID, issuePath, mutationBody, mutate, narrative, nullableText, readCollectionAt, readObject, readObjectAt, readPages, } 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) {
@@ -98,4 +98,99 @@ export async function setIssueField(connection, issueID, fieldID, input) {
98
98
  }
99
99
  return mutate(connection, fieldPath(issueID, fieldID), update, issueFieldFields);
100
100
  }
101
+ export const issueWriteFields = "id,idReadable,summary,updated";
102
+ function oneOf(body, keys, label) {
103
+ 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}`) };
109
+ }
110
+ /** Validate an issue create/update body without network access. */
111
+ 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: {} };
117
+ if (create) {
118
+ write.project = oneOf(mutationBody(body.project, ["id", "shortName"]), ["id", "shortName"], "project");
119
+ encodedID(String(Object.values(write.project)[0]), "project selector");
120
+ }
121
+ if (create || Object.hasOwn(body, "summary"))
122
+ write.body.summary = narrative(body.summary, "summary");
123
+ if (Object.hasOwn(body, "description"))
124
+ write.body.description = nullableText(body.description, "description");
125
+ 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.");
128
+ }
129
+ const customFields = body.customFields.map((item) => {
130
+ const entry = mutationBody(item, ["$type", "id", "name", "value"]);
131
+ 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) };
138
+ });
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;
144
+ }
145
+ return write;
146
+ }
147
+ /** Resolve name selectors with exact reads before the single write; ID-only bodies read nothing. */
148
+ 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 };
187
+ }
188
+ export async function createIssue(connection, input) {
189
+ const { path, body } = await issueRequest(connection, issueWrite(input, true));
190
+ return mutate(connection, path, body, issueWriteFields);
191
+ }
192
+ export async function updateIssue(connection, id, input) {
193
+ const { path, body } = await issueRequest(connection, issueWrite(input, false), id);
194
+ return mutate(connection, path, body, issueWriteFields);
195
+ }
101
196
  //# sourceMappingURL=issue-fields.js.map
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eyeauras/youtrack-cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "AI-friendly YouTrack CLI built with AI CLI Factory.",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -20,7 +20,8 @@
20
20
  "node": ">=22"
21
21
  },
22
22
  "dependencies": {
23
- "@eyeauras/cli-factory": "0.2.0"
23
+ "@eyeauras/cli-factory": "0.3.0",
24
+ "csv-parse": "^7.0.3"
24
25
  },
25
26
  "devDependencies": {
26
27
  "msw": "^2.11.0"