@eyeauras/youtrack-cli 0.7.1 → 0.9.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 +161 -50
- package/dist/src/access-catalog-commands.d.ts +2 -0
- package/dist/src/access-catalog-commands.d.ts.map +1 -0
- package/dist/src/access-catalog-commands.js +24 -0
- package/dist/src/access-catalog-commands.js.map +1 -0
- package/dist/src/access-catalog.d.ts +12 -0
- package/dist/src/access-catalog.d.ts.map +1 -0
- package/dist/src/access-catalog.js +44 -0
- package/dist/src/access-catalog.js.map +1 -0
- package/dist/src/agile-commands.d.ts.map +1 -1
- package/dist/src/agile-commands.js +14 -5
- package/dist/src/agile-commands.js.map +1 -1
- package/dist/src/agile.d.ts +11 -2
- package/dist/src/agile.d.ts.map +1 -1
- package/dist/src/agile.js +29 -2
- package/dist/src/agile.js.map +1 -1
- package/dist/src/article-extras-commands.d.ts +1 -0
- package/dist/src/article-extras-commands.d.ts.map +1 -1
- package/dist/src/article-extras-commands.js +23 -6
- package/dist/src/article-extras-commands.js.map +1 -1
- package/dist/src/article-extras.d.ts +15 -2
- package/dist/src/article-extras.d.ts.map +1 -1
- package/dist/src/article-extras.js +49 -2
- package/dist/src/article-extras.js.map +1 -1
- package/dist/src/articles-commands.d.ts.map +1 -1
- package/dist/src/articles-commands.js +11 -8
- package/dist/src/articles-commands.js.map +1 -1
- package/dist/src/articles.d.ts +7 -5
- package/dist/src/articles.d.ts.map +1 -1
- package/dist/src/articles.js +13 -7
- package/dist/src/articles.js.map +1 -1
- package/dist/src/backup-commands.d.ts +2 -0
- package/dist/src/backup-commands.d.ts.map +1 -0
- package/dist/src/backup-commands.js +16 -0
- package/dist/src/backup-commands.js.map +1 -0
- package/dist/src/backup.d.ts +7 -0
- package/dist/src/backup.d.ts.map +1 -0
- package/dist/src/backup.js +30 -0
- package/dist/src/backup.js.map +1 -0
- package/dist/src/bundle-values-commands.d.ts.map +1 -1
- package/dist/src/bundle-values-commands.js +27 -9
- package/dist/src/bundle-values-commands.js.map +1 -1
- package/dist/src/bundle-values.d.ts +31 -12
- package/dist/src/bundle-values.d.ts.map +1 -1
- package/dist/src/bundle-values.js +61 -1
- package/dist/src/bundle-values.js.map +1 -1
- package/dist/src/cli-support.d.ts +10 -6
- package/dist/src/cli-support.d.ts.map +1 -1
- package/dist/src/cli-support.js +40 -12
- package/dist/src/cli-support.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +25 -11
- package/dist/src/cli.js.map +1 -1
- package/dist/src/client.d.ts +29 -9
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +180 -52
- package/dist/src/client.js.map +1 -1
- package/dist/src/credential-alias.d.ts +7 -0
- package/dist/src/credential-alias.d.ts.map +1 -0
- package/dist/src/credential-alias.js +21 -0
- package/dist/src/credential-alias.js.map +1 -0
- package/dist/src/field-catalog-commands.d.ts.map +1 -1
- package/dist/src/field-catalog-commands.js +30 -8
- package/dist/src/field-catalog-commands.js.map +1 -1
- package/dist/src/field-catalog.d.ts +30 -11
- package/dist/src/field-catalog.d.ts.map +1 -1
- package/dist/src/field-catalog.js +56 -1
- package/dist/src/field-catalog.js.map +1 -1
- package/dist/src/group-directory-commands.d.ts.map +1 -1
- package/dist/src/group-directory-commands.js +18 -9
- package/dist/src/group-directory-commands.js.map +1 -1
- package/dist/src/group-directory.d.ts +13 -4
- package/dist/src/group-directory.d.ts.map +1 -1
- package/dist/src/group-directory.js +41 -2
- package/dist/src/group-directory.js.map +1 -1
- package/dist/src/index.d.ts +20 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -14
- 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 +42 -6
- package/dist/src/issue-context-commands.js.map +1 -1
- package/dist/src/issue-context.d.ts +20 -4
- package/dist/src/issue-context.d.ts.map +1 -1
- package/dist/src/issue-context.js +43 -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 +26 -5
- package/dist/src/issue-fields-commands.js.map +1 -1
- package/dist/src/issue-fields.d.ts +30 -10
- package/dist/src/issue-fields.d.ts.map +1 -1
- package/dist/src/issue-fields.js +71 -9
- 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 +28 -6
- package/dist/src/issue-query-commands.js.map +1 -1
- package/dist/src/issue-query.d.ts +12 -1
- package/dist/src/issue-query.d.ts.map +1 -1
- package/dist/src/issue-query.js +24 -4
- package/dist/src/issue-query.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 +23 -10
- package/dist/src/issue-relations-commands.js.map +1 -1
- package/dist/src/issue-relations.d.ts +24 -13
- package/dist/src/issue-relations.d.ts.map +1 -1
- package/dist/src/issue-relations.js +50 -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/organization-commands.d.ts +2 -0
- package/dist/src/organization-commands.d.ts.map +1 -0
- package/dist/src/organization-commands.js +14 -0
- package/dist/src/organization-commands.js.map +1 -0
- package/dist/src/organizations.d.ts +7 -0
- package/dist/src/organizations.d.ts.map +1 -0
- package/dist/src/organizations.js +16 -0
- package/dist/src/organizations.js.map +1 -0
- package/dist/src/presentation.d.ts +39 -1
- package/dist/src/presentation.d.ts.map +1 -1
- package/dist/src/presentation.js +254 -0
- package/dist/src/presentation.js.map +1 -1
- package/dist/src/server-settings-commands.d.ts +2 -0
- package/dist/src/server-settings-commands.d.ts.map +1 -0
- package/dist/src/server-settings-commands.js +95 -0
- package/dist/src/server-settings-commands.js.map +1 -0
- package/dist/src/server-settings.d.ts +18 -0
- package/dist/src/server-settings.d.ts.map +1 -0
- package/dist/src/server-settings.js +101 -0
- package/dist/src/server-settings.js.map +1 -0
- package/dist/src/time-settings-commands.d.ts.map +1 -1
- package/dist/src/time-settings-commands.js +15 -8
- package/dist/src/time-settings-commands.js.map +1 -1
- package/dist/src/time-settings.d.ts +15 -7
- package/dist/src/time-settings.d.ts.map +1 -1
- package/dist/src/time-settings.js +35 -1
- package/dist/src/time-settings.js.map +1 -1
- package/dist/src/user-directory-commands.d.ts.map +1 -1
- package/dist/src/user-directory-commands.js +80 -7
- package/dist/src/user-directory-commands.js.map +1 -1
- package/dist/src/user-directory.d.ts +26 -8
- package/dist/src/user-directory.d.ts.map +1 -1
- package/dist/src/user-directory.js +80 -1
- package/dist/src/user-directory.js.map +1 -1
- package/package.json +3 -2
package/dist/src/issue-time.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { encodedID, fields, issuePath, mutate, mutationBody, nullableText, page, readPage, readCollectionAt, readObjectAt, requiredText, } from "./client.js";
|
|
1
|
+
import { encodedID, deleteObject, fields, issuePath, mutate, mutationBody, nullableText, page, readPage, readCollectionAt, readObjectAt, requiredText, } from "./client.js";
|
|
2
2
|
const workItemFields = "id,date,duration(minutes,presentation),text,type(id,name),author(id,login),issue(id,idReadable)";
|
|
3
3
|
function workItemsPath(issueID) {
|
|
4
4
|
return `${issuePath(issueID)}/timeTracking/workItems`;
|
|
@@ -6,9 +6,24 @@ function workItemsPath(issueID) {
|
|
|
6
6
|
export const getTimeTracking = readObjectAt((issueID) => `${issuePath(issueID)}/timeTracking`, "id,enabled");
|
|
7
7
|
export const listIssueWorkItems = readCollectionAt(workItemsPath, workItemFields);
|
|
8
8
|
export const getIssueWorkItem = readObjectAt((issueID, itemID) => `${workItemsPath(issueID)}/${encodedID(itemID, "work item ID")}`, workItemFields);
|
|
9
|
+
/** Values remain strings on the wire so a native Long need not fit a JS number. */
|
|
9
10
|
export async function listWorkItems(connection, options = {}) {
|
|
11
|
+
const filters = {};
|
|
12
|
+
const names = ["startDate", "endDate", "workStart", "workEnd", "createdStart", "createdEnd", "updatedStart", "updatedEnd"];
|
|
13
|
+
for (const name of names) {
|
|
14
|
+
const value = options[name];
|
|
15
|
+
if (value !== undefined)
|
|
16
|
+
filters[name === "workStart" ? "start" : name === "workEnd" ? "end" : name] = requiredText(value, name);
|
|
17
|
+
}
|
|
18
|
+
for (const name of ["author", "creator"]) {
|
|
19
|
+
const value = options[name];
|
|
20
|
+
if (value !== undefined)
|
|
21
|
+
filters[name] = Array.isArray(value)
|
|
22
|
+
? value.map(item => requiredText(item, name))
|
|
23
|
+
: requiredText(value, name);
|
|
24
|
+
}
|
|
10
25
|
return readPage(connection, "api/workItems", {
|
|
11
|
-
...page(options, workItemFields),
|
|
26
|
+
...page(options, workItemFields), ...filters,
|
|
12
27
|
...(options.query === undefined ? {} : { query: requiredText(options.query, "query") }),
|
|
13
28
|
});
|
|
14
29
|
}
|
|
@@ -77,9 +92,12 @@ function workItemBody(input, creating) {
|
|
|
77
92
|
return result;
|
|
78
93
|
}
|
|
79
94
|
export async function addWorkItem(connection, issueID, input, options = {}) {
|
|
80
|
-
return mutate(connection, workItemsPath(issueID), workItemBody(input, true), fields(options, workItemFields));
|
|
95
|
+
return mutate(connection, workItemsPath(issueID), workItemBody(input, true), fields(options, workItemFields), options);
|
|
81
96
|
}
|
|
82
97
|
export async function updateWorkItem(connection, issueID, itemID, input, options = {}) {
|
|
83
|
-
return mutate(connection, `${workItemsPath(issueID)}/${encodedID(itemID, "work item ID")}`, workItemBody(input, false), fields(options, workItemFields));
|
|
98
|
+
return mutate(connection, `${workItemsPath(issueID)}/${encodedID(itemID, "work item ID")}`, workItemBody(input, false), fields(options, workItemFields), options);
|
|
99
|
+
}
|
|
100
|
+
export async function deleteIssueWorkItem(connection, issueID, itemID, options = {}) {
|
|
101
|
+
return deleteObject(connection, `${workItemsPath(issueID)}/${encodedID(itemID, "work item ID")}`, options);
|
|
84
102
|
}
|
|
85
103
|
//# sourceMappingURL=issue-time.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"issue-time.js","sourceRoot":"","sources":["../../src/issue-time.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"issue-time.js","sourceRoot":"","sources":["../../src/issue-time.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-commands.d.ts","sourceRoot":"","sources":["../../src/organization-commands.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,qDAQpC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { command } from "@eyeauras/cli-factory";
|
|
2
|
+
import { pagedRead, projectedRead, projectedBodyUpdate, projectedDelete } from "./cli-support.js";
|
|
3
|
+
import { listOrganizations, getOrganization, createOrganization, updateOrganization, deleteOrganization } from "./organizations.js";
|
|
4
|
+
import { namedTable, mutationWritten } from "./presentation.js";
|
|
5
|
+
export const organizationRootCommands = [
|
|
6
|
+
command("organization", "Inspect and manage organizations", [
|
|
7
|
+
pagedRead("list", "List organizations", listOrganizations, namedTable("ORGANIZATION", "No organizations.")),
|
|
8
|
+
projectedRead("get <organization>", "Show an organization", getOrganization, mutationWritten("Organization", "organization")),
|
|
9
|
+
projectedBodyUpdate("create", "Create an organization", createOrganization, undefined, mutationWritten("Created organization")),
|
|
10
|
+
projectedBodyUpdate("update <organization>", "Update a selected organization", updateOrganization, undefined, mutationWritten("Updated organization", "organization")),
|
|
11
|
+
projectedDelete("delete <organization>", "Delete a selected organization", deleteOrganization, mutationWritten("Deleted organization", "organization")),
|
|
12
|
+
]),
|
|
13
|
+
];
|
|
14
|
+
//# sourceMappingURL=organization-commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organization-commands.js","sourceRoot":"","sources":["../../src/organization-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACpI,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,CAAC,cAAc,EAAE,kCAAkC,EAAE;QAC1D,SAAS,CAAC,MAAM,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,UAAU,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAC3G,aAAa,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAE,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QAC7H,mBAAmB,CAAC,QAAQ,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;QAC/H,mBAAmB,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;QACtK,eAAe,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,kBAAkB,EAAE,eAAe,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;KACxJ,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Connection, type ProjectionOptions } from "./client.js";
|
|
2
|
+
export declare const listOrganizations: (connection: Connection, options?: import("./client.js").PageOptions | undefined) => Promise<import("./client.js").YouTrackPage>;
|
|
3
|
+
export declare const getOrganization: (connection: Connection, organizationID: string, options?: ProjectionOptions | undefined) => Promise<import("./client.js").YouTrackObject>;
|
|
4
|
+
export declare function createOrganization(connection: Connection, input: unknown, options?: ProjectionOptions): Promise<import("./client.js").YouTrackObject | null>;
|
|
5
|
+
export declare function updateOrganization(connection: Connection, organizationID: string, input: unknown, options?: ProjectionOptions): Promise<import("./client.js").YouTrackObject | null>;
|
|
6
|
+
export declare function deleteOrganization(connection: Connection, organizationID: string, options?: ProjectionOptions): Promise<import("./client.js").YouTrackObject | null>;
|
|
7
|
+
//# sourceMappingURL=organizations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../../src/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAAE,KAAK,iBAAiB,EACxC,MAAM,aAAa,CAAC;AAKrB,eAAO,MAAM,iBAAiB,kIAA6C,CAAC;AAC5E,eAAO,MAAM,eAAe,4IAAqD,CAAC;AAClF,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,wDAE/G;AACD,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,iBAAsB,wDAEvI;AACD,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,wDAEvH"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { encodedID, fields, mutate, deleteObject, namedMutationBody, readCollectionAt, readObjectAt, } from "./client.js";
|
|
2
|
+
const root = "api/admin/organizations";
|
|
3
|
+
const organizationFields = "id,name";
|
|
4
|
+
const organizationPath = (organizationID) => `${root}/${encodedID(organizationID, "organization ID")}`;
|
|
5
|
+
export const listOrganizations = readCollectionAt(root, organizationFields);
|
|
6
|
+
export const getOrganization = readObjectAt(organizationPath, organizationFields);
|
|
7
|
+
export async function createOrganization(connection, input, options = {}) {
|
|
8
|
+
return mutate(connection, root, namedMutationBody(input, true), fields(options, organizationFields));
|
|
9
|
+
}
|
|
10
|
+
export async function updateOrganization(connection, organizationID, input, options = {}) {
|
|
11
|
+
return mutate(connection, organizationPath(organizationID), namedMutationBody(input, false), fields(options, organizationFields));
|
|
12
|
+
}
|
|
13
|
+
export async function deleteOrganization(connection, organizationID, options = {}) {
|
|
14
|
+
return deleteObject(connection, organizationPath(organizationID), options);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=organizations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"organizations.js","sourceRoot":"","sources":["../../src/organizations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,GAE3F,MAAM,aAAa,CAAC;AAErB,MAAM,IAAI,GAAG,yBAAyB,CAAC;AACvC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,gBAAgB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,SAAS,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC;AAC/G,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AAClF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAsB,EAAE,KAAc,EAAE,OAAO,GAAsB,EAAE;IAC9G,OAAO,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACvG,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAsB,EAAE,cAAsB,EAAE,KAAc,EAAE,OAAO,GAAsB,EAAE;IACtI,OAAO,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;AACpI,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,UAAsB,EAAE,cAAsB,EAAE,OAAO,GAAsB,EAAE;IACtH,OAAO,YAAY,CAAC,UAAU,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type CommandDefinition, type HumanView, type ViewContext } from "@eyeauras/cli-factory";
|
|
1
|
+
import { type CommandDefinition, type CommandInput, type HumanView, type ViewContext } from "@eyeauras/cli-factory";
|
|
2
2
|
/** Attach a view; an explicit `--fields` projection shows the generic shape instead. */
|
|
3
3
|
export declare function withView(view: HumanView, definition: CommandDefinition): CommandDefinition;
|
|
4
4
|
export declare const arg: (context: ViewContext, name: string) => string;
|
|
@@ -56,4 +56,42 @@ export declare const savedQueryTable: HumanView;
|
|
|
56
56
|
export declare const batchValidated: HumanView;
|
|
57
57
|
export declare const batchApplied: HumanView;
|
|
58
58
|
export declare const uploadedAttachments: HumanView;
|
|
59
|
+
export declare const reactionTable: HumanView;
|
|
60
|
+
export declare const reactionRecord: HumanView;
|
|
61
|
+
export declare const activityTable: HumanView;
|
|
62
|
+
export declare const activityRecord: HumanView;
|
|
63
|
+
export declare const updatedAttachment: HumanView;
|
|
64
|
+
export declare const savedQueryRecord: HumanView;
|
|
65
|
+
export declare const vcsRecord: HumanView;
|
|
66
|
+
/** Keep only credential-scrubbed human fallback labels; never alter the request or native result. */
|
|
67
|
+
export declare function rememberSubmittedIdentity(input: CommandInput, token: string, additional?: readonly string[]): void;
|
|
68
|
+
export declare const agileWritten: (verb: string) => HumanView;
|
|
69
|
+
export declare const bundleValueWritten: HumanView;
|
|
70
|
+
export declare const tagWritten: HumanView;
|
|
71
|
+
export declare const fieldDefaultsRecord: HumanView;
|
|
72
|
+
export declare const projectFieldRecord: HumanView;
|
|
73
|
+
export declare const fieldInstanceTable: HumanView;
|
|
74
|
+
/** Mutation confirmations use scrubbed result/request identities, including native empty replies. */
|
|
75
|
+
export declare const mutationWritten: (label: string, selectedArgument?: string, ...contextArguments: string[]) => HumanView;
|
|
76
|
+
export declare const projectTimeRecord: HumanView;
|
|
77
|
+
export declare const roleAssignmentTable: HumanView;
|
|
78
|
+
export declare const roleAssignmentRecord: HumanView;
|
|
79
|
+
export declare const roleRecord: HumanView;
|
|
80
|
+
export declare const notificationRecord: HumanView;
|
|
81
|
+
export declare const generalProfileRecord: HumanView;
|
|
82
|
+
export declare const timeProfileRecord: HumanView;
|
|
83
|
+
export declare const scopedIssueWritten: (verb: string) => HumanView;
|
|
84
|
+
export declare const apiSchemaRecord: HumanView;
|
|
85
|
+
export declare const telemetryRecord: HumanView;
|
|
86
|
+
export declare const globalSettingsRecord: HumanView;
|
|
87
|
+
export declare const systemSettingsRecord: HumanView;
|
|
88
|
+
export declare const corsSettingsRecord: HumanView;
|
|
89
|
+
export declare const backupFileTable: HumanView;
|
|
90
|
+
export declare const backupFileRecord: HumanView;
|
|
91
|
+
export declare const backupSettingsRecord: HumanView;
|
|
92
|
+
export declare const backupStatusRecord: HumanView;
|
|
93
|
+
export declare const appearanceSettingsRecord: HumanView;
|
|
94
|
+
export declare const notificationSettingsRecord: HumanView;
|
|
95
|
+
export declare const localeSettingsRecord: HumanView;
|
|
96
|
+
export declare const licenseRecord: HumanView;
|
|
59
97
|
//# sourceMappingURL=presentation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/presentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAK/B,wFAAwF;AACxF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,CAE1F;AAsBD,eAAO,MAAM,GAAG,YAAa,WAAW,QAAQ,MAAM,KAAG,MAA+C,CAAC;AAmBzG,8EAA8E;AAC9E,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAOnE;AAED,gGAAgG;AAChG,wBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAE1E;AAED,eAAO,MAAM,UAAU,WAWrB,CAAC;AAEH,eAAO,MAAM,WAAW,WAiBtB,CAAC;AAYH,eAAO,MAAM,YAAY,WAA0B,CAAC;AACpD,eAAO,MAAM,YAAY,WAA0B,CAAC;AAEpD,eAAO,MAAM,WAAW,WAStB,CAAC;AAEH,eAAO,MAAM,YAAY,WAUvB,CAAC;AAaH,eAAO,MAAM,YAAY,WAAmE,CAAC;AAC7F,kFAAkF;AAClF,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,SACmF,CAAC;AACjI,eAAO,MAAM,cAAc,UAAW,MAAM,WAAW,MAAM,KAAG,SAC0C,CAAC;AAE3G,eAAO,MAAM,YAAY,WASvB,CAAC;AAEH,eAAO,MAAM,aAAa,WAOxB,CAAC;AAEH,eAAO,MAAM,SAAS,WASpB,CAAC;AAEH,eAAO,MAAM,UAAU,WAMrB,CAAC;AAEH,eAAO,MAAM,UAAU,WASrB,CAAC;AAEH,eAAO,MAAM,WAAW,WAStB,CAAC;AAYH,eAAO,MAAM,WAAW,WAWtB,CAAC;AAEH,eAAO,MAAM,YAAY,WAA2F,CAAC;AACrH,eAAO,MAAM,aAAa,SAAU,MAAM,KAAG,SAIzC,CAAC;AAEL,eAAO,MAAM,YAAY,WAUvB,CAAC;AAEH,eAAO,MAAM,aAAa,WASxB,CAAC;AAYH,eAAO,MAAM,cAAc,WAA4B,CAAC;AACxD,eAAO,MAAM,cAAc,WAA4B,CAAC;AAExD,eAAO,MAAM,QAAQ,WAAgC,CAAC;AACtD,eAAO,MAAM,SAAS,WAAgH,CAAC;AACvI,eAAO,MAAM,YAAY,WAKvB,CAAC;AACH,eAAO,MAAM,QAAQ,WAGnB,CAAC;AAEH,eAAO,MAAM,aAAa,WAWxB,CAAC;AAWH,eAAO,MAAM,aAAa,WAKxB,CAAC;AACH,eAAO,MAAM,eAAe,WAM1B,CAAC;AACH,eAAO,MAAM,cAAc,WAQzB,CAAC;AACH,eAAO,MAAM,eAAe,WAK1B,CAAC;AACH,eAAO,MAAM,WAAW,WAItB,CAAC;AAEH,eAAO,MAAM,eAAe,WAU1B,CAAC;AACH,eAAO,MAAM,gBAAgB,WAO3B,CAAC;AACH,eAAO,MAAM,eAAe,WAQ1B,CAAC;AACH,eAAO,MAAM,eAAe,WAY1B,CAAC;AAEH,eAAO,MAAM,UAAU,WASrB,CAAC;AAEH,eAAO,MAAM,WAAW,WAOtB,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,WAW5B,CAAC;AAEH,eAAO,MAAM,cAAc,WAOzB,CAAC;AAEH,eAAO,MAAM,UAAU,WAUrB,CAAC;AAWH,eAAO,MAAM,eAAe,WAS1B,CAAC;AACH,eAAO,MAAM,gBAAgB,WAK3B,CAAC;AAEH,eAAO,MAAM,aAAa,WAaxB,CAAC;AAEH,eAAO,MAAM,eAAe,WAU1B,CAAC;AAEH,eAAO,MAAM,cAAc,WAIzB,CAAC;AAKH,eAAO,MAAM,YAAY,WAkBvB,CAAC;AAEH,eAAO,MAAM,mBAAmB,WAQ9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/presentation.ts"],"names":[],"mappings":"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"}
|
package/dist/src/presentation.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { listView, recordView, tableView, } from "@eyeauras/cli-factory";
|
|
2
|
+
import { scrubText } from "./client.js";
|
|
2
3
|
/** Attach a view; an explicit `--fields` projection shows the generic shape instead. */
|
|
3
4
|
export function withView(view, definition) {
|
|
4
5
|
return { ...definition, view: { ...view, when: (context) => context.input?.options.fields === undefined } };
|
|
@@ -488,4 +489,257 @@ export const uploadedAttachments = tableView({
|
|
|
488
489
|
],
|
|
489
490
|
empty: "Uploaded.",
|
|
490
491
|
});
|
|
492
|
+
export const reactionTable = tableView({
|
|
493
|
+
rows: page => page.items,
|
|
494
|
+
columns: [id, { header: "REACTION", value: item => text(item.reaction) }, { header: "AUTHOR", value: login }],
|
|
495
|
+
empty: "No reactions.", footer: pageFooter,
|
|
496
|
+
});
|
|
497
|
+
export const reactionRecord = recordView({
|
|
498
|
+
title: item => joined("Reaction", key(item)),
|
|
499
|
+
fields: [
|
|
500
|
+
{ label: "Reaction", value: item => text(item?.reaction) },
|
|
501
|
+
{ label: "Author", value: item => login(item ?? undefined) },
|
|
502
|
+
],
|
|
503
|
+
});
|
|
504
|
+
export const activityTable = tableView({
|
|
505
|
+
rows: page => page.items,
|
|
506
|
+
columns: [id, { header: "CATEGORY", value: item => text(nested(item.category)?.id) },
|
|
507
|
+
{ header: "AUTHOR", value: login }, { header: "WHEN", value: item => instant(item.timestamp), format: "age" }],
|
|
508
|
+
empty: "No activity items.", footer: pageFooter,
|
|
509
|
+
});
|
|
510
|
+
export const activityRecord = recordView({
|
|
511
|
+
title: item => joined("Activity", key(item)),
|
|
512
|
+
fields: [
|
|
513
|
+
{ label: "Category", value: item => text(nested(item.category)?.id) },
|
|
514
|
+
{ label: "Author", value: login },
|
|
515
|
+
{ label: "When", value: item => instant(item.timestamp) },
|
|
516
|
+
],
|
|
517
|
+
});
|
|
518
|
+
export const updatedAttachment = recordView({
|
|
519
|
+
title: (item, context) => joined("Updated attachment", key(item) ?? arg(context, "attachmentID")),
|
|
520
|
+
fields: [{ label: "Name", value: item => text(item?.name) }, { label: "Size", value: item => count(item?.size), format: "bytes" }],
|
|
521
|
+
});
|
|
522
|
+
export const savedQueryRecord = recordView({
|
|
523
|
+
title: item => joined("Saved search", text(item?.name) ?? key(item)),
|
|
524
|
+
fields: [{ label: "ID", value: item => key(item) }, { label: "Query", value: item => text(item?.query) }],
|
|
525
|
+
});
|
|
526
|
+
export const vcsRecord = recordView({
|
|
527
|
+
title: (item, context) => joined("VCS change", key(item) ?? arg(context, "changeID")),
|
|
528
|
+
fields: [{ label: "Version", value: item => text(item?.version) },
|
|
529
|
+
{ label: "State", value: item => count(item?.state) ?? text(nested(item?.state)?.id) }],
|
|
530
|
+
});
|
|
531
|
+
const submittedIdentities = new WeakMap();
|
|
532
|
+
/** Keep only credential-scrubbed human fallback labels; never alter the request or native result. */
|
|
533
|
+
export function rememberSubmittedIdentity(input, token, additional = []) {
|
|
534
|
+
const body = nested(input.options.body);
|
|
535
|
+
const safe = (value) => typeof value === "string" ? scrubText(value, token.trim(), additional) : undefined;
|
|
536
|
+
submittedIdentities.set(input.options, {
|
|
537
|
+
name: safe(body?.name) ?? safe(body?.summary) ?? safe(body?.login) ?? safe(body?.id), field: safe(nested(body?.field)?.id), project: safe(input.args.project),
|
|
538
|
+
args: Object.fromEntries(Object.entries(input.args).map(([name, value]) => [name, safe(value)])),
|
|
539
|
+
role: safe(nested(body?.role)?.id), holder: safe(nested(body?.holder)?.id), scope: safe(scopeLabel(nested(body?.scope))),
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
const submittedIdentity = (context) => context.input ? submittedIdentities.get(context.input.options) : undefined;
|
|
543
|
+
const submittedName = (context) => submittedIdentity(context)?.name;
|
|
544
|
+
export const agileWritten = (verb) => recordView({
|
|
545
|
+
title: (item, context) => joined(`${verb} board`, text(item?.name) ?? key(item) ?? submittedName(context) ?? arg(context, "agile")),
|
|
546
|
+
fields: [{ label: "ID", value: item => key(item) }],
|
|
547
|
+
});
|
|
548
|
+
const booleanText = (value) => typeof value === "boolean" ? value ? "yes" : "no" : undefined;
|
|
549
|
+
export const bundleValueWritten = recordView({
|
|
550
|
+
title: (item, context) => joined("Value", text(item?.name) ?? key(item) ?? submittedName(context) ?? submittedIdentity(context)?.args.value, submittedIdentity(context)?.args.bundle),
|
|
551
|
+
fields: [{ label: "ID", value: item => key(item) },
|
|
552
|
+
{ label: "Archived", value: item => booleanText(item?.archived) },
|
|
553
|
+
{ label: "Released", value: item => booleanText(item?.released) },
|
|
554
|
+
{ label: "Release date", value: item => instant(item?.releaseDate) },
|
|
555
|
+
{ label: "Start date", value: item => instant(item?.startDate) },
|
|
556
|
+
{ label: "Resolved state", value: item => booleanText(item?.isResolved) }],
|
|
557
|
+
});
|
|
558
|
+
export const tagWritten = recordView({
|
|
559
|
+
title: (item, context) => joined("Tag", text(item?.name) ?? key(item) ?? submittedName(context) ?? arg(context, "tagID")),
|
|
560
|
+
fields: [{ label: "ID", value: item => key(item) }],
|
|
561
|
+
});
|
|
562
|
+
export const fieldDefaultsRecord = recordView({
|
|
563
|
+
title: (item, context) => joined("Field defaults", key(item) ?? arg(context, "field")),
|
|
564
|
+
fields: [{ label: "Can be empty", value: item => booleanText(item?.canBeEmpty) },
|
|
565
|
+
{ label: "Public", value: item => booleanText(item?.isPublic) },
|
|
566
|
+
{ label: "Empty text", value: item => text(item?.emptyFieldText) }],
|
|
567
|
+
});
|
|
568
|
+
export const projectFieldRecord = recordView({
|
|
569
|
+
title: (item, context) => joined("Project field", text(nested(item?.field)?.name) ?? key(item) ?? submittedIdentity(context)?.field ?? arg(context, "field"), item === null && submittedIdentity(context)?.field !== undefined ? submittedIdentity(context)?.project : undefined),
|
|
570
|
+
fields: [{ label: "ID", value: item => key(item) },
|
|
571
|
+
{ label: "Can be empty", value: item => booleanText(item?.canBeEmpty) },
|
|
572
|
+
{ label: "Public", value: item => booleanText(item?.isPublic) }],
|
|
573
|
+
});
|
|
574
|
+
export const fieldInstanceTable = tableView({
|
|
575
|
+
rows: page => page.items,
|
|
576
|
+
columns: [id, { header: "PROJECT", value: item => text(nested(item.project)?.shortName) ?? text(nested(item.project)?.name) },
|
|
577
|
+
{ header: "FIELD", value: item => text(nested(item.field)?.name) }],
|
|
578
|
+
empty: "No projects use this field.", footer: pageFooter,
|
|
579
|
+
});
|
|
580
|
+
/** Mutation confirmations use scrubbed result/request identities, including native empty replies. */
|
|
581
|
+
export const mutationWritten = (label, selectedArgument, ...contextArguments) => recordView({
|
|
582
|
+
title: (item, context) => joined(label, text(item?.name) ?? text(item?.login) ?? key(item) ?? submittedName(context)
|
|
583
|
+
?? (selectedArgument === undefined ? undefined : submittedIdentity(context)?.args[selectedArgument]), ...contextArguments.map(name => submittedIdentity(context)?.args[name])),
|
|
584
|
+
fields: [{ label: "ID", value: item => key(item) }],
|
|
585
|
+
});
|
|
586
|
+
export const projectTimeRecord = recordView({
|
|
587
|
+
title: (item, context) => joined("Time tracking", key(item), submittedIdentity(context)?.args.project),
|
|
588
|
+
fields: [{ label: "Enabled", value: item => booleanText(item?.enabled) },
|
|
589
|
+
{ label: "Estimate field", value: item => text(nested(nested(item?.estimate)?.field)?.name) ?? key(nested(item?.estimate)) },
|
|
590
|
+
{ label: "Time spent field", value: item => text(nested(nested(item?.timeSpent)?.field)?.name) ?? key(nested(item?.timeSpent)) }],
|
|
591
|
+
});
|
|
592
|
+
const roleLabel = (item) => text(item?.name) ?? key(item);
|
|
593
|
+
const holderLabel = (item) => text(item?.login) ?? text(item?.name) ?? key(item);
|
|
594
|
+
const scopeLabel = (item) => text(nested(item?.project)?.name)
|
|
595
|
+
?? key(nested(item?.project)) ?? text(nested(item?.organization)?.name) ?? key(nested(item?.organization))
|
|
596
|
+
?? (item?.$type === "GlobalScope" ? "Global" : key(item));
|
|
597
|
+
export const roleAssignmentTable = tableView({
|
|
598
|
+
rows: page => page.items,
|
|
599
|
+
columns: [id, { header: "ROLE", value: item => roleLabel(nested(item.role)) },
|
|
600
|
+
{ header: "HOLDER", value: item => holderLabel(nested(item.holder)) },
|
|
601
|
+
{ header: "SCOPE", value: item => scopeLabel(nested(item.scope)) }],
|
|
602
|
+
empty: "No role assignments.", footer: pageFooter,
|
|
603
|
+
});
|
|
604
|
+
export const roleAssignmentRecord = recordView({
|
|
605
|
+
title: (item, context) => {
|
|
606
|
+
const selected = submittedIdentity(context);
|
|
607
|
+
return joined("Role assignment", key(item) ?? selected?.args.assignment, item === null && selected?.role ? `Role ${selected.role}` : undefined, item === null && selected?.holder ? `Holder ${selected.holder}` : undefined, item === null && selected?.scope ? `Scope ${selected.scope}` : undefined);
|
|
608
|
+
},
|
|
609
|
+
fields: [{ label: "Role", value: item => roleLabel(nested(item?.role)) },
|
|
610
|
+
{ label: "Holder", value: item => holderLabel(nested(item?.holder)) },
|
|
611
|
+
{ label: "Scope", value: item => scopeLabel(nested(item?.scope)) }],
|
|
612
|
+
});
|
|
613
|
+
export const roleRecord = recordView({
|
|
614
|
+
title: (item, context) => text(item?.name) ?? key(item) ?? submittedIdentity(context)?.args.role,
|
|
615
|
+
fields: [{ label: "ID", value: item => key(item) }, { label: "Description", value: item => text(item?.description) },
|
|
616
|
+
{ label: "Immutable", value: item => booleanText(item?.immutable) },
|
|
617
|
+
{ label: "Permissions", value: item => Array.isArray(item?.permissions) ? item.permissions.length : undefined }],
|
|
618
|
+
});
|
|
619
|
+
export const notificationRecord = recordView({
|
|
620
|
+
title: (_item, context) => joined("Notifications", submittedIdentity(context)?.args.user),
|
|
621
|
+
fields: [{ label: "Own changes", value: item => booleanText(item?.notifyOnOwnChanges) },
|
|
622
|
+
{ label: "Email", value: item => booleanText(item?.emailNotificationsEnabled) },
|
|
623
|
+
{ label: "Mentions", value: item => booleanText(item?.mentionNotificationsEnabled) },
|
|
624
|
+
{ label: "Duplicates", value: item => booleanText(item?.duplicateClusterNotificationsEnabled) },
|
|
625
|
+
{ label: "Mailbox integration", value: item => booleanText(item?.mailboxIntegrationNotificationsEnabled) },
|
|
626
|
+
{ label: "Plain text email", value: item => booleanText(item?.usePlainTextEmails) },
|
|
627
|
+
{ label: "Watch on comment", value: item => booleanText(item?.autoWatchOnComment) },
|
|
628
|
+
{ label: "Watch on create", value: item => booleanText(item?.autoWatchOnCreate) },
|
|
629
|
+
{ label: "Watch on vote", value: item => booleanText(item?.autoWatchOnVote) }],
|
|
630
|
+
});
|
|
631
|
+
export const generalProfileRecord = recordView({
|
|
632
|
+
title: (_item, context) => joined("General profile", submittedIdentity(context)?.args.user),
|
|
633
|
+
fields: [{ label: "Date format", value: item => text(nested(item?.dateFieldFormat)?.presentation) ?? text(nested(item?.dateFieldFormat)?.pattern) ?? key(nested(item?.dateFieldFormat)) },
|
|
634
|
+
{ label: "Timezone", value: item => text(nested(item?.timezone)?.presentation) ?? key(nested(item?.timezone)) },
|
|
635
|
+
{ label: "Locale", value: item => text(nested(item?.locale)?.name) ?? text(nested(item?.locale)?.locale) ?? key(nested(item?.locale)) }],
|
|
636
|
+
});
|
|
637
|
+
export const timeProfileRecord = recordView({
|
|
638
|
+
title: (_item, context) => joined("Time-tracking profile", submittedIdentity(context)?.args.user),
|
|
639
|
+
fields: [{ label: "Period format", value: item => key(nested(item?.periodFormat)) }],
|
|
640
|
+
});
|
|
641
|
+
export const scopedIssueWritten = (verb) => recordView({
|
|
642
|
+
title: (item, context) => joined(`${verb} issue`, key(item) ?? text(item?.summary) ?? submittedName(context) ?? submittedIdentity(context)?.args.issue, submittedIdentity(context)?.args.project),
|
|
643
|
+
fields: [{ label: "Summary", value: item => key(item) === undefined ? undefined : text(item?.summary) }],
|
|
644
|
+
});
|
|
645
|
+
export const apiSchemaRecord = recordView({
|
|
646
|
+
title: () => "REST API schema",
|
|
647
|
+
fields: [
|
|
648
|
+
{ label: "OpenAPI", value: item => text(item.openapi) },
|
|
649
|
+
{ label: "Title", value: item => text(nested(item.info)?.title) },
|
|
650
|
+
{ label: "Version", value: item => text(nested(item.info)?.version) },
|
|
651
|
+
{ label: "Paths", value: item => { const paths = nested(item.paths); return paths ? Object.keys(paths).length : undefined; } },
|
|
652
|
+
],
|
|
653
|
+
});
|
|
654
|
+
export const telemetryRecord = recordView({
|
|
655
|
+
title: () => "Server telemetry",
|
|
656
|
+
fields: [
|
|
657
|
+
{ label: "ID", value: key },
|
|
658
|
+
{ label: "Started", value: item => instant(item.startedTime) },
|
|
659
|
+
{ label: "Uptime", value: item => text(item.uptime) },
|
|
660
|
+
{ label: "Processors", value: item => count(item.availableProcessors) },
|
|
661
|
+
{ label: "Available memory", value: item => text(item.availableMemory) },
|
|
662
|
+
{ label: "Used memory", value: item => text(item.usedMemory) },
|
|
663
|
+
{ label: "Issues", value: item => count(item.issuesCount) },
|
|
664
|
+
{ label: "Articles", value: item => count(item.articlesCount) },
|
|
665
|
+
],
|
|
666
|
+
});
|
|
667
|
+
export const globalSettingsRecord = recordView({
|
|
668
|
+
title: () => "Global settings",
|
|
669
|
+
fields: [{ label: "ID", value: key }],
|
|
670
|
+
});
|
|
671
|
+
export const systemSettingsRecord = recordView({
|
|
672
|
+
title: () => "System settings",
|
|
673
|
+
fields: [
|
|
674
|
+
{ label: "ID", value: key },
|
|
675
|
+
{ label: "Base URL", value: item => text(item.baseUrl) },
|
|
676
|
+
{ label: "Upload limit", value: item => count(item.maxUploadFileSize), format: "bytes" },
|
|
677
|
+
{ label: "Export limit", value: item => count(item.maxExportItems) },
|
|
678
|
+
{ label: "Administrator", value: item => text(item.administratorEmail) },
|
|
679
|
+
{ label: "Usage statistics", value: item => booleanText(item.allowStatisticsCollection) },
|
|
680
|
+
{ label: "Read-only mode", value: item => booleanText(item.isApplicationReadOnly) },
|
|
681
|
+
],
|
|
682
|
+
});
|
|
683
|
+
export const corsSettingsRecord = recordView({
|
|
684
|
+
title: () => "CORS settings",
|
|
685
|
+
fields: [
|
|
686
|
+
{ label: "ID", value: key },
|
|
687
|
+
{ label: "All origins", value: item => booleanText(item.allowAllOrigins) },
|
|
688
|
+
],
|
|
689
|
+
sections: [{ title: () => "Allowed origins", lines: item => {
|
|
690
|
+
if (!Array.isArray(item.allowedOrigins))
|
|
691
|
+
return undefined;
|
|
692
|
+
const origins = item.allowedOrigins.filter((origin) => typeof origin === "string");
|
|
693
|
+
return item.allowedOrigins.length === 0 ? ["No allowed origins."] : origins;
|
|
694
|
+
} }],
|
|
695
|
+
});
|
|
696
|
+
export const backupFileTable = tableView({
|
|
697
|
+
rows: page => page.items,
|
|
698
|
+
columns: [id, { header: "BACKUP", value: item => text(item.name), shrink: true },
|
|
699
|
+
{ header: "SIZE", value: item => count(item.size), format: "bytes" },
|
|
700
|
+
{ header: "CREATED", value: item => instant(item.creationDate), format: "age" }],
|
|
701
|
+
empty: "No backup files.", footer: pageFooter,
|
|
702
|
+
});
|
|
703
|
+
export const backupFileRecord = recordView({
|
|
704
|
+
title: item => joined("Backup file", text(item.name) ?? key(item)),
|
|
705
|
+
fields: [{ label: "ID", value: key }, { label: "Size", value: item => count(item.size), format: "bytes" },
|
|
706
|
+
{ label: "Created", value: item => instant(item.creationDate) }],
|
|
707
|
+
});
|
|
708
|
+
export const backupSettingsRecord = recordView({
|
|
709
|
+
title: () => "Backup settings",
|
|
710
|
+
fields: [{ label: "ID", value: key }, { label: "Scheduled", value: item => booleanText(item.isOn) },
|
|
711
|
+
{ label: "Format", value: item => text(item.archiveFormat) }, { label: "Files to keep", value: item => count(item.filesToKeep) },
|
|
712
|
+
{ label: "Schedule", value: item => text(item.cronExpression) }, { label: "Location", value: item => text(item.location) },
|
|
713
|
+
{ label: "Available space", value: item => count(item.availableDiskSpace), format: "bytes" }],
|
|
714
|
+
});
|
|
715
|
+
export const backupStatusRecord = recordView({
|
|
716
|
+
title: () => "Backup status",
|
|
717
|
+
fields: [{ label: "ID", value: key }, { label: "In progress", value: item => booleanText(item.backupInProgress) },
|
|
718
|
+
{ label: "Cancelled", value: item => booleanText(item.backupCancelled) },
|
|
719
|
+
{ label: "Error time", value: item => instant(nested(item.backupError)?.date) },
|
|
720
|
+
{ label: "Error", value: item => text(nested(item.backupError)?.errorMessage) }],
|
|
721
|
+
});
|
|
722
|
+
export const appearanceSettingsRecord = recordView({
|
|
723
|
+
title: () => "Appearance settings",
|
|
724
|
+
fields: [{ label: "ID", value: key },
|
|
725
|
+
{ label: "Time zone", value: item => text(nested(item.timeZone)?.presentation) ?? key(nested(item.timeZone)) },
|
|
726
|
+
{ label: "Date format", value: item => text(nested(item.dateFieldFormat)?.presentation) ?? key(nested(item.dateFieldFormat)) }],
|
|
727
|
+
});
|
|
728
|
+
export const notificationSettingsRecord = recordView({
|
|
729
|
+
title: () => "Email settings",
|
|
730
|
+
fields: [{ label: "ID", value: key }, { label: "Enabled", value: item => booleanText(nested(item.emailSettings)?.isEnabled) },
|
|
731
|
+
{ label: "Host", value: item => text(nested(item.emailSettings)?.host) }, { label: "Port", value: item => count(nested(item.emailSettings)?.port) },
|
|
732
|
+
{ label: "Protocol", value: item => text(nested(item.emailSettings)?.mailProtocol) },
|
|
733
|
+
{ label: "Anonymous", value: item => booleanText(nested(item.emailSettings)?.anonymous) },
|
|
734
|
+
{ label: "From", value: item => text(nested(item.emailSettings)?.from) }, { label: "Reply to", value: item => text(nested(item.emailSettings)?.replyTo) }],
|
|
735
|
+
});
|
|
736
|
+
export const localeSettingsRecord = recordView({
|
|
737
|
+
title: () => "Locale settings",
|
|
738
|
+
fields: [{ label: "ID", value: key }, { label: "Locale", value: item => text(nested(item.locale)?.name) ?? key(nested(item.locale)) },
|
|
739
|
+
{ label: "Language", value: item => text(nested(item.locale)?.language) }, { label: "Right to left", value: item => booleanText(item.isRTL) }],
|
|
740
|
+
});
|
|
741
|
+
export const licenseRecord = recordView({
|
|
742
|
+
title: () => "Server license",
|
|
743
|
+
fields: [{ label: "ID", value: key }, { label: "Licensee", value: item => text(item.username) }, { label: "Error", value: item => text(item.error) }],
|
|
744
|
+
});
|
|
491
745
|
//# sourceMappingURL=presentation.js.map
|