@eyeauras/youtrack-cli 0.5.5 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -56
- package/dist/src/agile-commands.d.ts.map +1 -1
- package/dist/src/agile-commands.js +8 -9
- package/dist/src/agile-commands.js.map +1 -1
- package/dist/src/agile.d.ts.map +1 -1
- package/dist/src/agile.js +9 -15
- package/dist/src/agile.js.map +1 -1
- package/dist/src/article-extras-commands.d.ts.map +1 -1
- package/dist/src/article-extras-commands.js +13 -12
- package/dist/src/article-extras-commands.js.map +1 -1
- package/dist/src/articles-commands.d.ts.map +1 -1
- package/dist/src/articles-commands.js +15 -12
- package/dist/src/articles-commands.js.map +1 -1
- package/dist/src/articles.d.ts.map +1 -1
- package/dist/src/articles.js +13 -14
- package/dist/src/articles.js.map +1 -1
- package/dist/src/attachment-download-commands.d.ts.map +1 -1
- package/dist/src/attachment-download-commands.js +7 -5
- package/dist/src/attachment-download-commands.js.map +1 -1
- package/dist/src/attachment-download.d.ts +1 -0
- package/dist/src/attachment-download.d.ts.map +1 -1
- package/dist/src/attachment-download.js +16 -26
- package/dist/src/attachment-download.js.map +1 -1
- package/dist/src/attachment-form.js +3 -3
- package/dist/src/attachment-form.js.map +1 -1
- package/dist/src/bundle-values-commands.d.ts.map +1 -1
- package/dist/src/bundle-values-commands.js +21 -18
- package/dist/src/bundle-values-commands.js.map +1 -1
- package/dist/src/cli-support.d.ts +5 -5
- package/dist/src/cli-support.d.ts.map +1 -1
- package/dist/src/cli-support.js +28 -26
- package/dist/src/cli-support.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +52 -34
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +5 -2
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +66 -49
- package/dist/src/client.js.map +1 -1
- package/dist/src/field-catalog-commands.d.ts.map +1 -1
- package/dist/src/field-catalog-commands.js +19 -16
- package/dist/src/field-catalog-commands.js.map +1 -1
- package/dist/src/group-directory-commands.d.ts.map +1 -1
- package/dist/src/group-directory-commands.js +17 -16
- package/dist/src/group-directory-commands.js.map +1 -1
- package/dist/src/issue-attachments-commands.d.ts.map +1 -1
- package/dist/src/issue-attachments-commands.js +9 -8
- package/dist/src/issue-attachments-commands.js.map +1 -1
- package/dist/src/issue-batch.d.ts +2 -0
- package/dist/src/issue-batch.d.ts.map +1 -1
- package/dist/src/issue-batch.js +14 -10
- package/dist/src/issue-batch.js.map +1 -1
- package/dist/src/issue-context-commands.d.ts.map +1 -1
- package/dist/src/issue-context-commands.js +13 -12
- package/dist/src/issue-context-commands.js.map +1 -1
- package/dist/src/issue-context.d.ts.map +1 -1
- package/dist/src/issue-context.js +9 -13
- 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 +10 -9
- package/dist/src/issue-fields-commands.js.map +1 -1
- package/dist/src/issue-fields.d.ts +2 -4
- package/dist/src/issue-fields.d.ts.map +1 -1
- package/dist/src/issue-fields.js +39 -100
- package/dist/src/issue-fields.js.map +1 -1
- package/dist/src/issue-query-commands.d.ts.map +1 -1
- package/dist/src/issue-query-commands.js +15 -14
- package/dist/src/issue-query-commands.js.map +1 -1
- package/dist/src/issue-query.d.ts.map +1 -1
- package/dist/src/issue-query.js +7 -10
- package/dist/src/issue-query.js.map +1 -1
- package/dist/src/issue-relations-commands.d.ts.map +1 -1
- package/dist/src/issue-relations-commands.js +17 -16
- package/dist/src/issue-relations-commands.js.map +1 -1
- package/dist/src/issue-relations.js +2 -2
- 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 +12 -11
- package/dist/src/issue-time-commands.js.map +1 -1
- package/dist/src/issue-time.d.ts.map +1 -1
- package/dist/src/issue-time.js +16 -19
- package/dist/src/issue-time.js.map +1 -1
- package/dist/src/presentation.d.ts +59 -0
- package/dist/src/presentation.d.ts.map +1 -0
- package/dist/src/presentation.js +467 -0
- package/dist/src/presentation.js.map +1 -0
- package/dist/src/time-settings-commands.d.ts.map +1 -1
- package/dist/src/time-settings-commands.js +13 -11
- package/dist/src/time-settings-commands.js.map +1 -1
- package/dist/src/user-directory-commands.d.ts.map +1 -1
- package/dist/src/user-directory-commands.js +14 -12
- package/dist/src/user-directory-commands.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-catalog-commands.d.ts","sourceRoot":"","sources":["../../src/field-catalog-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"field-catalog-commands.d.ts","sourceRoot":"","sources":["../../src/field-catalog-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAoBxE,eAAO,MAAM,wBAAwB,EAAE,SAAS,iBAAiB,EAQhE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,SAAS,iBAAiB,EAiBlE,CAAC"}
|
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { command } from "@eyeauras/cli-factory";
|
|
2
2
|
import { pagedRead, projectedRead } from "./cli-support.js";
|
|
3
3
|
import { getCustomField, getEnumBundle, getEnumValue, getStateBundle, getStateValue, listCustomFields, listEnumBundles, listEnumValues, listFieldTypes, listStateBundles, listStateValues, } from "./field-catalog.js";
|
|
4
|
+
import { fieldTable, namedTable } from "./presentation.js";
|
|
5
|
+
const bundleTable = namedTable("BUNDLE", "No bundles.");
|
|
6
|
+
const valueTable = namedTable("VALUE", "No values.");
|
|
4
7
|
export const fieldCatalogRootCommands = [
|
|
5
|
-
command("field", "Inspect
|
|
6
|
-
pagedRead("list", "List
|
|
7
|
-
projectedRead("get <field>", "Show a
|
|
8
|
+
command("field", "Inspect custom fields and their types", [
|
|
9
|
+
pagedRead("list", "List custom fields", listCustomFields, fieldTable),
|
|
10
|
+
projectedRead("get <field>", "Show a custom field", getCustomField),
|
|
8
11
|
command("type", "Inspect custom-field types", [
|
|
9
|
-
pagedRead("list", "List
|
|
12
|
+
pagedRead("list", "List field types", listFieldTypes, namedTable("TYPE", "No field types.")),
|
|
10
13
|
]),
|
|
11
14
|
]),
|
|
12
15
|
];
|
|
13
16
|
export const fieldCatalogBundleChildren = [
|
|
14
|
-
command("enum", "Inspect enum bundles
|
|
15
|
-
pagedRead("list", "List
|
|
16
|
-
projectedRead("get <bundle>", "Show an enum bundle
|
|
17
|
-
command("value", "Inspect
|
|
18
|
-
pagedRead("list <bundle>", "List
|
|
19
|
-
projectedRead("get <bundle> <value>", "Show an enum value
|
|
17
|
+
command("enum", "Inspect enum bundles", [
|
|
18
|
+
pagedRead("list", "List enum bundles", listEnumBundles, bundleTable),
|
|
19
|
+
projectedRead("get <bundle>", "Show an enum bundle", getEnumBundle),
|
|
20
|
+
command("value", "Inspect enum values", [
|
|
21
|
+
pagedRead("list <bundle>", "List the bundle's values", listEnumValues, valueTable),
|
|
22
|
+
projectedRead("get <bundle> <value>", "Show an enum value", getEnumValue),
|
|
20
23
|
]),
|
|
21
24
|
]),
|
|
22
|
-
command("state", "Inspect state bundles
|
|
23
|
-
pagedRead("list", "List
|
|
24
|
-
projectedRead("get <bundle>", "Show a state bundle
|
|
25
|
-
command("value", "Inspect
|
|
26
|
-
pagedRead("list <bundle>", "List
|
|
27
|
-
projectedRead("get <bundle> <value>", "Show a state value
|
|
25
|
+
command("state", "Inspect state bundles", [
|
|
26
|
+
pagedRead("list", "List state bundles", listStateBundles, bundleTable),
|
|
27
|
+
projectedRead("get <bundle>", "Show a state bundle", getStateBundle),
|
|
28
|
+
command("value", "Inspect state values", [
|
|
29
|
+
pagedRead("list <bundle>", "List the bundle's values", listStateValues, valueTable),
|
|
30
|
+
projectedRead("get <bundle> <value>", "Show a state value", getStateValue),
|
|
28
31
|
]),
|
|
29
32
|
]),
|
|
30
33
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-catalog-commands.js","sourceRoot":"","sources":["../../src/field-catalog-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"field-catalog-commands.js","sourceRoot":"","sources":["../../src/field-catalog-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACxD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,wBAAwB,GAAiC;IACpE,OAAO,CAAC,OAAO,EAAE,uCAAuC,EAAE;QACxD,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,UAAU,CAAC;QACrE,aAAa,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,CAAC;QACnE,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE;YAC5C,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;SAC7F,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAiC;IACtE,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE;QACtC,SAAS,CAAC,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC;QACpE,aAAa,CAAC,cAAc,EAAE,qBAAqB,EAAE,aAAa,CAAC;QACnE,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAAE;YACtC,SAAS,CAAC,eAAe,EAAE,0BAA0B,EAAE,cAAc,EAAE,UAAU,CAAC;YAClF,aAAa,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,YAAY,CAAC;SAC1E,CAAC;KACH,CAAC;IACF,OAAO,CAAC,OAAO,EAAE,uBAAuB,EAAE;QACxC,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,WAAW,CAAC;QACtE,aAAa,CAAC,cAAc,EAAE,qBAAqB,EAAE,cAAc,CAAC;QACpE,OAAO,CAAC,OAAO,EAAE,sBAAsB,EAAE;YACvC,SAAS,CAAC,eAAe,EAAE,0BAA0B,EAAE,eAAe,EAAE,UAAU,CAAC;YACnF,aAAa,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,CAAC;SAC3E,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-directory-commands.d.ts","sourceRoot":"","sources":["../../src/group-directory-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"group-directory-commands.d.ts","sourceRoot":"","sources":["../../src/group-directory-commands.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,0BAA0B,qDAoBtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,qDAmBzC,CAAC"}
|
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import { command } from "@eyeauras/cli-factory";
|
|
2
2
|
import { pagedRead, projectedRead, readCommand, pageOptions, readOptions } from "./cli-support.js";
|
|
3
3
|
import { getGroup, getProjectTeam, listGroupMembers, listGroups, listProjectTeamGroups, listProjectTeamUsers, listSubgroups, } from "./group-directory.js";
|
|
4
|
+
import { groupRecord, groupTable, userTable, withView } from "./presentation.js";
|
|
4
5
|
const memberOptions = [
|
|
5
6
|
...pageOptions,
|
|
6
|
-
{ flags: "--direct", description: "
|
|
7
|
+
{ flags: "--direct", description: "Directly added users only" },
|
|
7
8
|
];
|
|
8
9
|
export const groupDirectoryRootCommands = [
|
|
9
|
-
command("group", "Inspect user groups
|
|
10
|
-
pagedRead("list", "List
|
|
11
|
-
projectedRead("get <group>", "
|
|
12
|
-
command("member", "Inspect
|
|
13
|
-
readCommand("list <group>", "List
|
|
10
|
+
command("group", "Inspect user groups", [
|
|
11
|
+
pagedRead("list", "List groups", listGroups, groupTable),
|
|
12
|
+
projectedRead("get <group>", "Show a group", getGroup, groupRecord),
|
|
13
|
+
command("member", "Inspect group members", [
|
|
14
|
+
withView(userTable, readCommand("list <group>", "List members, including inherited ones", async (connection, { args, options }, context) => listGroupMembers(connection, args.group, {
|
|
14
15
|
...readOptions(options),
|
|
15
16
|
direct: options.direct === true,
|
|
16
|
-
}), memberOptions),
|
|
17
|
+
}), memberOptions)),
|
|
17
18
|
]),
|
|
18
|
-
command("subgroup", "Inspect nested groups
|
|
19
|
-
pagedRead("list <group>", "List
|
|
19
|
+
command("subgroup", "Inspect nested groups", [
|
|
20
|
+
pagedRead("list <group>", "List the immediate subgroups", listSubgroups, groupTable),
|
|
20
21
|
]),
|
|
21
22
|
]),
|
|
22
23
|
];
|
|
23
24
|
export const groupDirectoryProjectChildren = [
|
|
24
|
-
command("team", "Inspect project
|
|
25
|
-
projectedRead("get <project>", "
|
|
26
|
-
command("group", "Inspect
|
|
27
|
-
pagedRead("list <project>", "List
|
|
25
|
+
command("team", "Inspect the project team (YouTrack 2026.1+)", [
|
|
26
|
+
projectedRead("get <project>", "Show the team", getProjectTeam, groupRecord),
|
|
27
|
+
command("group", "Inspect the team's groups", [
|
|
28
|
+
pagedRead("list <project>", "List the team's groups", listProjectTeamGroups, groupTable),
|
|
28
29
|
]),
|
|
29
|
-
command("user", "Inspect
|
|
30
|
-
readCommand("list <project>", "List
|
|
30
|
+
command("user", "Inspect the team's users", [
|
|
31
|
+
withView(userTable, readCommand("list <project>", "List team users, including group members", async (connection, { args, options }, context) => listProjectTeamUsers(connection, args.project, {
|
|
31
32
|
...readOptions(options),
|
|
32
33
|
direct: options.direct === true,
|
|
33
|
-
}), memberOptions),
|
|
34
|
+
}), memberOptions)),
|
|
34
35
|
]),
|
|
35
36
|
]),
|
|
36
37
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-directory-commands.js","sourceRoot":"","sources":["../../src/group-directory-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"group-directory-commands.js","sourceRoot":"","sources":["../../src/group-directory-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EACL,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjF,MAAM,aAAa,GAAG;IACpB,GAAG,WAAW;IACd,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,2BAA2B,EAAE;CAChE,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,OAAO,CAAC,OAAO,EAAE,qBAAqB,EAAE;QACtC,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC;QACxD,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,CAAC;QACnE,OAAO,CAAC,QAAQ,EAAE,uBAAuB,EAAE;YACzC,QAAQ,CAAC,SAAS,EAAE,WAAW,CAC7B,cAAc,EACd,wCAAwC,EACxC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE;gBACvC,GAAG,WAAW,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;aAChC,CAAC,EACJ,aAAa,CACd,CAAC;SACH,CAAC;QACF,OAAO,CAAC,UAAU,EAAE,uBAAuB,EAAE;YAC3C,SAAS,CAAC,cAAc,EAAE,8BAA8B,EAAE,aAAa,EAAE,UAAU,CAAC;SACrF,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,OAAO,CAAC,MAAM,EAAE,6CAA6C,EAAE;QAC7D,aAAa,CAAC,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,CAAC;QAC5E,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE;YAC5C,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,UAAU,CAAC;SACzF,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,0BAA0B,EAAE;YAC1C,QAAQ,CAAC,SAAS,EAAE,WAAW,CAC7B,gBAAgB,EAChB,0CAA0C,EAC1C,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE;gBAC7C,GAAG,WAAW,CAAC,OAAO,CAAC;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI;aAChC,CAAC,EACJ,aAAa,CACd,CAAC;SACH,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-attachments-commands.d.ts","sourceRoot":"","sources":["../../src/issue-attachments-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"issue-attachments-commands.d.ts","sourceRoot":"","sources":["../../src/issue-attachments-commands.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,wBAAwB,qDAwBpC,CAAC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { command } from "@eyeauras/cli-factory";
|
|
2
|
-
import {
|
|
2
|
+
import { inputFilePath } from "./client.js";
|
|
3
3
|
import { attachmentDownloadCommand } from "./attachment-download-commands.js";
|
|
4
4
|
import { pagedRead, projectedRead, updateCommand } from "./cli-support.js";
|
|
5
5
|
import { getIssueAttachment, listIssueAttachments, uploadIssueAttachment, } from "./issue-attachments.js";
|
|
6
|
+
import { attachmentRecord, attachmentTable, uploadedAttachments, withView } from "./presentation.js";
|
|
6
7
|
export const attachmentsIssueChildren = [
|
|
7
|
-
command("attachments", "Inspect, upload or download
|
|
8
|
+
command("attachments", "Inspect, upload or download attachments", [
|
|
8
9
|
attachmentDownloadCommand,
|
|
9
|
-
pagedRead("list <issueID>", "List
|
|
10
|
-
projectedRead("get <issueID> <attachmentID>", "
|
|
11
|
-
updateCommand("upload <issueID>", "Upload
|
|
10
|
+
pagedRead("list <issueID>", "List attachments", listIssueAttachments, attachmentTable),
|
|
11
|
+
projectedRead("get <issueID> <attachmentID>", "Show an attachment", getIssueAttachment, attachmentRecord),
|
|
12
|
+
withView(uploadedAttachments, updateCommand("upload <issueID>", "Upload a file to the issue", async (connection, { args, options }, context) => uploadIssueAttachment(connection, args.issueID, String(options.file)), [
|
|
12
13
|
{
|
|
13
14
|
flags: "--file <path>",
|
|
14
|
-
description: "
|
|
15
|
+
description: "Local file to upload",
|
|
15
16
|
required: true,
|
|
16
|
-
parse:
|
|
17
|
+
parse: inputFilePath,
|
|
17
18
|
},
|
|
18
|
-
]),
|
|
19
|
+
])),
|
|
19
20
|
]),
|
|
20
21
|
];
|
|
21
22
|
//# sourceMappingURL=issue-attachments-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-attachments-commands.js","sourceRoot":"","sources":["../../src/issue-attachments-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"issue-attachments-commands.js","sourceRoot":"","sources":["../../src/issue-attachments-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErG,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,CAAC,aAAa,EAAE,yCAAyC,EAAE;QAChE,yBAAyB;QACzB,SAAS,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,CAAC;QACtF,aAAa,CAAC,8BAA8B,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;QACzG,QAAQ,CAAC,mBAAmB,EAAE,aAAa,CACzC,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,qBAAqB,CACnB,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACrB,EACH;YACI;gBACE,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,aAAa;aACrB;SACF,CACJ,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -16,6 +16,8 @@ export declare function applyIssueBatch(connection: Connection, rows: readonly B
|
|
|
16
16
|
appDataDirectory: string;
|
|
17
17
|
continueOnError?: boolean;
|
|
18
18
|
failedRows?: string;
|
|
19
|
+
/** One human-only line per failed row and every ten rows. */
|
|
20
|
+
progress?: (message: string) => void;
|
|
19
21
|
}): Promise<{
|
|
20
22
|
status: string;
|
|
21
23
|
completed: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-batch.d.ts","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,KAAK,UAAU,EAAE,KAAK,cAAc,EAAsB,MAAM,aAAa,CAAC;AACxH,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIhG,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CACnB;AAsCD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA4BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"issue-batch.d.ts","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,KAAK,UAAU,EAAE,KAAK,cAAc,EAAsB,MAAM,aAAa,CAAC;AACxH,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIhG,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC;CACnB;AAsCD,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA4BnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,QAAQ,EAAE,EACzB,OAAO,EAAE;IACP,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;;;;;;;;GAqDF"}
|
package/dist/src/issue-batch.js
CHANGED
|
@@ -18,7 +18,7 @@ function csvRows(text) {
|
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
20
|
catch {
|
|
21
|
-
throw new Error("
|
|
21
|
+
throw new Error("The manifest must be valid CSV with one header of distinct supported columns.");
|
|
22
22
|
}
|
|
23
23
|
return records.map((record) => {
|
|
24
24
|
const row = {};
|
|
@@ -47,7 +47,7 @@ function csvRows(text) {
|
|
|
47
47
|
export function manifestRows(text, path) {
|
|
48
48
|
const csv = /\.csv$/i.test(path);
|
|
49
49
|
if (!csv && !/\.json$/i.test(path))
|
|
50
|
-
throw new Error("
|
|
50
|
+
throw new Error("The manifest must be a .json or .csv file.");
|
|
51
51
|
let rows;
|
|
52
52
|
if (csv) {
|
|
53
53
|
rows = csvRows(text);
|
|
@@ -57,14 +57,14 @@ export function manifestRows(text, path) {
|
|
|
57
57
|
rows = JSON.parse(text);
|
|
58
58
|
}
|
|
59
59
|
catch {
|
|
60
|
-
throw new Error("
|
|
60
|
+
throw new Error("The manifest must be valid JSON.");
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
if (!Array.isArray(rows) || !rows.length)
|
|
64
|
-
throw new Error("
|
|
64
|
+
throw new Error("The manifest must be a nonempty array of rows.");
|
|
65
65
|
return rows.map((value, index) => {
|
|
66
66
|
try {
|
|
67
|
-
const source = mutationBody(value
|
|
67
|
+
const source = mutationBody(value);
|
|
68
68
|
const { action, issue, ...body } = source;
|
|
69
69
|
if (action === "create" && issue === undefined)
|
|
70
70
|
return { row: index + 1, source, write: issueWrite(body, true) };
|
|
@@ -72,10 +72,10 @@ export function manifestRows(text, path) {
|
|
|
72
72
|
encodedID(issue, "issue ID");
|
|
73
73
|
return { row: index + 1, source, issue, write: issueWrite(body, false) };
|
|
74
74
|
}
|
|
75
|
-
throw new Error("
|
|
75
|
+
throw new Error("The action must be create, or update with an issue ID.");
|
|
76
76
|
}
|
|
77
77
|
catch (error) {
|
|
78
|
-
throw new Error(`
|
|
78
|
+
throw new Error(`Manifest row ${index + 1}: ${error.message}`);
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
}
|
|
@@ -85,11 +85,11 @@ export function manifestRows(text, path) {
|
|
|
85
85
|
*/
|
|
86
86
|
export async function applyIssueBatch(connection, rows, options) {
|
|
87
87
|
if (options.failedRows !== undefined && !/\.json$/i.test(options.failedRows)) {
|
|
88
|
-
throw new Error("
|
|
88
|
+
throw new Error("--failed-rows must end with .json.");
|
|
89
89
|
}
|
|
90
90
|
const results = [];
|
|
91
91
|
let stop = false;
|
|
92
|
-
for (const row of rows) {
|
|
92
|
+
for (const [index, row] of rows.entries()) {
|
|
93
93
|
if (stop || connection.signal?.aborted) {
|
|
94
94
|
results.push({ row: row.row, status: "unattempted" });
|
|
95
95
|
continue;
|
|
@@ -103,9 +103,13 @@ export async function applyIssueBatch(connection, rows, options) {
|
|
|
103
103
|
catch (error) {
|
|
104
104
|
const status = error.status;
|
|
105
105
|
const rejected = !sent || (typeof status === "number" && status >= 400 && status < 500);
|
|
106
|
-
|
|
106
|
+
const message = error.message;
|
|
107
|
+
results.push({ row: row.row, status: rejected ? "failed" : "uncertain", error: message });
|
|
108
|
+
options.progress?.(`Row ${row.row}: ${rejected ? "failed" : "uncertain"} (${message})`);
|
|
107
109
|
stop = !options.continueOnError;
|
|
108
110
|
}
|
|
111
|
+
if ((index + 1) % 10 === 0 && index + 1 < rows.length)
|
|
112
|
+
options.progress?.(`Processed ${index + 1} of ${rows.length} rows.`);
|
|
109
113
|
}
|
|
110
114
|
const count = (status) => results.filter((result) => result.status === status).length;
|
|
111
115
|
const resubmit = rows.filter((_row, index) => ["failed", "unattempted"].includes(String(results[index]?.status)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-batch.js","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAA4D,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAEhG,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AASjH,SAAS,OAAO,CAAC,IAAY;IAC3B,IAAI,OAAiC,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE;YACpB,GAAG,EAAE,IAAI;YACT,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,CAAC,MAAgB,EAAE,EAAE;gBAC5B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjG,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;SACF,CAA6B,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"issue-batch.js","sourceRoot":"","sources":["../../src/issue-batch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-context-commands.d.ts","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"issue-context-commands.d.ts","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,mBAAmB,qDAU/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,qDAyBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB,qDASlC,CAAC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { command } from "@eyeauras/cli-factory";
|
|
2
2
|
import { bodyUpdate, pagedRead, projectedRead, readCommand, projectionOptions, readOptions } from "./cli-support.js";
|
|
3
3
|
import { activityCategories, getActivitiesPage, getComment, getIssueActivitiesPage, getVcsChange, listIssueSprints, listVcsChanges, updateComment, } from "./issue-context.js";
|
|
4
|
+
import { commentShown, commentUpdated, sprintTable } from "./presentation.js";
|
|
4
5
|
const activityOptions = [
|
|
5
6
|
...projectionOptions,
|
|
6
7
|
{
|
|
7
8
|
flags: "--categories <categories>",
|
|
8
|
-
description: "
|
|
9
|
+
description: "Comma-separated activity category IDs",
|
|
9
10
|
required: true,
|
|
10
11
|
parse: activityCategories,
|
|
11
12
|
},
|
|
12
13
|
{
|
|
13
14
|
flags: "--cursor <cursor>",
|
|
14
|
-
description: "
|
|
15
|
+
description: "beforeCursor or afterCursor from a previous page",
|
|
15
16
|
},
|
|
16
|
-
{ flags: "--reverse", description: "
|
|
17
|
+
{ flags: "--reverse", description: "Newest activities first" },
|
|
17
18
|
];
|
|
18
19
|
function activityReadOptions(options) {
|
|
19
20
|
return {
|
|
@@ -24,24 +25,24 @@ function activityReadOptions(options) {
|
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
27
|
export const contextRootCommands = [
|
|
27
|
-
command("activities", "Inspect activities across
|
|
28
|
-
readCommand("page", "Read one
|
|
28
|
+
command("activities", "Inspect activities across issues", [
|
|
29
|
+
readCommand("page", "Read one cursor page of activities", async (connection, { options }, context) => getActivitiesPage(connection, activityReadOptions(options)), activityOptions),
|
|
29
30
|
]),
|
|
30
31
|
];
|
|
31
32
|
export const contextIssueChildren = [
|
|
32
33
|
command("activity", "Inspect the issue activity stream", [
|
|
33
|
-
readCommand("page <issueID>", "Read one
|
|
34
|
+
readCommand("page <issueID>", "Read one cursor page of activities", async (connection, { args, options }, context) => getIssueActivitiesPage(connection, args.issueID, activityReadOptions(options)), activityOptions),
|
|
34
35
|
]),
|
|
35
|
-
command("sprints", "Inspect sprints that contain an issue", [
|
|
36
|
-
pagedRead("list <issueID>", "List
|
|
36
|
+
command("sprints", "Inspect the sprints that contain an issue", [
|
|
37
|
+
pagedRead("list <issueID>", "List the issue's sprints", listIssueSprints, sprintTable),
|
|
37
38
|
]),
|
|
38
39
|
command("vcs-changes", "Inspect linked VCS changes and pull requests", [
|
|
39
|
-
pagedRead("list <issueID>", "List
|
|
40
|
-
projectedRead("get <issueID> <changeID>", "
|
|
40
|
+
pagedRead("list <issueID>", "List VCS changes and pull requests", listVcsChanges),
|
|
41
|
+
projectedRead("get <issueID> <changeID>", "Show a VCS change or pull request", getVcsChange),
|
|
41
42
|
]),
|
|
42
43
|
];
|
|
43
44
|
export const contextCommentChildren = [
|
|
44
|
-
projectedRead("get <issueID> <commentID>", "
|
|
45
|
-
bodyUpdate("update <issueID> <commentID>", "Replace
|
|
45
|
+
projectedRead("get <issueID> <commentID>", "Show a comment", getComment, commentShown),
|
|
46
|
+
bodyUpdate("update <issueID> <commentID>", "Replace a comment's text", updateComment, "text", commentUpdated("issueID", "commentID")),
|
|
46
47
|
];
|
|
47
48
|
//# sourceMappingURL=issue-context-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-context-commands.js","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,GAEd,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-context-commands.js","sourceRoot":"","sources":["../../src/issue-context-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrH,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,eAAe,GAAgC;IACnD,GAAG,iBAAiB;IACpB;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,kDAAkD;KAChE;IACD,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE;CAC/D,CAAC;AAEF,SAAS,mBAAmB,CAAC,OAAgC;IAC3D,OAAO;QACL,GAAG,WAAW,CAAC,OAAO,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/E,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO,CAAC,YAAY,EAAE,kCAAkC,EAAE;QACxD,WAAW,CACT,MAAM,EACN,oCAAoC,EACpC,KAAK,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CACzC,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAC7D,eAAe,CAChB;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO,CAAC,UAAU,EAAE,mCAAmC,EAAE;QACvD,WAAW,CACT,gBAAgB,EAChB,oCAAoC,EACpC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,CAC/C,sBAAsB,CACpB,UAAU,EACV,IAAI,CAAC,OAAO,EACZ,mBAAmB,CAAC,OAAO,CAAC,CAC7B,EACH,eAAe,CAChB;KACF,CAAC;IACF,OAAO,CAAC,SAAS,EAAE,2CAA2C,EAAE;QAC9D,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,WAAW,CAAC;KACvF,CAAC;IACF,OAAO,CAAC,aAAa,EAAE,8CAA8C,EAAE;QACrE,SAAS,CAAC,gBAAgB,EAAE,oCAAoC,EAAE,cAAc,CAAC;QACjF,aAAa,CACX,0BAA0B,EAC1B,mCAAmC,EACnC,YAAY,CACb;KACF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,CAAC;IACtF,UAAU,CACR,8BAA8B,EAC9B,0BAA0B,EAC1B,aAAa,EACb,MAAM,EACN,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CACvC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-context.d.ts","sourceRoot":"","sources":["../../src/issue-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"issue-context.d.ts","sourceRoot":"","sources":["../../src/issue-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAaL,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAgDD,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,eAAO,MAAM,UAAU,kIAItB,CAAC;AAEF,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAQhC;AAED,eAAO,MAAM,gBAAgB,2GAG5B,CAAC;AACF,eAAO,MAAM,cAAc,2GAG1B,CAAC;AACF,eAAO,MAAM,YAAY,iIAIxB,CAAC"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import { encodedID, fields, issuePath, mutate, mutationBody,
|
|
1
|
+
import { encodedID, fields, issuePath, mutate, mutationBody, nullableText, page, readCollection, readCollectionAt, readObject, readObjectAt, requiredText, } from "./client.js";
|
|
2
2
|
const activityFields = "id,beforeCursor,afterCursor,hasBefore,hasAfter,reverse,activities(id,$type,timestamp,author(id,login),category(id))";
|
|
3
3
|
const commentFields = "id,text,author(id,login),created,updated";
|
|
4
4
|
const vcsFields = "id,$type,date,fetched,text,author(login)";
|
|
5
5
|
export function activityCategories(value) {
|
|
6
|
-
requiredText(value, "categories");
|
|
7
|
-
if (value.split(",").some((category) => !category.trim())) {
|
|
8
|
-
throw new Error("YouTrack categories must contain nonempty comma-separated category IDs.");
|
|
9
|
-
}
|
|
10
|
-
return value;
|
|
6
|
+
return requiredText(value, "categories");
|
|
11
7
|
}
|
|
12
8
|
function activityQuery(options) {
|
|
13
9
|
if (options.reverse !== undefined && typeof options.reverse !== "boolean") {
|
|
14
|
-
throw new Error("
|
|
10
|
+
throw new Error("--reverse must be boolean.");
|
|
15
11
|
}
|
|
16
12
|
return {
|
|
17
13
|
fields: fields(options, activityFields),
|
|
@@ -25,20 +21,20 @@ async function activityPage(connection, path, options) {
|
|
|
25
21
|
if (options.fields === undefined &&
|
|
26
22
|
["activities", "beforeCursor", "afterCursor", "hasBefore", "hasAfter", "reverse"]
|
|
27
23
|
.some((key) => !Object.hasOwn(result, key))) {
|
|
28
|
-
throw new Error("
|
|
24
|
+
throw new Error("Invalid activity page from YouTrack.");
|
|
29
25
|
}
|
|
30
26
|
if (result.activities !== undefined &&
|
|
31
27
|
(!Array.isArray(result.activities) || result.activities.some((item) => item === null || typeof item !== "object" || Array.isArray(item)))) {
|
|
32
|
-
throw new Error("
|
|
28
|
+
throw new Error("Invalid activity page from YouTrack.");
|
|
33
29
|
}
|
|
34
30
|
for (const key of ["beforeCursor", "afterCursor"]) {
|
|
35
31
|
if (result[key] !== undefined && typeof result[key] !== "string") {
|
|
36
|
-
throw new Error("
|
|
32
|
+
throw new Error("Invalid activity page from YouTrack.");
|
|
37
33
|
}
|
|
38
34
|
}
|
|
39
35
|
for (const key of ["hasBefore", "hasAfter", "reverse"]) {
|
|
40
36
|
if (result[key] !== undefined && typeof result[key] !== "boolean") {
|
|
41
|
-
throw new Error("
|
|
37
|
+
throw new Error("Invalid activity page from YouTrack.");
|
|
42
38
|
}
|
|
43
39
|
}
|
|
44
40
|
return result;
|
|
@@ -51,8 +47,8 @@ export async function getIssueActivitiesPage(connection, issueID, options) {
|
|
|
51
47
|
}
|
|
52
48
|
export const getComment = readObjectAt((issueID, commentID) => `${issuePath(issueID)}/comments/${encodedID(commentID, "comment ID")}`, commentFields);
|
|
53
49
|
export async function updateComment(connection, issueID, commentID, input) {
|
|
54
|
-
const body = mutationBody(input
|
|
55
|
-
return mutate(connection, `${issuePath(issueID)}/comments/${encodedID(commentID, "comment ID")}`, { text:
|
|
50
|
+
const body = mutationBody(input);
|
|
51
|
+
return mutate(connection, `${issuePath(issueID)}/comments/${encodedID(commentID, "comment ID")}`, { ...body, ...(Object.hasOwn(body, "text") ? { text: nullableText(body.text, "text") } : {}) }, commentFields);
|
|
56
52
|
}
|
|
57
53
|
export const listIssueSprints = readCollectionAt((issueID) => `${issuePath(issueID)}/sprints`, "id,name,goal,start,finish,archived,agile(id,name)");
|
|
58
54
|
export const listVcsChanges = readCollectionAt((issueID) => `${issuePath(issueID)}/vcsChanges`, vcsFields);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-context.js","sourceRoot":"","sources":["../../src/issue-context.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"issue-context.js","sourceRoot":"","sources":["../../src/issue-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-fields-commands.d.ts","sourceRoot":"","sources":["../../src/issue-fields-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-fields-commands.d.ts","sourceRoot":"","sources":["../../src/issue-fields-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAaxE,eAAO,MAAM,qBAAqB,EAAE,SAAS,iBAAiB,EAM7D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,iBAAiB,EAE1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAY3D,CAAC"}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { command } from "@eyeauras/cli-factory";
|
|
2
2
|
import { bodyUpdate, pagedRead, projectedRead } from "./cli-support.js";
|
|
3
3
|
import { getProject, getProjectField, listProjectFields, listUsers, getIssueField, listIssueFields, setIssueField, } from "./issue-fields.js";
|
|
4
|
+
import { issueFieldRecord, issueFieldTable, projectFieldTable, projectRecord, userTable } from "./presentation.js";
|
|
4
5
|
export const fieldsProjectChildren = [
|
|
5
|
-
projectedRead("get <project>", "Show a project
|
|
6
|
-
command("field", "Inspect project custom-field settings
|
|
7
|
-
pagedRead("list <project>", "List
|
|
8
|
-
projectedRead("get <project> <field>", "Show project custom
|
|
6
|
+
projectedRead("get <project>", "Show a project", getProject, projectRecord),
|
|
7
|
+
command("field", "Inspect project custom-field settings", [
|
|
8
|
+
pagedRead("list <project>", "List the project's custom fields", listProjectFields, projectFieldTable),
|
|
9
|
+
projectedRead("get <project> <field>", "Show a project custom field", getProjectField),
|
|
9
10
|
]),
|
|
10
11
|
];
|
|
11
12
|
export const fieldsUserChildren = [
|
|
12
|
-
pagedRead("list", "List
|
|
13
|
+
pagedRead("list", "List users", listUsers, userTable),
|
|
13
14
|
];
|
|
14
15
|
export const fieldsIssueChildren = [
|
|
15
|
-
command("fields", "Read and set
|
|
16
|
-
pagedRead("list <issueID>", "List
|
|
17
|
-
projectedRead("get <issueID> <fieldID>", "Show a field
|
|
18
|
-
bodyUpdate("set <issueID> <fieldID>", "Set
|
|
16
|
+
command("fields", "Read and set custom fields", [
|
|
17
|
+
pagedRead("list <issueID>", "List the issue's custom fields", listIssueFields, issueFieldTable),
|
|
18
|
+
projectedRead("get <issueID> <fieldID>", "Show a custom field", getIssueField, issueFieldRecord),
|
|
19
|
+
bodyUpdate("set <issueID> <fieldID>", "Set a field value or state event", setIssueField, undefined, issueFieldRecord),
|
|
19
20
|
]),
|
|
20
21
|
];
|
|
21
22
|
//# sourceMappingURL=issue-fields-commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-fields-commands.js","sourceRoot":"","sources":["../../src/issue-fields-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"issue-fields-commands.js","sourceRoot":"","sources":["../../src/issue-fields-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnH,MAAM,CAAC,MAAM,qBAAqB,GAAiC;IACjE,aAAa,CAAC,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,CAAC;IAC3E,OAAO,CAAC,OAAO,EAAE,uCAAuC,EAAE;QACxD,SAAS,CAAC,gBAAgB,EAAE,kCAAkC,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;QACrG,aAAa,CAAC,uBAAuB,EAAE,6BAA6B,EAAE,eAAe,CAAC;KACvF,CAAC;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC;CACtD,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAiC;IAC/D,OAAO,CAAC,QAAQ,EAAE,4BAA4B,EAAE;QAC9C,SAAS,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,eAAe,EAAE,eAAe,CAAC;QAC/F,aAAa,CAAC,yBAAyB,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC;QAChG,UAAU,CACR,yBAAyB,EACzB,kCAAkC,EAClC,aAAa,EACb,SAAS,EACT,gBAAgB,CACjB;KACF,CAAC;CACH,CAAC"}
|
|
@@ -7,15 +7,13 @@ export declare const listIssueFields: (connection: Connection, issueID: string,
|
|
|
7
7
|
export declare const getIssueField: (connection: Connection, issueID: string, fieldID: string, options?: import("./client.js").ProjectionOptions | undefined) => Promise<YouTrackObject>;
|
|
8
8
|
export declare function setIssueField(connection: Connection, issueID: string, fieldID: string, input: unknown): Promise<YouTrackObject | null>;
|
|
9
9
|
export declare const issueWriteFields = "id,idReadable,summary,updated";
|
|
10
|
-
/** A
|
|
10
|
+
/** A JSON issue body; the API resolves supplied identity selectors. */
|
|
11
11
|
export interface IssueWrite {
|
|
12
|
-
project?: YouTrackObject;
|
|
13
12
|
body: YouTrackObject;
|
|
14
|
-
customFields?: YouTrackObject[];
|
|
15
13
|
}
|
|
16
14
|
/** Validate an issue create/update body without network access. */
|
|
17
15
|
export declare function issueWrite(input: unknown, create: boolean): IssueWrite;
|
|
18
|
-
/**
|
|
16
|
+
/** Send native selectors without extra catalog reads or body rewriting. */
|
|
19
17
|
export declare function issueRequest(connection: Connection, write: IssueWrite, issueID?: string): Promise<{
|
|
20
18
|
path: string;
|
|
21
19
|
body: YouTrackObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-fields.d.ts","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"issue-fields.d.ts","sourceRoot":"","sources":["../../src/issue-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,UAAU,EACf,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAerB,eAAO,MAAM,UAAU,uIAAsE,CAAC;AAC9F,eAAO,MAAM,iBAAiB,mIAG7B,CAAC;AACF,eAAO,MAAM,eAAe,wJAI3B,CAAC;AACF,eAAO,MAAM,SAAS,gHAAqD,CAAC;AAC5E,eAAO,MAAM,eAAe,iIAG3B,CAAC;AACF,eAAO,MAAM,aAAa,sJAA4C,CAAC;AAmEvE,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAYhC;AAED,eAAO,MAAM,gBAAgB,kCAAkC,CAAC;AAEhE,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;CACtB;AAOD,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,UAAU,CAsBtE;AAED,2EAA2E;AAC3E,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAEjD;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGxG;AAED,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGhC"}
|