@eyeauras/youtrack-cli 0.6.1 → 0.7.1
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.
- package/README.md +51 -31
- package/dist/src/agile.d.ts +2 -2
- package/dist/src/agile.d.ts.map +1 -1
- package/dist/src/article-extras.d.ts +2 -2
- package/dist/src/article-extras.d.ts.map +1 -1
- package/dist/src/articles-commands.js +1 -1
- package/dist/src/articles-commands.js.map +1 -1
- package/dist/src/articles.d.ts +3 -3
- package/dist/src/articles.d.ts.map +1 -1
- package/dist/src/bundle-values.d.ts +6 -6
- package/dist/src/bundle-values.d.ts.map +1 -1
- package/dist/src/cli-support.d.ts +3 -1
- package/dist/src/cli-support.d.ts.map +1 -1
- package/dist/src/cli-support.js +24 -8
- package/dist/src/cli-support.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +2 -5
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +20 -12
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +48 -29
- package/dist/src/client.js.map +1 -1
- package/dist/src/field-catalog.d.ts +6 -6
- package/dist/src/field-catalog.d.ts.map +1 -1
- package/dist/src/group-directory.d.ts +8 -8
- package/dist/src/group-directory.d.ts.map +1 -1
- package/dist/src/group-directory.js +3 -3
- package/dist/src/group-directory.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/issue-attachments.d.ts +1 -1
- package/dist/src/issue-attachments.d.ts.map +1 -1
- package/dist/src/issue-context.d.ts +2 -2
- package/dist/src/issue-context.d.ts.map +1 -1
- package/dist/src/issue-fields.d.ts +3 -3
- package/dist/src/issue-fields.d.ts.map +1 -1
- package/dist/src/issue-query.d.ts +1 -1
- package/dist/src/issue-query.d.ts.map +1 -1
- package/dist/src/issue-relations.d.ts +5 -5
- package/dist/src/issue-relations.d.ts.map +1 -1
- package/dist/src/issue-time.d.ts +2 -2
- package/dist/src/issue-time.d.ts.map +1 -1
- package/dist/src/issue-time.js +2 -2
- package/dist/src/issue-time.js.map +1 -1
- package/dist/src/presentation.d.ts.map +1 -1
- package/dist/src/presentation.js +30 -6
- package/dist/src/presentation.js.map +1 -1
- package/dist/src/time-settings.d.ts +2 -2
- package/dist/src/time-settings.d.ts.map +1 -1
- package/dist/src/user-directory.d.ts +4 -4
- package/dist/src/user-directory.d.ts.map +1 -1
- package/package.json +17 -10
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The scoped package provides the `youtrack-cli` command:
|
|
4
4
|
|
|
5
|
-
Agents use the [shared YouTrack workflow](
|
|
5
|
+
Agents use the [shared YouTrack workflow](docs/agent-workflow.md):
|
|
6
6
|
our executable is primary; the separate Python `yt.exe` is an explicit fallback.
|
|
7
7
|
The guide covers field selection, paging and preserving tracker/profile ownership.
|
|
8
8
|
|
|
@@ -20,9 +20,9 @@ On Windows, Core now stores DPAPI CurrentUser encrypted files under the selected
|
|
|
20
20
|
AppData `secrets/` directory. Credential Manager is no longer used or migrated. Sign in again
|
|
21
21
|
for each profile and reimport auxiliary secrets. Existing profiles and permissions remain.
|
|
22
22
|
|
|
23
|
-
Licensed under MIT. See the [release guide](
|
|
23
|
+
Licensed under MIT. See the [release guide](docs/release.md).
|
|
24
24
|
|
|
25
|
-
YouTrack
|
|
25
|
+
YouTrack consumes the exact published `@eyeauras/cli-factory` version declared in package.json. The CLI
|
|
26
26
|
provides standard profiles/auth/permissions and 118 REST operations: 98 ReadOnly and 20 Update.
|
|
27
27
|
Five workflow leaves reuse those operations instead of adding REST operations: issue and article
|
|
28
28
|
attachment download, article export, and `issues batch validate/apply`. There are 121 service
|
|
@@ -40,29 +40,43 @@ The foundational read projections are:
|
|
|
40
40
|
|
|
41
41
|
REST reads support explicit `--fields <projection>`. Projection results retain the server's
|
|
42
42
|
field names, `$type` and nullable values; authentication always validates fixed `id,login`.
|
|
43
|
-
Offset collections use `--
|
|
43
|
+
Offset collections use `--page-size 50 --start 0` by default. Page size requests rows per HTTP
|
|
44
|
+
page; start is the zero-based raw offset. Both must be nonnegative safe integers, with a safe sum.
|
|
44
45
|
Paging accepts unsigned decimal digits, including leading zeros; signs (including `-0`), whitespace,
|
|
45
46
|
fractions, exponents and unsafe integers reject. Invalid syntax, range and overflow now fail before
|
|
46
47
|
onboarding or credential access on CLI, execute and RPC. The static errors are
|
|
47
|
-
`--
|
|
48
|
-
`--
|
|
48
|
+
`--page-size must be a nonnegative safe decimal integer.` and
|
|
49
|
+
`--start must be a nonnegative integer.`; they never include the supplied input.
|
|
49
50
|
Directly callable service methods retain their own range validation.
|
|
50
|
-
|
|
51
|
+
All 47 offset lists return `{count,items,hasMore,nextStart}` across library, CLI, execute and RPC.
|
|
52
|
+
Each ordinary list makes one request without lookahead and rejects an oversized server page.
|
|
53
|
+
Nonempty pages have `hasMore:null`, including short pages: a server cap is not end evidence.
|
|
54
|
+
Continue at `nextStart`, which advances by actual returned rows. A positive-size empty page has
|
|
55
|
+
`hasMore:false`; a zero-size request has unknown completeness and no next offset. Multi-page reads
|
|
51
56
|
happen only for the explicit `issues list --all` described below. Issue writes send selectors
|
|
52
57
|
directly to the API without nested discovery requests. Issue IDs are encoded as opaque path segments, including readable IDs such as `DEMO-1`.
|
|
53
58
|
|
|
54
|
-
`issues list --all --max-results <n>` reads every page (`--
|
|
59
|
+
`issues list --all --max-results <n>` reads every page (`--page-size` is the page size, `--start` the start)
|
|
55
60
|
with the same query and projection. Success means the selection is complete: the result is the
|
|
56
|
-
|
|
61
|
+
page envelope with `hasMore:false` and `nextStart:null`, in server order with repeated string `id`s
|
|
62
|
+
removed. Rows without IDs are preserved. Reading continues by raw rows to an empty page, even
|
|
63
|
+
after a short page. A duplicate-only nonempty page fails instead of claiming completeness.
|
|
64
|
+
More than `n` issues, responses over
|
|
57
65
|
the optional `--max-bytes <n>` (total decoded bytes; also valid without `--all`) or any failed page
|
|
58
66
|
fail the whole command without partial output or retries. `--all` and `--max-results` require each
|
|
59
|
-
other. Offset paging is not a snapshot: concurrent
|
|
67
|
+
other; complete mode requires a positive page size. Offset paging is not a snapshot: concurrent
|
|
68
|
+
changes can still omit issues. Activity cursor commands keep their native objects and direction.
|
|
69
|
+
|
|
70
|
+
Breaking change: replace former `--top`/`--skip` flags and library `top`/`skip` options with
|
|
71
|
+
`--page-size`/`--start` and `pageSize`/`start`. Consume list rows from `items`, including for
|
|
72
|
+
complete issue selection. There are no old aliases or array-returning modes. Profiles and
|
|
73
|
+
credentials need no reconfiguration and existing user files are untouched.
|
|
60
74
|
|
|
61
75
|
```powershell
|
|
62
|
-
npm
|
|
63
|
-
npm
|
|
64
|
-
npm
|
|
65
|
-
npm
|
|
76
|
+
npm start -- project list --page-size 3 --profile youtrack-dev
|
|
77
|
+
npm start -- issues list --query "project: DEMO #Unresolved" --profile youtrack-dev
|
|
78
|
+
npm start -- issues get DEMO-1 --fields "id,summary,description" --profile youtrack-dev
|
|
79
|
+
npm start -- issues comments list DEMO-1 --page-size 3 --profile youtrack-dev
|
|
66
80
|
```
|
|
67
81
|
|
|
68
82
|
Handlers return domain values for human, `--json` and persistent `--json-rpc` output.
|
|
@@ -81,8 +95,9 @@ from Core's formats: lists such as `issues list`, `project list`, `article list`
|
|
|
81
95
|
comments list` are tables (`ISSUE SUMMARY PROJECT STATE UPDATED`), `issues get` and
|
|
82
96
|
`article get` are records with a description or content section and a `Next:` command, tags and
|
|
83
97
|
link groups are one line each, and a mutation names the object it changed (`Created DEMO-99 · New
|
|
84
|
-
issue`, `Removed tag 6-1 from DEMO-7.`).
|
|
85
|
-
|
|
98
|
+
issue`, `Removed tag 6-1 from DEMO-7.`). An offset list with unknown completeness says
|
|
99
|
+
`More results may exist`, with `--start <n>` when continuation is representable.
|
|
100
|
+
Long work prints one progress line per page (`issues list --all`), per
|
|
86
101
|
failed batch row and at the start of a download on stderr, never under `--json`. An explicit
|
|
87
102
|
`--fields` projection prints the generic `key: value` shape, so you see exactly the fields you
|
|
88
103
|
asked for. Root help groups the commands into Everyday, Reference and Configuration, with examples.
|
|
@@ -115,13 +130,13 @@ Build from the repository root with `npm run build`, then use your current termi
|
|
|
115
130
|
the normal CLI pipeline; no wrapper or auxiliary terminal window is required:
|
|
116
131
|
|
|
117
132
|
```powershell
|
|
118
|
-
npm
|
|
133
|
+
npm start -- profile configure youtrack-dev
|
|
119
134
|
```
|
|
120
135
|
|
|
121
136
|
Only if this terminal can see the existing configured profile, resume token login without changing it:
|
|
122
137
|
|
|
123
138
|
```powershell
|
|
124
|
-
npm
|
|
139
|
+
npm start -- auth login --profile youtrack-dev
|
|
125
140
|
```
|
|
126
141
|
|
|
127
142
|
If login reports a missing profile, run `profile configure` first in that same terminal; do not assume
|
|
@@ -145,7 +160,7 @@ credential namespace is separate from TeamCity and every YouTrack profile is iso
|
|
|
145
160
|
For automation, supply token input from a trusted secret source on stdin:
|
|
146
161
|
|
|
147
162
|
```powershell
|
|
148
|
-
npm
|
|
163
|
+
npm start -- auth login --profile youtrack-dev --token-stdin
|
|
149
164
|
```
|
|
150
165
|
|
|
151
166
|
The factory selects a new candidate from explicit `--token-stdin`, then `YOUTRACK_TOKEN`,
|
|
@@ -190,7 +205,7 @@ and value selectors inside the write; the CLI performs no catalog reads or ID re
|
|
|
190
205
|
`$type` is never inferred and nothing is cached.
|
|
191
206
|
|
|
192
207
|
```powershell
|
|
193
|
-
npm
|
|
208
|
+
npm start -- issues create --profile youtrack-dev --body '{"project":{"shortName":"DEMO"},"summary":"Example","customFields":[{"$type":"SingleEnumIssueCustomField","name":"Priority","value":{"name":"Major"}}]}'
|
|
194
209
|
```
|
|
195
210
|
|
|
196
211
|
Every narrative write also accepts a UTF-8 file for its text field: `--description-file` (issue
|
|
@@ -204,19 +219,19 @@ local size ceiling, and stdin is not used because JSON-RPC owns it.
|
|
|
204
219
|
For Windows **CMD**, replace the example project ID before deliberately running a write:
|
|
205
220
|
|
|
206
221
|
```cmd
|
|
207
|
-
npm
|
|
222
|
+
npm start -- issues create --body "{\"project\":{\"id\":\"PROJECT_ID\"},\"summary\":\"Example issue\"}" --profile youtrack-dev
|
|
208
223
|
```
|
|
209
224
|
|
|
210
225
|
The equivalent **PowerShell 7** command uses ordinary single quotes around JSON:
|
|
211
226
|
|
|
212
227
|
```powershell
|
|
213
|
-
npm
|
|
228
|
+
npm start -- issues create --body '{"project":{"id":"PROJECT_ID"},"summary":"Example issue"}' --profile youtrack-dev
|
|
214
229
|
```
|
|
215
230
|
|
|
216
231
|
Windows **PowerShell 5.1** requires escaping the inner quotes through the npm/CMD pipeline:
|
|
217
232
|
|
|
218
233
|
```powershell
|
|
219
|
-
npm
|
|
234
|
+
npm start -- issues create --body '{\"project\":{\"id\":\"PROJECT_ID\"},\"summary\":\"Example issue\"}' --profile youtrack-dev
|
|
220
235
|
```
|
|
221
236
|
|
|
222
237
|
Updates return `id,idReadable,summary,updated`; comment creation returns the same finite fields
|
|
@@ -299,7 +314,7 @@ read endpoints, so at this stage the tree had 98 service leaves for 100 operatio
|
|
|
299
314
|
| Boards and sprints | `agile list/get`, `sprint list/get/create/update` | 6 |
|
|
300
315
|
| Articles | `article list/get/create/update`, `article comment list/get/add/update`, `project article list` | 9 |
|
|
301
316
|
|
|
302
|
-
Every new read supports `--fields`. Offset lists retain one-page `--
|
|
317
|
+
Every new read supports `--fields`. Offset lists retain one-page `--page-size`/`--start` behavior;
|
|
303
318
|
details and settings reads have no paging flags. Bundle defaults omit nested values and members:
|
|
304
319
|
use the matching paginated child command. Archived enum/state values are preserved; state
|
|
305
320
|
`isResolved` is a resolution classification, not a list of workflow transition events.
|
|
@@ -349,9 +364,9 @@ It supports `--fields` for the response. No implicit file discovery is provided,
|
|
|
349
364
|
grants permissions.
|
|
350
365
|
|
|
351
366
|
```powershell
|
|
352
|
-
npm
|
|
353
|
-
npm
|
|
354
|
-
npm
|
|
367
|
+
npm start -- issues attachments download DEMO-1 1-1 --profile youtrack-dev
|
|
368
|
+
npm start -- issues attachments download DEMO-1 1-1 --output report.txt --max-bytes 1048576 --profile youtrack-dev
|
|
369
|
+
npm start -- article attachment download KB-A-1 7-1 --profile youtrack-dev
|
|
355
370
|
```
|
|
356
371
|
|
|
357
372
|
Issue and article attachment downloads first read the exact attachment's fixed metadata, then request only
|
|
@@ -398,7 +413,7 @@ columns fail as a whole; malformed rows fail with the row number. Additional JSO
|
|
|
398
413
|
are forwarded as native issue fields. Either way nothing
|
|
399
414
|
is written. The API resolves native selectors inside each row's single write.
|
|
400
415
|
|
|
401
|
-
Apply runs rows in order, one request per write
|
|
416
|
+
Apply runs rows in order, one request per write without selector-discovery reads or retries,
|
|
402
417
|
rollback or compensation; a batch is not atomic. It stops at the first unsuccessful row unless
|
|
403
418
|
`--continue-on-error` is given. Each row reports `completed` (with the write result), `failed`
|
|
404
419
|
(rejected before the write or with HTTP 4xx: not applied), `uncertain` (connectivity, 5xx or an
|
|
@@ -412,7 +427,7 @@ a `CliError` carrying `.result`.
|
|
|
412
427
|
|
|
413
428
|
This is a breaking change: scripts that previously relied on exit 0 plus `status: incomplete`
|
|
414
429
|
must now handle the failure path and read the same summary from the appropriate surface.
|
|
415
|
-
See the [0.6.1 release notes](
|
|
430
|
+
See the [0.6.1 release notes](https://github.com/iXab3r/EyeAuras.CliFactory/blob/6b226682ef762dd49bd1c9d7eb8e7bf18e80acc8/CHANGELOG.md#061).
|
|
416
431
|
|
|
417
432
|
`--failed-rows <path.json>` saves the `failed` and `unattempted` rows
|
|
418
433
|
as a manifest at the requested path relative to the invocation working directory for deliberate resubmission; `uncertain` rows are left out and must
|
|
@@ -444,7 +459,7 @@ Not provided:
|
|
|
444
459
|
After configuring a profile, explicitly run:
|
|
445
460
|
|
|
446
461
|
```powershell
|
|
447
|
-
npm run test:integration --
|
|
462
|
+
npm run test:integration -- --profile youtrack-dev
|
|
448
463
|
```
|
|
449
464
|
|
|
450
465
|
The explicit local proof uses twenty-four fixed ReadOnly rows through the compiled CLI, named profile
|
|
@@ -462,10 +477,15 @@ are not availability evidence, and failed prerequisites still fail the overall p
|
|
|
462
477
|
writes, automatic pagination or further resource discovery occur. CI and arbitrary URL/token/
|
|
463
478
|
command arguments are refused; inherited `YOUTRACK_TOKEN` is removed case-insensitively.
|
|
464
479
|
The shared Core proof invoker keeps the 30-second timeout and separate 64-KiB stdout/stderr bounds;
|
|
465
|
-
see the [shared CI and process contract](
|
|
480
|
+
see the [shared CI and process contract](https://github.com/iXab3r/EyeAuras.CliFactory/blob/bf79b80636bcdd790bbd6c25648842ae5213f267/docs/testing.md).
|
|
466
481
|
Do not run it in CI or add it to generic test commands. A failed proof requires local
|
|
467
482
|
configuration/TLS/permission investigation; its payloads are deliberately not logged.
|
|
468
483
|
|
|
469
484
|
`npm test` builds and runs deterministic offline tests, including MSW against the actual
|
|
470
485
|
client and declaration, synthetic profile/credential isolation, JSON-RPC and proof safety.
|
|
471
486
|
Tests inject `AppArguments` rather than redirecting the user's data directories.
|
|
487
|
+
|
|
488
|
+
## Source development
|
|
489
|
+
|
|
490
|
+
`npm ci`, `npm test`, and `npm run test:package` build and test this repository independently.
|
|
491
|
+
See [release and Core adoption gates](docs/release.md) and [migration provenance](docs/migration.md).
|
package/dist/src/agile.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Connection, type ProjectionOptions, type YouTrackObject } from "./client.js";
|
|
2
|
-
export declare const listAgiles: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<
|
|
2
|
+
export declare const listAgiles: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
3
3
|
export declare const getAgile: (connection: Connection, agile: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
4
|
-
export declare const listSprints: (connection: Connection, agile: string, options?: import("./client.js").PageOptions | undefined) => Promise<
|
|
4
|
+
export declare const listSprints: (connection: Connection, agile: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
5
5
|
export declare const getSprint: (connection: Connection, agile: string, sprint: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
6
6
|
export declare function createSprint(connection: Connection, agile: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
7
7
|
export declare function updateSprint(connection: Connection, agile: string, sprint: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
package/dist/src/agile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agile.d.ts","sourceRoot":"","sources":["../../src/agile.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"agile.d.ts","sourceRoot":"","sources":["../../src/agile.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AASrB,eAAO,MAAM,UAAU,kIAA8C,CAAC;AACtE,eAAO,MAAM,QAAQ,6GAAuC,CAAC;AAC7D,eAAO,MAAM,WAAW,iJAGvB,CAAC;AACF,eAAO,MAAM,SAAS,6HAIrB,CAAC;AA4CF,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,kCAQhC;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,kCAQhC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type Connection, type PageOptions, type ProjectionOptions, type YouTrackObject } from "./client.js";
|
|
2
|
-
export declare const listArticleAttachments: (connection: Connection, articleID: string, options?: PageOptions | undefined) => Promise<
|
|
2
|
+
export declare const listArticleAttachments: (connection: Connection, articleID: string, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
3
3
|
export declare const getArticleAttachment: (connection: Connection, articleID: string, attachmentID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
4
4
|
export declare function uploadArticleAttachment(connection: Connection, articleID: string, filePath: string, options?: ProjectionOptions): Promise<YouTrackObject[] | null>;
|
|
5
|
-
export declare const listChildArticles: (connection: Connection, articleID: string, options?: PageOptions | undefined) => Promise<
|
|
5
|
+
export declare const listChildArticles: (connection: Connection, articleID: string, options?: PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
6
6
|
export declare const getChildArticle: (connection: Connection, articleID: string, childID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
7
7
|
export declare function getParentArticle(connection: Connection, articleID: string, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
8
8
|
//# sourceMappingURL=article-extras.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article-extras.d.ts","sourceRoot":"","sources":["../../src/article-extras.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAUrB,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"article-extras.d.ts","sourceRoot":"","sources":["../../src/article-extras.ts"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAUrB,eAAO,MAAM,sBAAsB,+HAGlC,CAAC;AACF,eAAO,MAAM,oBAAoB,uIAIhC,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAKlC;AAED,eAAO,MAAM,iBAAiB,+HAG7B,CAAC;AACF,eAAO,MAAM,eAAe,kIAI3B,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhC"}
|
|
@@ -18,7 +18,7 @@ export const articlesRootCommands = [
|
|
|
18
18
|
projectedBodyUpdate("update <article> <comment>", "Replace a comment's text", updateArticleComment, "text", commentUpdated("article", "comment")),
|
|
19
19
|
]),
|
|
20
20
|
], {
|
|
21
|
-
examples: ["article list --
|
|
21
|
+
examples: ["article list --page-size 20", "article get KB-A-7", "article export KB-A-7 --output onboarding.md"],
|
|
22
22
|
}),
|
|
23
23
|
];
|
|
24
24
|
export const articlesProjectChildren = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articles-commands.js","sourceRoot":"","sources":["../../src/articles-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,SAAS,EAAE,wCAAwC,EAAE;QAC3D,GAAG,qBAAqB;QACxB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;QAC9D,aAAa,CAAC,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,CAAC;QAC5E,QAAQ,CAAC,eAAe,EAAE,WAAW,CACnC,kBAAkB,EAClB,oCAAoC,EACpC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAC7D,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,OAAO,CAAC,GAAG,EACX,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAChE,EACD,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gEAAgE,EAAE,CAAC,CAC9G,CAAC;QACF,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC;QAC5F,mBAAmB,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC;QAClH,OAAO,CAAC,SAAS,EAAE,iCAAiC,EAAE;YACpD,SAAS,CAAC,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,CAAC;YAC/E,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;YAC3F,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACzG,mBAAmB,CACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,EACN,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACrC;SACF,CAAC;KACH,EAAE;QACD,QAAQ,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"articles-commands.js","sourceRoot":"","sources":["../../src/articles-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,SAAS,EAAE,wCAAwC,EAAE;QAC3D,GAAG,qBAAqB;QACxB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;QAC9D,aAAa,CAAC,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,CAAC;QAC5E,QAAQ,CAAC,eAAe,EAAE,WAAW,CACnC,kBAAkB,EAClB,oCAAoC,EACpC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,CAC7D,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,OAAO,CAAC,GAAG,EACX,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAChE,EACD,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,gEAAgE,EAAE,CAAC,CAC9G,CAAC;QACF,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC;QAC5F,mBAAmB,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC;QAClH,OAAO,CAAC,SAAS,EAAE,iCAAiC,EAAE;YACpD,SAAS,CAAC,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,CAAC;YAC/E,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,YAAY,CAAC;YAC3F,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACzG,mBAAmB,CACjB,4BAA4B,EAC5B,0BAA0B,EAC1B,oBAAoB,EACpB,MAAM,EACN,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CACrC;SACF,CAAC;KACH,EAAE;QACD,QAAQ,EAAE,CAAC,6BAA6B,EAAE,oBAAoB,EAAE,8CAA8C,CAAC;KAChH,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO,CAAC,SAAS,EAAE,gCAAgC,EAAE;QACnD,SAAS,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,YAAY,CAAC;KAC9F,CAAC;CACH,CAAC"}
|
package/dist/src/articles.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type PublishedFile } from "@eyeauras/cli-factory";
|
|
2
2
|
import { type Connection, type ProjectionOptions, type YouTrackObject } from "./client.js";
|
|
3
|
-
export declare const listArticles: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<
|
|
3
|
+
export declare const listArticles: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
4
4
|
export declare const getArticle: (connection: Connection, articleID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
5
5
|
/**
|
|
6
6
|
* Save the scrubbed article content as a profile-owned file for a fetch/edit/update workflow.
|
|
@@ -12,9 +12,9 @@ export declare function exportArticle(connection: Connection, articleID: string,
|
|
|
12
12
|
} & PublishedFile>;
|
|
13
13
|
export declare function createArticle(connection: Connection, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
14
14
|
export declare function updateArticle(connection: Connection, articleID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
15
|
-
export declare const listArticleComments: (connection: Connection, articleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<
|
|
15
|
+
export declare const listArticleComments: (connection: Connection, articleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
16
16
|
export declare const getArticleComment: (connection: Connection, articleID: string, commentID: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
17
17
|
export declare function addArticleComment(connection: Connection, articleID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
18
18
|
export declare function updateArticleComment(connection: Connection, articleID: string, commentID: string, input: unknown, options?: ProjectionOptions): Promise<YouTrackObject | null>;
|
|
19
|
-
export declare const listProjectArticles: (connection: Connection, projectID: string, options?: import("./client.js").PageOptions | undefined) => Promise<
|
|
19
|
+
export declare const listProjectArticles: (connection: Connection, projectID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
20
20
|
//# sourceMappingURL=articles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"articles.d.ts","sourceRoot":"","sources":["../../src/articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EASL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"articles.d.ts","sourceRoot":"","sources":["../../src/articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EASL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,YAAY,kIAAsD,CAAC;AAChF,eAAO,MAAM,UAAU,iHAAiD,CAAC;AAEzE;;;GAGG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CAAC,CAc5D;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAchC;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAYhC;AAED,eAAO,MAAM,mBAAmB,qJAG/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oIAI7B,CAAC;AAEF,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;AAED,eAAO,MAAM,mBAAmB,qJAG/B,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export declare const listBuildBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
1
|
+
export declare const listBuildBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
2
2
|
export declare const getBuildBundle: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
3
|
-
export declare const listBuildValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
3
|
+
export declare const listBuildValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
4
4
|
export declare const getBuildValue: (connection: import("./client.js").Connection, bundleID: string, valueID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
5
|
-
export declare const listOwnedBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
5
|
+
export declare const listOwnedBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
6
6
|
export declare const getOwnedBundle: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
7
|
-
export declare const listOwnedValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
7
|
+
export declare const listOwnedValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
8
8
|
export declare const getOwnedValue: (connection: import("./client.js").Connection, bundleID: string, valueID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
9
|
-
export declare const listVersionBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
9
|
+
export declare const listVersionBundles: (connection: import("./client.js").Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
10
10
|
export declare const getVersionBundle: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
11
|
-
export declare const listVersionValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").
|
|
11
|
+
export declare const listVersionValues: (connection: import("./client.js").Connection, bundleID: string, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
12
12
|
export declare const getVersionValue: (connection: import("./client.js").Connection, bundleID: string, valueID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
13
13
|
//# sourceMappingURL=bundle-values.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle-values.d.ts","sourceRoot":"","sources":["../../src/bundle-values.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"bundle-values.d.ts","sourceRoot":"","sources":["../../src/bundle-values.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gBAAgB,wJAAsD,CAAC;AACpF,eAAO,MAAM,cAAc,kLAG1B,CAAC;AACF,eAAO,MAAM,eAAe,0KAG3B,CAAC;AACF,eAAO,MAAM,aAAa,mMAGzB,CAAC;AACF,eAAO,MAAM,gBAAgB,wJAA2D,CAAC;AACzF,eAAO,MAAM,cAAc,kLAG1B,CAAC;AACF,eAAO,MAAM,eAAe,0KAG3B,CAAC;AACF,eAAO,MAAM,aAAa,mMAGzB,CAAC;AACF,eAAO,MAAM,kBAAkB,wJAAwD,CAAC;AACxF,eAAO,MAAM,gBAAgB,kLAG5B,CAAC;AACF,eAAO,MAAM,iBAAiB,0KAG7B,CAAC;AACF,eAAO,MAAM,eAAe,mMAG3B,CAAC"}
|
|
@@ -7,7 +7,9 @@ export declare function readTextFile(path: string): Promise<string>;
|
|
|
7
7
|
export declare const projectionOptions: readonly OptionDefinition[];
|
|
8
8
|
export declare const pageOptions: readonly OptionDefinition[];
|
|
9
9
|
export declare function connection(context: CommandContext): Promise<Connection>;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const readTarget: GatedTargetCommand<Connection>, updateCommand: GatedTargetCommand<Connection>;
|
|
11
|
+
/** Existing local admission hook validates paging before connection/auth resolution. */
|
|
12
|
+
export declare const readCommand: GatedTargetCommand<Connection>;
|
|
11
13
|
type PositionalValues<Text extends string> = Text extends `<${string}> ${infer Rest}` ? [string, ...PositionalValues<Rest>] : Text extends `<${string}>` ? [string] : [];
|
|
12
14
|
type CommandValues<Syntax extends string> = Syntax extends `${string} ${infer Arguments}` ? PositionalValues<Arguments> : [];
|
|
13
15
|
type ReadOperation<Syntax extends string> = (connection: Connection, ...arguments_: [...CommandValues<Syntax>, IssueSearchOptions]) => unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-support.d.ts","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"cli-support.d.ts","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli-support.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile, stat } from "node:fs/promises";
|
|
2
2
|
import { integerParser, jsonParser, targetCommands, } from "@eyeauras/cli-factory";
|
|
3
|
-
import { inputFilePath, youTrackUrl } from "./client.js";
|
|
3
|
+
import { inputFilePath, page, youTrackUrl } from "./client.js";
|
|
4
4
|
import { withView } from "./presentation.js";
|
|
5
5
|
export const bodyOptions = [
|
|
6
6
|
{
|
|
@@ -56,17 +56,17 @@ export const projectionOptions = [
|
|
|
56
56
|
export const pageOptions = [
|
|
57
57
|
...projectionOptions,
|
|
58
58
|
{
|
|
59
|
-
flags: "--
|
|
59
|
+
flags: "--page-size <count>", description: "Requested rows per page", defaultValue: 50,
|
|
60
60
|
parse: integerParser({
|
|
61
61
|
min: 0, max: Number.MAX_SAFE_INTEGER, signed: false,
|
|
62
|
-
errorMessage: "--
|
|
62
|
+
errorMessage: "--page-size must be a nonnegative safe decimal integer.",
|
|
63
63
|
}),
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
flags: "--
|
|
66
|
+
flags: "--start <offset>", description: "Zero-based result offset", defaultValue: 0,
|
|
67
67
|
parse: integerParser({
|
|
68
68
|
min: 0, max: Number.MAX_SAFE_INTEGER, signed: false,
|
|
69
|
-
errorMessage: "--
|
|
69
|
+
errorMessage: "--start must be a nonnegative integer.",
|
|
70
70
|
}),
|
|
71
71
|
},
|
|
72
72
|
];
|
|
@@ -79,7 +79,23 @@ export async function connection(context) {
|
|
|
79
79
|
signal: context.signal,
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
-
export const { read:
|
|
82
|
+
export const { read: readTarget, update: updateCommand, } = targetCommands(connection);
|
|
83
|
+
/** Existing local admission hook validates paging before connection/auth resolution. */
|
|
84
|
+
export const readCommand = (syntax, description, run, options) => {
|
|
85
|
+
const definition = readTarget(syntax, description, run, options);
|
|
86
|
+
if (!options?.some(option => option.flags.startsWith("--page-size ")))
|
|
87
|
+
return definition;
|
|
88
|
+
return { ...definition, additionalPermissions: ({ options }) => {
|
|
89
|
+
page(readOptions(options), "");
|
|
90
|
+
if ((options.all === true) !== (options.maxResults !== undefined)) {
|
|
91
|
+
throw new Error("--all and --max-results go together.");
|
|
92
|
+
}
|
|
93
|
+
if (options.all === true && options.pageSize === 0) {
|
|
94
|
+
throw new Error("--page-size must be positive with --all.");
|
|
95
|
+
}
|
|
96
|
+
return [];
|
|
97
|
+
} };
|
|
98
|
+
};
|
|
83
99
|
function positionalNames(syntax) {
|
|
84
100
|
const tokens = syntax.split(" ").slice(1);
|
|
85
101
|
const names = tokens.map((token) => /^<([A-Za-z][A-Za-z0-9_-]*)>$/.exec(token)?.[1]);
|
|
@@ -116,8 +132,8 @@ export function projectedBodyUpdate(syntax, description, operation, textField, v
|
|
|
116
132
|
export function readOptions(options) {
|
|
117
133
|
return {
|
|
118
134
|
...(typeof options.fields === "string" ? { fields: options.fields } : {}),
|
|
119
|
-
...(typeof options.
|
|
120
|
-
...(typeof options.
|
|
135
|
+
...(typeof options.pageSize === "number" ? { pageSize: options.pageSize } : {}),
|
|
136
|
+
...(typeof options.start === "number" ? { start: options.start } : {}),
|
|
121
137
|
...(typeof options.query === "string" ? { query: options.query } : {}),
|
|
122
138
|
...(typeof options.maxResults === "number" ? { maxResults: options.maxResults } : {}),
|
|
123
139
|
...(typeof options.maxBytes === "number" ? { maxBytes: options.maxBytes } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-support.js","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,GAMf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,WAAW,EAA4C,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-support.js","sourceRoot":"","sources":["../../src/cli-support.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/src/cli.js
CHANGED
|
@@ -29,7 +29,7 @@ const rootLayout = [
|
|
|
29
29
|
]],
|
|
30
30
|
];
|
|
31
31
|
const issueExamples = [
|
|
32
|
-
'issues list --query "project: DEMO #Unresolved" --
|
|
32
|
+
'issues list --query "project: DEMO #Unresolved" --page-size 20',
|
|
33
33
|
"issues get DEMO-12",
|
|
34
34
|
`issues create --body '{"project":{"shortName":"DEMO"},"summary":"Login page crashes on Safari"}'`,
|
|
35
35
|
`issues update DEMO-12 --body '{"summary":"Login page crashes on Safari 18"}'`,
|
|
@@ -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.
|
|
43
|
+
version: "0.7.1",
|
|
44
44
|
applicationId: "youtrack-cli",
|
|
45
45
|
permissions: {},
|
|
46
46
|
profile: {
|
|
@@ -106,9 +106,6 @@ export function createYouTrackCli(runtime) {
|
|
|
106
106
|
bodyUpdate("create", "Create an issue", createIssue, "description", createdIssue),
|
|
107
107
|
bodyUpdate("update <issueID>", "Update the summary, description or custom fields", updateIssue, "description", updatedIssue),
|
|
108
108
|
withView(issueTable, readCommand("list", "Search issues", (client, { options }, context) => {
|
|
109
|
-
if ((options.all === true) !== (options.maxResults !== undefined)) {
|
|
110
|
-
throw new Error("--all and --max-results go together.");
|
|
111
|
-
}
|
|
112
109
|
return listIssues(client, { ...readOptions(options), progress: context.progress });
|
|
113
110
|
}, [
|
|
114
111
|
...pageOptions,
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,aAAa,EACb,UAAU,EACV,SAAS,GAGV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC5G,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AACtG,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAC1G,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACnF,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAgC,EAAE,EAAE,CAC1D,YAAY,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAE/E,kGAAkG;AAClG,MAAM,UAAU,GAAG;IACjB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC,WAAW,EAAE;YACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe;YAC3F,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO;SAC1D,CAAC;CACM,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -18,8 +18,15 @@ export interface ProjectionOptions {
|
|
|
18
18
|
fields?: string;
|
|
19
19
|
}
|
|
20
20
|
export interface PageOptions extends ProjectionOptions {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
pageSize?: number;
|
|
22
|
+
start?: number;
|
|
23
|
+
}
|
|
24
|
+
/** One offset selection; null completeness means the server supplied no end evidence. */
|
|
25
|
+
export interface YouTrackPage<T = YouTrackObject> {
|
|
26
|
+
count: number;
|
|
27
|
+
items: T[];
|
|
28
|
+
hasMore: boolean | null;
|
|
29
|
+
nextStart: number | null;
|
|
23
30
|
}
|
|
24
31
|
export interface IssueSearchOptions extends PageOptions {
|
|
25
32
|
query?: string;
|
|
@@ -47,29 +54,30 @@ export declare function getAttachmentDownloadMetadata(connection: Connection, at
|
|
|
47
54
|
url: string;
|
|
48
55
|
}>;
|
|
49
56
|
export declare function readCollection(connection: Connection, path: string, query: Record<string, string>, budget?: ByteBudget): Promise<YouTrackObject[]>;
|
|
50
|
-
/**
|
|
51
|
-
|
|
57
|
+
/** 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>;
|
|
59
|
+
/** Read a complete issue selection; only an empty offset page establishes its end.
|
|
52
60
|
* Repeated string IDs are dropped; offset paging is not a snapshot of a changing dataset.
|
|
53
61
|
*/
|
|
54
|
-
export declare function readPages(connection: Connection, path: string, query: Record<string, string>, {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
maxResults
|
|
62
|
+
export declare function readPages(connection: Connection, path: string, query: Record<string, string>, { pageSize, start, maxResults, budget, progress }: {
|
|
63
|
+
pageSize: number;
|
|
64
|
+
start: number;
|
|
65
|
+
maxResults: number;
|
|
58
66
|
budget?: ByteBudget | undefined;
|
|
59
67
|
progress?: ((message: string) => void) | undefined;
|
|
60
68
|
}): Promise<YouTrackObject[]>;
|
|
61
69
|
type ResourcePath = string | ((...arguments_: never[]) => string);
|
|
62
70
|
type ResourcePathArguments<Path extends ResourcePath> = Path extends (...arguments_: infer Arguments extends string[]) => string ? Arguments : [];
|
|
63
71
|
/** Define one ordinary bounded YouTrack collection without repeating transport/query plumbing. */
|
|
64
|
-
export declare function readCollectionAt<const Path extends ResourcePath>(path: Path, defaultFields: string): (connection: Connection, ...arguments_: [...ResourcePathArguments<Path>, options?: PageOptions]) => Promise<
|
|
72
|
+
export declare function readCollectionAt<const Path extends ResourcePath>(path: Path, defaultFields: string): (connection: Connection, ...arguments_: [...ResourcePathArguments<Path>, options?: PageOptions]) => Promise<YouTrackPage>;
|
|
65
73
|
/** Define one ordinary projected YouTrack object without repeating transport/query plumbing. */
|
|
66
74
|
export declare function readObjectAt<const Path extends ResourcePath>(path: Path, defaultFields: string): (connection: Connection, ...arguments_: [...ResourcePathArguments<Path>, options?: ProjectionOptions]) => Promise<YouTrackObject>;
|
|
67
75
|
export declare function currentUser(connection: Connection): Promise<YouTrackUser>;
|
|
68
76
|
export declare function readUser(connection: Connection, options?: ProjectionOptions): Promise<YouTrackUser | YouTrackObject>;
|
|
69
|
-
export declare const listProjects: (connection: Connection, options?: PageOptions | undefined) => Promise<
|
|
70
|
-
export declare function listIssues(connection: Connection, options?: IssueSearchOptions): Promise<
|
|
77
|
+
export declare const listProjects: (connection: Connection, options?: PageOptions | undefined) => Promise<YouTrackPage>;
|
|
78
|
+
export declare function listIssues(connection: Connection, options?: IssueSearchOptions): Promise<YouTrackPage>;
|
|
71
79
|
export declare const getIssue: (connection: Connection, id: string, options?: ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
72
|
-
export declare const listComments: (connection: Connection, issueID: string, options?: PageOptions | undefined) => Promise<
|
|
80
|
+
export declare const listComments: (connection: Connection, issueID: string, options?: PageOptions | undefined) => Promise<YouTrackPage>;
|
|
73
81
|
export declare function mutationBody(value: unknown): YouTrackObject;
|
|
74
82
|
export declare function narrative(value: unknown, label: string): string;
|
|
75
83
|
export declare function nullableText(value: unknown, label: string): string | null;
|