@eyeauras/youtrack-cli 0.7.0 → 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.
- package/README.md +80 -29
- package/dist/src/cli-support.d.ts +8 -6
- package/dist/src/cli-support.d.ts.map +1 -1
- package/dist/src/cli-support.js +26 -7
- package/dist/src/cli-support.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +9 -5
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +16 -9
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +80 -30
- package/dist/src/client.js.map +1 -1
- package/dist/src/index.d.ts +6 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/issue-attachments-commands.d.ts.map +1 -1
- package/dist/src/issue-attachments-commands.js +7 -4
- package/dist/src/issue-attachments-commands.js.map +1 -1
- package/dist/src/issue-attachments.d.ts +5 -3
- package/dist/src/issue-attachments.d.ts.map +1 -1
- package/dist/src/issue-attachments.js +12 -3
- package/dist/src/issue-attachments.js.map +1 -1
- package/dist/src/issue-context-commands.d.ts.map +1 -1
- package/dist/src/issue-context-commands.js +23 -5
- package/dist/src/issue-context-commands.js.map +1 -1
- package/dist/src/issue-context.d.ts +11 -4
- package/dist/src/issue-context.d.ts.map +1 -1
- package/dist/src/issue-context.js +15 -3
- package/dist/src/issue-context.js.map +1 -1
- package/dist/src/issue-fields-commands.d.ts.map +1 -1
- package/dist/src/issue-fields-commands.js +2 -2
- package/dist/src/issue-fields-commands.js.map +1 -1
- package/dist/src/issue-fields.d.ts +4 -4
- package/dist/src/issue-fields.d.ts.map +1 -1
- package/dist/src/issue-fields.js +7 -7
- package/dist/src/issue-fields.js.map +1 -1
- package/dist/src/issue-reactions-commands.d.ts +2 -0
- package/dist/src/issue-reactions-commands.d.ts.map +1 -0
- package/dist/src/issue-reactions-commands.js +11 -0
- package/dist/src/issue-reactions-commands.js.map +1 -0
- package/dist/src/issue-reactions.d.ts +6 -0
- package/dist/src/issue-reactions.d.ts.map +1 -0
- package/dist/src/issue-reactions.js +15 -0
- package/dist/src/issue-reactions.js.map +1 -0
- package/dist/src/issue-relations-commands.d.ts.map +1 -1
- package/dist/src/issue-relations-commands.js +8 -7
- package/dist/src/issue-relations-commands.js.map +1 -1
- package/dist/src/issue-relations.d.ts +10 -9
- package/dist/src/issue-relations.d.ts.map +1 -1
- package/dist/src/issue-relations.js +16 -10
- package/dist/src/issue-relations.js.map +1 -1
- package/dist/src/issue-time-commands.d.ts.map +1 -1
- package/dist/src/issue-time-commands.js +20 -6
- package/dist/src/issue-time-commands.js.map +1 -1
- package/dist/src/issue-time.d.ts +18 -4
- package/dist/src/issue-time.d.ts.map +1 -1
- package/dist/src/issue-time.js +22 -4
- package/dist/src/issue-time.js.map +1 -1
- package/dist/src/presentation.d.ts +5 -0
- package/dist/src/presentation.d.ts.map +1 -1
- package/dist/src/presentation.js +30 -0
- package/dist/src/presentation.js.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,13 +20,13 @@ 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
|
|
26
|
-
provides standard profiles/auth/permissions and
|
|
25
|
+
YouTrack consumes the exact published `@eyeauras/cli-factory` version declared in package.json. The CLI
|
|
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
|
|
29
|
-
leaves:
|
|
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
|
|
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
|
|
@@ -73,20 +73,20 @@ complete issue selection. There are no old aliases or array-returning modes. Pro
|
|
|
73
73
|
credentials need no reconfiguration and existing user files are untouched.
|
|
74
74
|
|
|
75
75
|
```powershell
|
|
76
|
-
npm
|
|
77
|
-
npm
|
|
78
|
-
npm
|
|
79
|
-
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
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
Handlers return domain values for human, `--json` and persistent `--json-rpc` output.
|
|
83
|
-
Empty collections
|
|
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
|
|
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
|
|
|
@@ -130,13 +176,13 @@ Build from the repository root with `npm run build`, then use your current termi
|
|
|
130
176
|
the normal CLI pipeline; no wrapper or auxiliary terminal window is required:
|
|
131
177
|
|
|
132
178
|
```powershell
|
|
133
|
-
npm
|
|
179
|
+
npm start -- profile configure youtrack-dev
|
|
134
180
|
```
|
|
135
181
|
|
|
136
182
|
Only if this terminal can see the existing configured profile, resume token login without changing it:
|
|
137
183
|
|
|
138
184
|
```powershell
|
|
139
|
-
npm
|
|
185
|
+
npm start -- auth login --profile youtrack-dev
|
|
140
186
|
```
|
|
141
187
|
|
|
142
188
|
If login reports a missing profile, run `profile configure` first in that same terminal; do not assume
|
|
@@ -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
|
|
@@ -160,7 +206,7 @@ credential namespace is separate from TeamCity and every YouTrack profile is iso
|
|
|
160
206
|
For automation, supply token input from a trusted secret source on stdin:
|
|
161
207
|
|
|
162
208
|
```powershell
|
|
163
|
-
npm
|
|
209
|
+
npm start -- auth login --profile youtrack-dev --token-stdin
|
|
164
210
|
```
|
|
165
211
|
|
|
166
212
|
The factory selects a new candidate from explicit `--token-stdin`, then `YOUTRACK_TOKEN`,
|
|
@@ -205,7 +251,7 @@ and value selectors inside the write; the CLI performs no catalog reads or ID re
|
|
|
205
251
|
`$type` is never inferred and nothing is cached.
|
|
206
252
|
|
|
207
253
|
```powershell
|
|
208
|
-
npm
|
|
254
|
+
npm start -- issues create --profile youtrack-dev --body '{"project":{"shortName":"DEMO"},"summary":"Example","customFields":[{"$type":"SingleEnumIssueCustomField","name":"Priority","value":{"name":"Major"}}]}'
|
|
209
255
|
```
|
|
210
256
|
|
|
211
257
|
Every narrative write also accepts a UTF-8 file for its text field: `--description-file` (issue
|
|
@@ -219,19 +265,19 @@ local size ceiling, and stdin is not used because JSON-RPC owns it.
|
|
|
219
265
|
For Windows **CMD**, replace the example project ID before deliberately running a write:
|
|
220
266
|
|
|
221
267
|
```cmd
|
|
222
|
-
npm
|
|
268
|
+
npm start -- issues create --body "{\"project\":{\"id\":\"PROJECT_ID\"},\"summary\":\"Example issue\"}" --profile youtrack-dev
|
|
223
269
|
```
|
|
224
270
|
|
|
225
271
|
The equivalent **PowerShell 7** command uses ordinary single quotes around JSON:
|
|
226
272
|
|
|
227
273
|
```powershell
|
|
228
|
-
npm
|
|
274
|
+
npm start -- issues create --body '{"project":{"id":"PROJECT_ID"},"summary":"Example issue"}' --profile youtrack-dev
|
|
229
275
|
```
|
|
230
276
|
|
|
231
277
|
Windows **PowerShell 5.1** requires escaping the inner quotes through the npm/CMD pipeline:
|
|
232
278
|
|
|
233
279
|
```powershell
|
|
234
|
-
npm
|
|
280
|
+
npm start -- issues create --body '{\"project\":{\"id\":\"PROJECT_ID\"},\"summary\":\"Example issue\"}' --profile youtrack-dev
|
|
235
281
|
```
|
|
236
282
|
|
|
237
283
|
Updates return `id,idReadable,summary,updated`; comment creation returns the same finite fields
|
|
@@ -364,9 +410,9 @@ It supports `--fields` for the response. No implicit file discovery is provided,
|
|
|
364
410
|
grants permissions.
|
|
365
411
|
|
|
366
412
|
```powershell
|
|
367
|
-
npm
|
|
368
|
-
npm
|
|
369
|
-
npm
|
|
413
|
+
npm start -- issues attachments download DEMO-1 1-1 --profile youtrack-dev
|
|
414
|
+
npm start -- issues attachments download DEMO-1 1-1 --output report.txt --max-bytes 1048576 --profile youtrack-dev
|
|
415
|
+
npm start -- article attachment download KB-A-1 7-1 --profile youtrack-dev
|
|
370
416
|
```
|
|
371
417
|
|
|
372
418
|
Issue and article attachment downloads first read the exact attachment's fixed metadata, then request only
|
|
@@ -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](
|
|
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
|
|
@@ -459,7 +505,7 @@ Not provided:
|
|
|
459
505
|
After configuring a profile, explicitly run:
|
|
460
506
|
|
|
461
507
|
```powershell
|
|
462
|
-
npm run test:integration --
|
|
508
|
+
npm run test:integration -- --profile youtrack-dev
|
|
463
509
|
```
|
|
464
510
|
|
|
465
511
|
The explicit local proof uses twenty-four fixed ReadOnly rows through the compiled CLI, named profile
|
|
@@ -477,10 +523,15 @@ 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](
|
|
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
|
|
|
484
530
|
`npm test` builds and runs deterministic offline tests, including MSW against the actual
|
|
485
531
|
client and declaration, synthetic profile/credential isolation, JSON-RPC and proof safety.
|
|
486
532
|
Tests inject `AppArguments` rather than redirecting the user's data directories.
|
|
533
|
+
|
|
534
|
+
## Source development
|
|
535
|
+
|
|
536
|
+
`npm ci`, `npm test`, and `npm run test:package` build and test this repository independently.
|
|
537
|
+
See [release and Core adoption gates](docs/release.md) and [migration provenance](docs/migration.md).
|
|
@@ -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
|
|
17
|
-
|
|
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
|
|
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":"AACA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAoC,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
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
|
@@ -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
|
|
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":"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,IAAI,EAAE,WAAW,
|
|
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;
|
|
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 {
|
|
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.
|
|
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
|
-
|
|
107
|
-
|
|
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
|
-
|
|
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 }),
|
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,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -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:
|
|
49
|
-
export declare function readNullableObject(connection: Connection, path: string, query:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,gGAAgG,CAAC;AAE7H,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIlD;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,EAAE,CAAC;AAChG,MAAM,WAAW,cAAc;IAC7B,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AACD,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,yFAAyF;AACzF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,cAAc;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AACD,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjE;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWnF;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,MAAM,CAW1D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,gGAAgG,CAAC;AAE7H,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAIlD;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,aAAa,EAAE,CAAC;AAChG,MAAM,WAAW,cAAc;IAC7B,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC;AACD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC;AAEzE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS5F;AAED,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,yFAAyF;AACzF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,cAAc;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AACD,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKjE;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3E;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWnF;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,MAAM,CAW1D;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5C;AAsJD,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGhC;AAGD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAc7E;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CAS3B;AAED,oFAAoF;AACpF,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,YAAY,CAAC,CAOvB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACpD,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CA8B3B;AAED,KAAK,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC,CAAC;AAClE,KAAK,qBAAqB,CAAC,IAAI,SAAS,YAAY,IAClD,IAAI,SAAS,CAAC,GAAG,UAAU,EAAE,MAAM,SAAS,SAAS,MAAM,EAAE,KAAK,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC;AA4B5F,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,IAAI,SAAS,YAAY,EAC9D,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,CACD,UAAU,EAAE,UAAU,EACtB,GAAG,UAAU,EAAE,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,KACnE,OAAO,CAAC,YAAY,CAAC,CASzB;AAED,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,KAAK,CAAC,IAAI,SAAS,YAAY,EAC1D,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,CACD,UAAU,EAAE,UAAU,EACtB,GAAG,UAAU,EAAE,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,KACzE,OAAO,CAAC,cAAc,CAAC,CAO3B;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAY/E;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,YAAY,GAAG,cAAc,CAAC,CAIxC;AAED,eAAO,MAAM,YAAY,eApDX,UAAU,wCAEnB,OAAO,CAAC,YAAY,CAkD8D,CAAC;AASxF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAED,eAAO,MAAM,QAAQ,eAvEP,UAAU,0DAEnB,OAAO,CAAC,cAAc,CAqE8D,CAAC;AAC1F,eAAO,MAAM,YAAY,eA1FX,UAAU,yDAEnB,OAAO,CAAC,YAAY,CA2FxB,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAmB3D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE;AAeD,wBAAsB,MAAM,CAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMxI;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAUlC;AAED,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAMhC"}
|