@eyeauras/youtrack-cli 0.7.1 → 0.8.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 (64) hide show
  1. package/README.md +57 -11
  2. package/dist/src/cli-support.d.ts +8 -6
  3. package/dist/src/cli-support.d.ts.map +1 -1
  4. package/dist/src/cli-support.js +26 -7
  5. package/dist/src/cli-support.js.map +1 -1
  6. package/dist/src/cli.d.ts.map +1 -1
  7. package/dist/src/cli.js +9 -5
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/client.d.ts +16 -9
  10. package/dist/src/client.d.ts.map +1 -1
  11. package/dist/src/client.js +80 -30
  12. package/dist/src/client.js.map +1 -1
  13. package/dist/src/index.d.ts +6 -5
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +5 -4
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/issue-attachments-commands.d.ts.map +1 -1
  18. package/dist/src/issue-attachments-commands.js +7 -4
  19. package/dist/src/issue-attachments-commands.js.map +1 -1
  20. package/dist/src/issue-attachments.d.ts +5 -3
  21. package/dist/src/issue-attachments.d.ts.map +1 -1
  22. package/dist/src/issue-attachments.js +12 -3
  23. package/dist/src/issue-attachments.js.map +1 -1
  24. package/dist/src/issue-context-commands.d.ts.map +1 -1
  25. package/dist/src/issue-context-commands.js +23 -5
  26. package/dist/src/issue-context-commands.js.map +1 -1
  27. package/dist/src/issue-context.d.ts +11 -4
  28. package/dist/src/issue-context.d.ts.map +1 -1
  29. package/dist/src/issue-context.js +15 -3
  30. package/dist/src/issue-context.js.map +1 -1
  31. package/dist/src/issue-fields-commands.d.ts.map +1 -1
  32. package/dist/src/issue-fields-commands.js +2 -2
  33. package/dist/src/issue-fields-commands.js.map +1 -1
  34. package/dist/src/issue-fields.d.ts +4 -4
  35. package/dist/src/issue-fields.d.ts.map +1 -1
  36. package/dist/src/issue-fields.js +7 -7
  37. package/dist/src/issue-fields.js.map +1 -1
  38. package/dist/src/issue-reactions-commands.d.ts +2 -0
  39. package/dist/src/issue-reactions-commands.d.ts.map +1 -0
  40. package/dist/src/issue-reactions-commands.js +11 -0
  41. package/dist/src/issue-reactions-commands.js.map +1 -0
  42. package/dist/src/issue-reactions.d.ts +6 -0
  43. package/dist/src/issue-reactions.d.ts.map +1 -0
  44. package/dist/src/issue-reactions.js +15 -0
  45. package/dist/src/issue-reactions.js.map +1 -0
  46. package/dist/src/issue-relations-commands.d.ts.map +1 -1
  47. package/dist/src/issue-relations-commands.js +8 -7
  48. package/dist/src/issue-relations-commands.js.map +1 -1
  49. package/dist/src/issue-relations.d.ts +10 -9
  50. package/dist/src/issue-relations.d.ts.map +1 -1
  51. package/dist/src/issue-relations.js +16 -10
  52. package/dist/src/issue-relations.js.map +1 -1
  53. package/dist/src/issue-time-commands.d.ts.map +1 -1
  54. package/dist/src/issue-time-commands.js +20 -6
  55. package/dist/src/issue-time-commands.js.map +1 -1
  56. package/dist/src/issue-time.d.ts +18 -4
  57. package/dist/src/issue-time.d.ts.map +1 -1
  58. package/dist/src/issue-time.js +22 -4
  59. package/dist/src/issue-time.js.map +1 -1
  60. package/dist/src/presentation.d.ts +5 -0
  61. package/dist/src/presentation.d.ts.map +1 -1
  62. package/dist/src/presentation.js +30 -0
  63. package/dist/src/presentation.js.map +1 -1
  64. package/package.json +1 -1
package/README.md CHANGED
@@ -23,10 +23,10 @@ for each profile and reimport auxiliary secrets. Existing profiles and permissio
23
23
  Licensed under MIT. See the [release guide](docs/release.md).
24
24
 
25
25
  YouTrack consumes the exact published `@eyeauras/cli-factory` version declared in package.json. The CLI
26
- provides standard profiles/auth/permissions and 118 REST operations: 98 ReadOnly and 20 Update.
26
+ provides standard profiles/auth/permissions and 128 REST operations: 103 ReadOnly and 25 Update.
27
27
  Five workflow leaves reuse those operations instead of adding REST operations: issue and article
28
- attachment download, article export, and `issues batch validate/apply`. There are 121 service
29
- leaves: 116 for REST operations plus these five. Two `--direct` selectors each select a second
28
+ attachment download, article export, and `issues batch validate/apply`. There are 131 service
29
+ leaves: 126 for REST operations plus these five. Two `--direct` selectors each select a second
30
30
  REST endpoint without adding another leaf.
31
31
  The foundational read projections are:
32
32
 
@@ -48,7 +48,7 @@ onboarding or credential access on CLI, execute and RPC. The static errors are
48
48
  `--page-size must be a nonnegative safe decimal integer.` and
49
49
  `--start must be a nonnegative integer.`; they never include the supplied input.
50
50
  Directly callable service methods retain their own range validation.
51
- All 47 offset lists return `{count,items,hasMore,nextStart}` across library, CLI, execute and RPC.
51
+ All 49 offset lists return `{count,items,hasMore,nextStart}` across library, CLI, execute and RPC.
52
52
  Each ordinary list makes one request without lookahead and rejects an oversized server page.
53
53
  Nonempty pages have `hasMore:null`, including short pages: a server cap is not end evidence.
54
54
  Continue at `nextStart`, which advances by actual returned rows. A positive-size empty page has
@@ -80,13 +80,13 @@ npm start -- issues comments list DEMO-1 --page-size 3 --profile youtrack-dev
80
80
  ```
81
81
 
82
82
  Handlers return domain values for human, `--json` and persistent `--json-rpc` output.
83
- Empty collections are `[]`. Signed/credential-bearing URLs and the active bearer token are
83
+ Empty offset collections have an empty `items` array. Signed/credential-bearing URLs and the active bearer token are
84
84
  scrubbed recursively, including explicitly projected nested fields. Unsigned URLs remain
85
85
  unchanged. An HTTP error status fails with Core's `HttpError` (`YouTrack answered HTTP 404.`,
86
86
  codes `http.notFound`, `http.unauthorized` with an `auth login` follow-up, `http.rateLimited` with
87
87
  safe Retry-After text, and so on), never with raw server errors or authentication material.
88
88
  Remote mutations require the Update gate, described below. The ReadOnly download and export
89
- commands write only their explicitly requested local file beneath profile AppData.
89
+ commands write only their explicitly requested local file in the invocation directory or explicit output path.
90
90
 
91
91
  ### Reading output
92
92
 
@@ -108,12 +108,58 @@ Compressed wire length is syntax-checked but not compared with decoded size. HTT
108
108
  Retry-After, empty/null mutation and UTF-8 BOM behavior are unchanged. No request is retried
109
109
  automatically. Runtime memory and service limits still apply.
110
110
 
111
+ ## M01: issue workflows in 0.8.0
112
+
113
+ The API inventory is frozen at 282 published operations (281 business routes plus schema metadata).
114
+ M01 exposes 128 routes. Complete operation contracts cover 119/282 (42.20%); nine reachable routes
115
+ still have explicitly deferred request controls. The [frozen audit](docs/rest-api-coverage/README.md)
116
+ and [current mapping](docs/rest-api-coverage/current/coverage.json) keep these measures separate.
117
+
118
+ - `issues list --custom-field <name>` is repeatable. Names, order and duplicates are preserved
119
+ as repeated native `customFields` parameters, including every request made by `--all`.
120
+ - `issues activity list <issueID> --categories <categories>` reads one offset page;
121
+ `issues activity get <issueID> <activityID>` reads one item. These differ from the native
122
+ `issues activity page` cursor resource. The issue list/page support `--author`,
123
+ `--activity-start` and `--activity-end`; only the cursor page accepts `--activity-id`.
124
+ Cursor values and direction remain opaque, without automatic traversal. Activity time bounds
125
+ remain literal API strings, including native Long values.
126
+ - Issue create/update, custom-field set, comment add/update, attachment upload, link add and
127
+ work-item add/update accept `--fields` and `--mute-update-notifications [boolean]`.
128
+ An omitted notification flag sends no parameter; a bare flag means true, and `false` is sent
129
+ as false. The server enforces Apply Commands Silently; this does not mute workflow notifications.
130
+ Only issue create and comment add accept `--draft-id`. Keep `--body` required; use `{}` when
131
+ publishing a draft without additional fields. Normal issue creation still requires project/summary.
132
+ - `work-items list` adds repeatable `--author` and `--creator`, `--start-date`, `--end-date`, `--work-start`,
133
+ `--work-end`, `--created-start`, `--created-end`, `--updated-start`, `--updated-end`.
134
+ `--start` stays the raw offset; `--work-start` selects the native temporal `start` filter.
135
+ Filter values remain literal strings so a native Long does not lose precision in JavaScript.
136
+ YouTrack validates date formats, interval semantics and applicability.
137
+ - `tags list --query <query>` searches the tag catalogue. `issues tags get <issueID> <tagID>`
138
+ inspects one assignment; tag add and existing tag/link remove commands accept `--fields`.
139
+ - `issues attachments update <issueID> <attachmentID> --body <json>` updates native metadata.
140
+ `issues attachments delete <issueID> <attachmentID>` and
141
+ `issues work-items delete <issueID> <itemID>` remove only the selected resource.
142
+
143
+ Write failures after submission report an unknown outcome when the reply is lost, unreadable or
144
+ invalid, or the server returns 5xx. Check the selected object before retrying; no automatic retry
145
+ is performed. HTTP 4xx rejection and local validation keep their distinct diagnostics.
146
+ - `issues comments reaction list/get/add/remove` take issue/comment IDs, plus a reaction ID
147
+ for get/remove. Add requires `--body` containing native `reaction`; names are not restricted
148
+ to a hard-coded list. Reads use ReadOnly; add/remove use Update, even when remote service
149
+ permissions call these operations reads.
150
+
151
+ Every new read/write supports `--fields`. DELETE projections follow the explicit official
152
+ parameter tables; an omitted projection preserves the prior query-free DELETE. Successful empty
153
+ write bodies return JSON null; nonempty native results are scrubbed as usual. Optional fields do
154
+ not imply response/version guarantees beyond the public contract. All writes stay Update-gated,
155
+ with no implicit lookup, automatic retry, target expansion or binary transfer follow-up.
156
+
111
157
  ## URL and token input
112
158
 
113
159
  Copy the service base address, for example `https://youtrack.example.test/youtrack/`. Include any context path and port; omit `/api`, issue pages and query strings. HTTP and HTTPS are supported. Context segments named `api`, `app/rest`, `admin` or `issues` are
114
160
  valid deployment contexts; the CLI appends its own service endpoints to the configured base.
115
161
  Create/copy a permanent token in your YouTrack profile with the **YouTrack** service scope.
116
- See the [permanent-token guide](https://www.jetbrains.com/help/youtrack/devportal/Manage-Permanent-Token.html). Paste only its value: `FICTIONAL_TOKEN_VALUE` is a fictional example.
162
+ See the [optional API reference: permanent-token guide](https://www.jetbrains.com/help/youtrack/devportal/Manage-Permanent-Token.html). Paste only its value: `FICTIONAL_TOKEN_VALUE` is a fictional example.
117
163
  Do not include `Bearer `, `Authorization:`, or surrounding quotes. The same guidance appears in
118
164
  `profile configure --help`, `auth login --help`, and before interactive input.
119
165
 
@@ -149,8 +195,8 @@ without `/api`, credentials, query or fragment. Normal redirects are followed, i
149
195
  same-host HTTP-to-HTTPS upgrades with authentication. Other origin changes remove credentials.
150
196
 
151
197
  Create a token in your YouTrack profile with the YouTrack service scope and only the
152
- account permissions you need. See JetBrains' [permanent token documentation](https://www.jetbrains.com/help/youtrack/devportal/authentication-with-permanent-token.html).
153
- The identity fields follow [My User Profile](https://www.jetbrains.com/help/youtrack/devportal/resource-api-users-me.html).
198
+ account permissions you need. See JetBrains' [optional API reference: permanent token documentation](https://www.jetbrains.com/help/youtrack/devportal/authentication-with-permanent-token.html).
199
+ The identity fields follow [optional API reference: My User Profile](https://www.jetbrains.com/help/youtrack/devportal/resource-api-users-me.html).
154
200
 
155
201
  The candidate is validated before storage in the operating-system credential store.
156
202
  Non-secret profiles live in current-user AppData for application `youtrack-cli`; the
@@ -427,7 +473,7 @@ a `CliError` carrying `.result`.
427
473
 
428
474
  This is a breaking change: scripts that previously relied on exit 0 plus `status: incomplete`
429
475
  must now handle the failure path and read the same summary from the appropriate surface.
430
- See the [0.6.1 release notes](https://github.com/iXab3r/EyeAuras.CliFactory/blob/6b226682ef762dd49bd1c9d7eb8e7bf18e80acc8/CHANGELOG.md#061).
476
+ See the [optional provenance: 0.6.1 release notes](https://github.com/iXab3r/EyeAuras.CliFactory/blob/bf79b80636bcdd790bbd6c25648842ae5213f267/CHANGELOG.md#061).
431
477
 
432
478
  `--failed-rows <path.json>` saves the `failed` and `unattempted` rows
433
479
  as a manifest at the requested path relative to the invocation working directory for deliberate resubmission; `uncertain` rows are left out and must
@@ -477,7 +523,7 @@ are not availability evidence, and failed prerequisites still fail the overall p
477
523
  writes, automatic pagination or further resource discovery occur. CI and arbitrary URL/token/
478
524
  command arguments are refused; inherited `YOUTRACK_TOKEN` is removed case-insensitively.
479
525
  The shared Core proof invoker keeps the 30-second timeout and separate 64-KiB stdout/stderr bounds;
480
- see the [shared CI and process contract](https://github.com/iXab3r/EyeAuras.CliFactory/blob/bf79b80636bcdd790bbd6c25648842ae5213f267/docs/testing.md).
526
+ see the [shared CI and process contract](docs/testing.md).
481
527
  Do not run it in CI or add it to generic test commands. A failed proof requires local
482
528
  configuration/TLS/permission investigation; its payloads are deliberately not logged.
483
529
 
@@ -1,10 +1,14 @@
1
1
  import { type CommandContext, type CommandDefinition, type GatedTargetCommand, type HumanView, type OptionDefinition } from "@eyeauras/cli-factory";
2
- import { type Connection, type IssueSearchOptions } from "./client.js";
2
+ import { type Connection, type IssueSearchOptions, type WriteOptions } from "./client.js";
3
3
  export declare const bodyOptions: readonly OptionDefinition[];
4
4
  export declare const fileOption: (flags: string, description: string, required?: boolean) => OptionDefinition;
5
5
  /** Read one caller-selected file as strict UTF-8 (initial BOM removed); call only inside an admitted handler. */
6
6
  export declare function readTextFile(path: string): Promise<string>;
7
7
  export declare const projectionOptions: readonly OptionDefinition[];
8
+ /** Omitted controls remain omitted; an explicit false travels to the native API. */
9
+ export declare const notificationOptions: readonly OptionDefinition[];
10
+ export declare const draftOptions: readonly OptionDefinition[];
11
+ export declare function writeOptions(options: Record<string, unknown>): WriteOptions;
8
12
  export declare const pageOptions: readonly OptionDefinition[];
9
13
  export declare function connection(context: CommandContext): Promise<Connection>;
10
14
  export declare const readTarget: GatedTargetCommand<Connection>, updateCommand: GatedTargetCommand<Connection>;
@@ -13,12 +17,10 @@ export declare const readCommand: GatedTargetCommand<Connection>;
13
17
  type PositionalValues<Text extends string> = Text extends `<${string}> ${infer Rest}` ? [string, ...PositionalValues<Rest>] : Text extends `<${string}>` ? [string] : [];
14
18
  type CommandValues<Syntax extends string> = Syntax extends `${string} ${infer Arguments}` ? PositionalValues<Arguments> : [];
15
19
  type ReadOperation<Syntax extends string> = (connection: Connection, ...arguments_: [...CommandValues<Syntax>, IssueSearchOptions]) => unknown;
16
- type BodyOperation<Syntax extends string> = (connection: Connection, ...arguments_: [...CommandValues<Syntax>, unknown]) => unknown;
17
- type ProjectedBodyOperation<Syntax extends string> = (connection: Connection, ...arguments_: [...CommandValues<Syntax>, unknown, IssueSearchOptions]) => unknown;
18
- export declare function pagedRead<const Syntax extends string>(syntax: Syntax, description: string, operation: ReadOperation<Syntax>, view?: HumanView): CommandDefinition;
20
+ type ProjectedBodyOperation<Syntax extends string> = (connection: Connection, ...arguments_: [...CommandValues<Syntax>, unknown, WriteOptions]) => unknown;
21
+ export declare function pagedRead<const Syntax extends string>(syntax: Syntax, description: string, operation: ReadOperation<Syntax>, view?: HumanView, extraOptions?: readonly OptionDefinition[]): CommandDefinition;
19
22
  export declare function projectedRead<const Syntax extends string>(syntax: Syntax, description: string, operation: ReadOperation<Syntax>, view?: HumanView): CommandDefinition;
20
- export declare function bodyUpdate<const Syntax extends string>(syntax: Syntax, description: string, operation: BodyOperation<Syntax>, textField?: string, view?: HumanView): CommandDefinition;
21
- export declare function projectedBodyUpdate<const Syntax extends string>(syntax: Syntax, description: string, operation: ProjectedBodyOperation<Syntax>, textField?: string, view?: HumanView): CommandDefinition;
23
+ export declare function projectedBodyUpdate<const Syntax extends string>(syntax: Syntax, description: string, operation: ProjectedBodyOperation<Syntax>, textField?: string, view?: HumanView, extraOptions?: readonly OptionDefinition[]): CommandDefinition;
22
24
  export declare function readOptions(options: Record<string, unknown>): IssueSearchOptions;
23
25
  export {};
24
26
  //# sourceMappingURL=cli-support.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-support.d.ts","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-support.d.ts","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,27 @@ async function bodyInput(options, textField) {
53
53
  export const projectionOptions = [
54
54
  { flags: "--fields <projection>", description: "YouTrack fields projection" },
55
55
  ];
56
+ /** Omitted controls remain omitted; an explicit false travels to the native API. */
57
+ export const notificationOptions = [{
58
+ flags: "--mute-update-notifications [boolean]", description: "Suppress notifications (true or false)",
59
+ parse(value) {
60
+ if (value === "true")
61
+ return true;
62
+ if (value === "false")
63
+ return false;
64
+ throw new Error("The notification control must be true or false.");
65
+ },
66
+ }];
67
+ export const draftOptions = [
68
+ { flags: "--draft-id <id>", description: "Publish an existing draft" },
69
+ ];
70
+ export function writeOptions(options) {
71
+ return {
72
+ ...(typeof options.fields === "string" ? { fields: options.fields } : {}),
73
+ ...(typeof options.draftId === "string" ? { draftId: options.draftId } : {}),
74
+ ...(typeof options.muteUpdateNotifications === "boolean" ? { muteUpdateNotifications: options.muteUpdateNotifications } : {}),
75
+ };
76
+ }
56
77
  export const pageOptions = [
57
78
  ...projectionOptions,
58
79
  {
@@ -117,17 +138,14 @@ function operationCommand(leaf, syntax, description, operation, options, operati
117
138
  ]), options);
118
139
  return view === undefined ? definition : withView(view, definition);
119
140
  }
120
- export function pagedRead(syntax, description, operation, view) {
121
- return operationCommand(readCommand, syntax, description, operation, pageOptions, (options) => [readOptions(options)], view);
141
+ export function pagedRead(syntax, description, operation, view, extraOptions = []) {
142
+ return operationCommand(readCommand, syntax, description, operation, [...pageOptions, ...extraOptions], (options) => [readOptions(options)], view);
122
143
  }
123
144
  export function projectedRead(syntax, description, operation, view) {
124
145
  return operationCommand(readCommand, syntax, description, operation, projectionOptions, (options) => [readOptions(options)], view);
125
146
  }
126
- export function bodyUpdate(syntax, description, operation, textField, view) {
127
- return operationCommand(updateCommand, syntax, description, operation, bodyInputOptions(textField), async (options) => [await bodyInput(options, textField)], view);
128
- }
129
- export function projectedBodyUpdate(syntax, description, operation, textField, view) {
130
- return operationCommand(updateCommand, syntax, description, operation, [...bodyInputOptions(textField), ...projectionOptions], async (options) => [await bodyInput(options, textField), readOptions(options)], view);
147
+ export function projectedBodyUpdate(syntax, description, operation, textField, view, extraOptions = []) {
148
+ return operationCommand(updateCommand, syntax, description, operation, [...bodyInputOptions(textField), ...projectionOptions, ...extraOptions], async (options) => [await bodyInput(options, textField), writeOptions(options)], view);
131
149
  }
132
150
  export function readOptions(options) {
133
151
  return {
@@ -135,6 +153,7 @@ export function readOptions(options) {
135
153
  ...(typeof options.pageSize === "number" ? { pageSize: options.pageSize } : {}),
136
154
  ...(typeof options.start === "number" ? { start: options.start } : {}),
137
155
  ...(typeof options.query === "string" ? { query: options.query } : {}),
156
+ ...(Array.isArray(options.customField) ? { customFields: options.customField } : {}),
138
157
  ...(typeof options.maxResults === "number" ? { maxResults: options.maxResults } : {}),
139
158
  ...(typeof options.maxBytes === "number" ? { maxBytes: options.maxBytes } : {}),
140
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cli-support.js","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-support.js","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AA0E/B,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,CA2ItE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,uBAAuB,CAAC;AA4E/B,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,cAAc,CAgJtE"}
package/dist/src/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { command, createCli, helpLayout, integerParser, Permission, tokenAuth, } from "@eyeauras/cli-factory";
2
2
  import { addComment, currentUser, getIssue, listComments, listIssues, listProjects, readUser, youTrackUrl, youTrackUrlHelp, } from "./client.js";
3
- import { bodyUpdate, fileOption, pagedRead, pageOptions, projectedRead, readCommand, readOptions, readTextFile, updateCommand, } from "./cli-support.js";
3
+ import { projectedBodyUpdate, notificationOptions, draftOptions, fileOption, pagedRead, pageOptions, projectedRead, readCommand, readOptions, readTextFile, updateCommand, } from "./cli-support.js";
4
4
  import { downloadLimit } from "./attachment-download.js";
5
5
  import { applyIssueBatch, manifestRows } from "./issue-batch.js";
6
6
  import { createIssue, updateIssue } from "./issue-fields.js";
@@ -40,7 +40,7 @@ export function createYouTrackCli(runtime) {
40
40
  name: "youtrack-cli",
41
41
  description: "AI-friendly access to YouTrack",
42
42
  examples: [...issueExamples.slice(0, 3), "article get KB-A-7", "project list"],
43
- version: "0.7.1",
43
+ version: "0.8.0",
44
44
  applicationId: "youtrack-cli",
45
45
  permissions: {},
46
46
  profile: {
@@ -103,13 +103,17 @@ export function createYouTrackCli(runtime) {
103
103
  ...fieldsIssueChildren,
104
104
  ...attachmentsIssueChildren,
105
105
  ...queryIssueChildren,
106
- bodyUpdate("create", "Create an issue", createIssue, "description", createdIssue),
107
- bodyUpdate("update <issueID>", "Update the summary, description or custom fields", updateIssue, "description", updatedIssue),
106
+ projectedBodyUpdate("create", "Create an issue", createIssue, "description", createdIssue, [...notificationOptions, ...draftOptions]),
107
+ projectedBodyUpdate("update <issueID>", "Update the summary, description or custom fields", updateIssue, "description", updatedIssue, notificationOptions),
108
108
  withView(issueTable, readCommand("list", "Search issues", (client, { options }, context) => {
109
109
  return listIssues(client, { ...readOptions(options), progress: context.progress });
110
110
  }, [
111
111
  ...pageOptions,
112
112
  { flags: "--query <query>", description: "YouTrack search query" },
113
+ {
114
+ flags: "--custom-field <name>", description: "Select a custom field (repeatable)",
115
+ parse: (value, previous) => [...(Array.isArray(previous) ? previous : []), value],
116
+ },
113
117
  { flags: "--all", description: "Read every page (needs --max-results)" },
114
118
  {
115
119
  flags: "--max-results <count>", description: "Fail above this many issues",
@@ -146,7 +150,7 @@ export function createYouTrackCli(runtime) {
146
150
  ]),
147
151
  command("comments", "Read and add comments", [
148
152
  ...contextCommentChildren,
149
- bodyUpdate("add <issueID>", "Add a comment", addComment, "text", commentAdded("issueID")),
153
+ projectedBodyUpdate("add <issueID>", "Add a comment", addComment, "text", commentAdded("issueID"), [...notificationOptions, ...draftOptions]),
150
154
  pagedRead("list <issueID>", "List comments", listComments, commentTable),
151
155
  ]),
152
156
  ], { examples: issueExamples }),
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -14,9 +14,15 @@ export type YouTrackValue = null | boolean | number | string | YouTrackObject |
14
14
  export interface YouTrackObject {
15
15
  [field: string]: YouTrackValue;
16
16
  }
17
+ export type QueryParameters = Record<string, string | readonly string[]>;
17
18
  export interface ProjectionOptions {
18
19
  fields?: string;
19
20
  }
21
+ export interface WriteOptions extends ProjectionOptions {
22
+ draftId?: string;
23
+ muteUpdateNotifications?: boolean;
24
+ }
25
+ export declare function writeQuery(options: WriteOptions, projection: string): Record<string, string>;
20
26
  export interface PageOptions extends ProjectionOptions {
21
27
  pageSize?: number;
22
28
  start?: number;
@@ -30,6 +36,7 @@ export interface YouTrackPage<T = YouTrackObject> {
30
36
  }
31
37
  export interface IssueSearchOptions extends PageOptions {
32
38
  query?: string;
39
+ customFields?: readonly string[];
33
40
  /** Read every page; fail instead of returning more issues. */
34
41
  maxResults?: number;
35
42
  progress?: (message: string) => void;
@@ -45,21 +52,21 @@ export declare function fields(options: ProjectionOptions, defaults: string): st
45
52
  export declare function page(options: PageOptions, defaults: string): Record<string, string>;
46
53
  export declare function encodedID(id: string, label?: string): string;
47
54
  export declare function issuePath(id: string): string;
48
- export declare function readObject(connection: Connection, path: string, query: Record<string, string>, body?: YouTrackObject): Promise<YouTrackObject>;
49
- export declare function readNullableObject(connection: Connection, path: string, query: Record<string, string>): Promise<YouTrackObject | null>;
55
+ export declare function readObject(connection: Connection, path: string, query: QueryParameters, body?: YouTrackObject): Promise<YouTrackObject>;
56
+ export declare function readNullableObject(connection: Connection, path: string, query: QueryParameters): Promise<YouTrackObject | null>;
50
57
  export declare function getAttachmentDownloadMetadata(connection: Connection, attachmentPath: string): Promise<{
51
58
  id: string;
52
59
  name: string;
53
60
  mimeType: string | null;
54
61
  url: string;
55
62
  }>;
56
- export declare function readCollection(connection: Connection, path: string, query: Record<string, string>, budget?: ByteBudget): Promise<YouTrackObject[]>;
63
+ export declare function readCollection(connection: Connection, path: string, query: QueryParameters, budget?: ByteBudget): Promise<YouTrackObject[]>;
57
64
  /** One request, without lookahead. A zero-size request supplies no end evidence. */
58
- export declare function readPage(connection: Connection, path: string, query: Record<string, string>, budget?: ByteBudget): Promise<YouTrackPage>;
65
+ export declare function readPage(connection: Connection, path: string, query: QueryParameters, budget?: ByteBudget): Promise<YouTrackPage>;
59
66
  /** Read a complete issue selection; only an empty offset page establishes its end.
60
67
  * Repeated string IDs are dropped; offset paging is not a snapshot of a changing dataset.
61
68
  */
62
- export declare function readPages(connection: Connection, path: string, query: Record<string, string>, { pageSize, start, maxResults, budget, progress }: {
69
+ export declare function readPages(connection: Connection, path: string, query: QueryParameters, { pageSize, start, maxResults, budget, progress }: {
63
70
  pageSize: number;
64
71
  start: number;
65
72
  maxResults: number;
@@ -81,9 +88,9 @@ export declare const listComments: (connection: Connection, issueID: string, opt
81
88
  export declare function mutationBody(value: unknown): YouTrackObject;
82
89
  export declare function narrative(value: unknown, label: string): string;
83
90
  export declare function nullableText(value: unknown, label: string): string | null;
84
- export declare function mutate(connection: Connection, path: string, body: YouTrackObject, projection: string): Promise<YouTrackObject | null>;
85
- export declare function deleteObject(connection: Connection, path: string): Promise<YouTrackObject | null>;
86
- export declare function uploadObjectCollection(connection: Connection, path: string, body: FormData, projection: string): Promise<YouTrackObject[] | null>;
87
- export declare function addComment(connection: Connection, issueID: string, input: unknown): Promise<YouTrackObject | null>;
91
+ export declare function mutate(connection: Connection, path: string, body: YouTrackObject, projection: string, options?: WriteOptions): Promise<YouTrackObject | null>;
92
+ export declare function deleteObject(connection: Connection, path: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
93
+ export declare function uploadObjectCollection(connection: Connection, path: string, body: FormData, projection: string, options?: WriteOptions): Promise<YouTrackObject[] | null>;
94
+ export declare function addComment(connection: Connection, issueID: string, input: unknown, options?: WriteOptions): Promise<YouTrackObject | null>;
88
95
  export {};
89
96
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,16 @@ export function youTrackUrl(value) {
5
5
  const url = parseServerUrl(value, message);
6
6
  return url.href;
7
7
  }
8
+ export function writeQuery(options, projection) {
9
+ if (options.muteUpdateNotifications !== undefined && typeof options.muteUpdateNotifications !== "boolean") {
10
+ throw new Error("The notification control must be boolean.");
11
+ }
12
+ return {
13
+ fields: fields(options, projection),
14
+ ...(options.draftId === undefined ? {} : { draftId: requiredText(options.draftId, "draft ID") }),
15
+ ...(options.muteUpdateNotifications === undefined ? {} : { muteUpdateNotifications: String(options.muteUpdateNotifications) }),
16
+ };
17
+ }
8
18
  const issueListFields = "id,idReadable,summary,project(id,name,shortName),updated,resolved";
9
19
  const commentFields = "id,text,author(id,login),created,updated";
10
20
  export function requiredText(value, label) {
@@ -102,22 +112,35 @@ function object(value) {
102
112
  }
103
113
  async function request(connection, path, query, responseName = "JSON", options = {}) {
104
114
  const url = new URL(path, youTrackUrl(connection.baseUrl));
105
- url.search = new URLSearchParams(query).toString();
115
+ const parameters = new URLSearchParams();
116
+ for (const [name, value] of Object.entries(query)) {
117
+ if (typeof value === "string")
118
+ parameters.append(name, value);
119
+ else
120
+ for (const item of value)
121
+ parameters.append(name, item);
122
+ }
123
+ url.search = parameters.toString();
106
124
  const token = normalizeBearerToken(connection.token);
107
125
  const body = options.body;
108
126
  const multipart = body instanceof FormData;
127
+ const init = {
128
+ headers: {
129
+ Accept: "application/json",
130
+ Authorization: `Bearer ${token}`,
131
+ ...(body === undefined || multipart ? {} : { "Content-Type": "application/json" }),
132
+ },
133
+ method: options.method ?? "GET",
134
+ ...(body === undefined ? {} : { body: multipart ? body : JSON.stringify(body) }),
135
+ ...(connection.signal === undefined ? {} : { signal: connection.signal }),
136
+ };
137
+ if (options.onSubmit) {
138
+ connection.signal?.throwIfAborted();
139
+ options.onSubmit();
140
+ }
109
141
  let response;
110
142
  try {
111
- response = await fetchWithRedirects(connection.fetch ?? globalThis.fetch, url, {
112
- headers: {
113
- Accept: "application/json",
114
- Authorization: `Bearer ${token}`,
115
- ...(body === undefined || multipart ? {} : { "Content-Type": "application/json" }),
116
- },
117
- method: options.method ?? "GET",
118
- ...(body === undefined ? {} : { body: multipart ? body : JSON.stringify(body) }),
119
- ...(connection.signal === undefined ? {} : { signal: connection.signal }),
120
- });
143
+ response = await fetchWithRedirects(connection.fetch ?? globalThis.fetch, url, init);
121
144
  }
122
145
  catch (cause) {
123
146
  throw new CliError("Could not reach YouTrack; check the URL, connectivity and TLS.", {
@@ -314,6 +337,13 @@ export async function listIssues(connection, options = {}) {
314
337
  const query = {
315
338
  ...page(options, issueListFields),
316
339
  ...(options.query === undefined ? {} : { query: requiredText(options.query, "query") }),
340
+ ...(options.customFields === undefined ? {} : {
341
+ customFields: (() => {
342
+ if (!Array.isArray(options.customFields))
343
+ throw new Error("The custom fields must be a list of names.");
344
+ return options.customFields.map(value => requiredText(value, "custom field name"));
345
+ })(),
346
+ }),
317
347
  };
318
348
  const budget = options.maxBytes === undefined
319
349
  ? undefined
@@ -366,33 +396,53 @@ export function nullableText(value, label) {
366
396
  }
367
397
  return value;
368
398
  }
369
- export async function mutate(connection, path, body, projection) {
370
- const value = await request(connection, path, { fields: projection }, "JSON", {
371
- method: "POST", body, allowEmpty: true,
399
+ /** A received 4xx is a rejection; other post-submission failures cannot prove no write. */
400
+ async function mutationResult(operation) {
401
+ let submitted = false;
402
+ try {
403
+ return await operation(() => { submitted = true; });
404
+ }
405
+ catch (error) {
406
+ if (submitted && error instanceof Error && !(error instanceof HttpError && error.status >= 400 && error.status < 500)) {
407
+ error.message += " The write outcome is unknown.";
408
+ }
409
+ throw error;
410
+ }
411
+ }
412
+ export async function mutate(connection, path, body, projection, options = {}) {
413
+ const query = writeQuery(options, projection);
414
+ return mutationResult(async (onSubmit) => {
415
+ const value = await request(connection, path, query, "JSON", {
416
+ method: "POST", body, allowEmpty: true, onSubmit,
417
+ });
418
+ return value === null ? null : object(scrub(value, connection.token.trim()));
372
419
  });
373
- return value === null ? null : object(scrub(value, connection.token.trim()));
374
420
  }
375
- export async function deleteObject(connection, path) {
376
- const value = await request(connection, path, {}, "JSON", { method: "DELETE", allowEmpty: true });
377
- return value === null ? null : object(scrub(value, connection.token.trim()));
421
+ export async function deleteObject(connection, path, options = {}) {
422
+ const query = options.fields === undefined ? {} : { fields: fields(options, "") };
423
+ return mutationResult(async (onSubmit) => {
424
+ const value = await request(connection, path, query, "JSON", { method: "DELETE", allowEmpty: true, onSubmit });
425
+ return value === null ? null : object(scrub(value, connection.token.trim()));
426
+ });
378
427
  }
379
- export async function uploadObjectCollection(connection, path, body, projection) {
380
- const value = await request(connection, path, { fields: projection }, "JSON", {
381
- method: "POST", body, allowEmpty: true,
428
+ export async function uploadObjectCollection(connection, path, body, projection, options = {}) {
429
+ const query = writeQuery(options, projection);
430
+ return mutationResult(async (onSubmit) => {
431
+ const value = await request(connection, path, query, "JSON", {
432
+ method: "POST", body, allowEmpty: true, onSubmit,
433
+ });
434
+ if (value === null)
435
+ return null;
436
+ if (!Array.isArray(value))
437
+ throw new Error("Invalid upload collection response from YouTrack.");
438
+ return value.map((item) => object(scrub(item, connection.token.trim())));
382
439
  });
383
- if (value === null) {
384
- return null;
385
- }
386
- if (!Array.isArray(value)) {
387
- throw new Error("Invalid upload collection response from YouTrack.");
388
- }
389
- return value.map((item) => object(scrub(item, connection.token.trim())));
390
440
  }
391
- export async function addComment(connection, issueID, input) {
441
+ export async function addComment(connection, issueID, input, options = {}) {
392
442
  const body = mutationBody(input);
393
443
  return mutate(connection, `${issuePath(issueID)}/comments`, {
394
444
  ...body,
395
445
  ...(Object.hasOwn(body, "text") ? { text: nullableText(body.text, "text") } : {}),
396
- }, commentFields);
446
+ }, commentFields, options);
397
447
  }
398
448
  //# sourceMappingURL=client.js.map