@arnavpisces/sutra 1.0.2 → 1.0.6
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 +2 -5
- package/dist/api/jira-client.d.ts +16 -1
- package/dist/api/jira-client.d.ts.map +1 -1
- package/dist/api/jira-client.js +81 -2
- package/dist/api/jira-client.js.map +1 -1
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +178 -6
- package/dist/app.js.map +1 -1
- package/dist/components/common/EditableTextBox.d.ts.map +1 -1
- package/dist/components/common/EditableTextBox.js +2 -1
- package/dist/components/common/EditableTextBox.js.map +1 -1
- package/dist/components/common/FuzzySelect.d.ts.map +1 -1
- package/dist/components/common/FuzzySelect.js +5 -1
- package/dist/components/common/FuzzySelect.js.map +1 -1
- package/dist/components/common/Header.d.ts +3 -1
- package/dist/components/common/Header.d.ts.map +1 -1
- package/dist/components/common/Header.js +3 -3
- package/dist/components/common/Header.js.map +1 -1
- package/dist/components/common/SavedList.d.ts.map +1 -1
- package/dist/components/common/SavedList.js +7 -2
- package/dist/components/common/SavedList.js.map +1 -1
- package/dist/components/common/ShortcutHints.d.ts +12 -0
- package/dist/components/common/ShortcutHints.d.ts.map +1 -0
- package/dist/components/common/ShortcutHints.js +10 -0
- package/dist/components/common/ShortcutHints.js.map +1 -0
- package/dist/components/common/TextEditor.d.ts.map +1 -1
- package/dist/components/common/TextEditor.js +13 -2
- package/dist/components/common/TextEditor.js.map +1 -1
- package/dist/components/confluence/ConfluenceView.d.ts.map +1 -1
- package/dist/components/confluence/ConfluenceView.js +7 -3
- package/dist/components/confluence/ConfluenceView.js.map +1 -1
- package/dist/components/confluence/PageAttachments.d.ts.map +1 -1
- package/dist/components/confluence/PageAttachments.js +11 -2
- package/dist/components/confluence/PageAttachments.js.map +1 -1
- package/dist/components/confluence/PageBrowser.d.ts.map +1 -1
- package/dist/components/confluence/PageBrowser.js +7 -1
- package/dist/components/confluence/PageBrowser.js.map +1 -1
- package/dist/components/confluence/PageComments.d.ts.map +1 -1
- package/dist/components/confluence/PageComments.js +5 -1
- package/dist/components/confluence/PageComments.js.map +1 -1
- package/dist/components/confluence/PageEditor.d.ts.map +1 -1
- package/dist/components/confluence/PageEditor.js +5 -1
- package/dist/components/confluence/PageEditor.js.map +1 -1
- package/dist/components/confluence/PageLabels.d.ts.map +1 -1
- package/dist/components/confluence/PageLabels.js +10 -2
- package/dist/components/confluence/PageLabels.js.map +1 -1
- package/dist/components/confluence/PageList.d.ts.map +1 -1
- package/dist/components/confluence/PageList.js +13 -3
- package/dist/components/confluence/PageList.js.map +1 -1
- package/dist/components/confluence/PageViewer.d.ts.map +1 -1
- package/dist/components/confluence/PageViewer.js +13 -1
- package/dist/components/confluence/PageViewer.js.map +1 -1
- package/dist/components/jira/CommentForm.d.ts.map +1 -1
- package/dist/components/jira/CommentForm.js +11 -2
- package/dist/components/jira/CommentForm.js.map +1 -1
- package/dist/components/jira/CreateTicket.d.ts.map +1 -1
- package/dist/components/jira/CreateTicket.js +164 -8
- package/dist/components/jira/CreateTicket.js.map +1 -1
- package/dist/components/jira/IssueList.d.ts.map +1 -1
- package/dist/components/jira/IssueList.js +8 -2
- package/dist/components/jira/IssueList.js.map +1 -1
- package/dist/components/jira/JiraView.d.ts +2 -1
- package/dist/components/jira/JiraView.d.ts.map +1 -1
- package/dist/components/jira/JiraView.js +63 -10
- package/dist/components/jira/JiraView.js.map +1 -1
- package/dist/components/jira/JqlSearch.d.ts.map +1 -1
- package/dist/components/jira/JqlSearch.js +5 -1
- package/dist/components/jira/JqlSearch.js.map +1 -1
- package/dist/components/jira/QuickFilters.d.ts.map +1 -1
- package/dist/components/jira/QuickFilters.js +31 -4
- package/dist/components/jira/QuickFilters.js.map +1 -1
- package/dist/components/jira/TicketDetail.d.ts +2 -1
- package/dist/components/jira/TicketDetail.d.ts.map +1 -1
- package/dist/components/jira/TicketDetail.js +83 -13
- package/dist/components/jira/TicketDetail.js.map +1 -1
- package/dist/components/jira/TicketEditor.d.ts.map +1 -1
- package/dist/components/jira/TicketEditor.js +15 -2
- package/dist/components/jira/TicketEditor.js.map +1 -1
- package/dist/components/jira/TicketList.d.ts.map +1 -1
- package/dist/components/jira/TicketList.js +9 -3
- package/dist/components/jira/TicketList.js.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/auto-updater.d.ts +12 -0
- package/dist/utils/auto-updater.d.ts.map +1 -0
- package/dist/utils/auto-updater.js +261 -0
- package/dist/utils/auto-updater.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,11 +29,8 @@ Built for day-to-day engineering workflows where speed matters.
|
|
|
29
29
|
### 3) Run JQL search (`currentUser()` example)
|
|
30
30
|

|
|
31
31
|
|
|
32
|
-
### 4) Search Confluence
|
|
33
|
-

|
|
32
|
+
### 4) Search, view and edit Confluence doc
|
|
33
|
+

|
|
37
34
|
|
|
38
35
|
## Features
|
|
39
36
|
|
|
@@ -5,6 +5,13 @@ export interface JiraIssue {
|
|
|
5
5
|
fields: {
|
|
6
6
|
summary: string;
|
|
7
7
|
description: any;
|
|
8
|
+
parent?: {
|
|
9
|
+
id?: string;
|
|
10
|
+
key?: string;
|
|
11
|
+
fields?: {
|
|
12
|
+
summary?: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
8
15
|
status: {
|
|
9
16
|
name: string;
|
|
10
17
|
id: string;
|
|
@@ -30,6 +37,9 @@ export interface JiraTransition {
|
|
|
30
37
|
name: string;
|
|
31
38
|
to: {
|
|
32
39
|
name: string;
|
|
40
|
+
statusCategory?: {
|
|
41
|
+
key: string;
|
|
42
|
+
};
|
|
33
43
|
};
|
|
34
44
|
}
|
|
35
45
|
export interface JiraSearchResult {
|
|
@@ -69,6 +79,8 @@ export declare class JiraClient {
|
|
|
69
79
|
}): Promise<void>;
|
|
70
80
|
getTransitions(key: string): Promise<JiraTransition[]>;
|
|
71
81
|
transitionIssue(key: string, transitionId: string): Promise<void>;
|
|
82
|
+
assignIssueToUser(key: string, accountId: string): Promise<void>;
|
|
83
|
+
assignIssueToMe(key: string): Promise<void>;
|
|
72
84
|
addComment(key: string, body: any): Promise<void>;
|
|
73
85
|
updateComment(issueKey: string, commentId: string, body: any): Promise<void>;
|
|
74
86
|
getComments(issueKey: string, startAt?: number, maxResults?: number): Promise<{
|
|
@@ -79,6 +91,7 @@ export declare class JiraClient {
|
|
|
79
91
|
accountId: string;
|
|
80
92
|
displayName: string;
|
|
81
93
|
}>;
|
|
94
|
+
getIssueCount(jql: string): Promise<number>;
|
|
82
95
|
searchIssues(jql: string, maxResults?: number, startAt?: number): Promise<JiraSearchResult>;
|
|
83
96
|
getProjects(): Promise<{
|
|
84
97
|
id: string;
|
|
@@ -94,8 +107,10 @@ export declare class JiraClient {
|
|
|
94
107
|
id: string;
|
|
95
108
|
name: string;
|
|
96
109
|
}[]>;
|
|
110
|
+
searchEpics(projectKey: string, query: string, maxResults?: number): Promise<JiraIssue[]>;
|
|
111
|
+
searchParentIssues(projectKey: string, query: string, maxResults?: number): Promise<JiraIssue[]>;
|
|
97
112
|
getPriorities(): Promise<JiraPriority[]>;
|
|
98
|
-
createIssue(projectKey: string, issueTypeId: string, summary: string, description: string, priorityId?: string): Promise<JiraIssue>;
|
|
113
|
+
createIssue(projectKey: string, issueTypeId: string, summary: string, description: string, priorityId?: string, parentKey?: string): Promise<JiraIssue>;
|
|
99
114
|
downloadAttachment(attachmentId: string): Promise<Buffer>;
|
|
100
115
|
uploadAttachment(issueKey: string, filePath: string): Promise<void>;
|
|
101
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira-client.d.ts","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,aAAa,CAAC;AAIzD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,GAAG,CAAC;QACjB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;QACF,OAAO,CAAC,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC;gBACd,EAAE,EAAE,MAAM,CAAC;gBACX,MAAM,EAAE;oBACN,WAAW,EAAE,MAAM,CAAC;oBACpB,SAAS,CAAC,EAAE,MAAM,CAAC;iBACpB,CAAC;gBACF,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,GAAG,CAAC;aACX,CAAC,CAAC;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"jira-client.d.ts","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"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"}
|
package/dist/api/jira-client.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { ApiClient } from './client.js';
|
|
2
2
|
import { readFileSync } from 'fs';
|
|
3
3
|
import { basename } from 'path';
|
|
4
|
+
function escapeJqlString(value) {
|
|
5
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
6
|
+
}
|
|
4
7
|
export class JiraClient {
|
|
5
8
|
constructor(config) {
|
|
6
9
|
this.apiClient = new ApiClient(config);
|
|
7
10
|
}
|
|
8
11
|
async getIssue(key) {
|
|
9
12
|
const expand = 'changelog,changelog.histories';
|
|
10
|
-
const fields = 'summary,description,status,comment,attachment,issuetype,priority,labels,assignee,reporter,created,updated,duedate';
|
|
13
|
+
const fields = 'summary,description,parent,status,comment,attachment,issuetype,priority,labels,assignee,reporter,created,updated,duedate';
|
|
11
14
|
return this.apiClient.get(`/rest/api/3/issue/${key}?expand=${expand}&fields=${fields}`);
|
|
12
15
|
}
|
|
13
16
|
async updateIssue(key, fields) {
|
|
@@ -22,6 +25,13 @@ export class JiraClient {
|
|
|
22
25
|
transition: { id: transitionId },
|
|
23
26
|
});
|
|
24
27
|
}
|
|
28
|
+
async assignIssueToUser(key, accountId) {
|
|
29
|
+
await this.apiClient.put(`/rest/api/3/issue/${key}/assignee`, { accountId });
|
|
30
|
+
}
|
|
31
|
+
async assignIssueToMe(key) {
|
|
32
|
+
const me = await this.getMyself();
|
|
33
|
+
await this.assignIssueToUser(key, me.accountId);
|
|
34
|
+
}
|
|
25
35
|
async addComment(key, body) {
|
|
26
36
|
await this.apiClient.post(`/rest/api/3/issue/${key}/comment`, { body });
|
|
27
37
|
}
|
|
@@ -35,6 +45,46 @@ export class JiraClient {
|
|
|
35
45
|
async getMyself() {
|
|
36
46
|
return this.apiClient.get('/rest/api/3/myself');
|
|
37
47
|
}
|
|
48
|
+
async getIssueCount(jql) {
|
|
49
|
+
const encodedJql = encodeURIComponent(jql);
|
|
50
|
+
const fields = encodeURIComponent('id');
|
|
51
|
+
const pageSize = 100;
|
|
52
|
+
let startAt = 0;
|
|
53
|
+
let counted = 0;
|
|
54
|
+
let pageGuard = 0;
|
|
55
|
+
// Prefer enhanced search API and count incrementally. This avoids relying on `total`,
|
|
56
|
+
// which can be omitted in some Jira Cloud responses.
|
|
57
|
+
while (pageGuard < 100) {
|
|
58
|
+
try {
|
|
59
|
+
const page = await this.apiClient.get(`/rest/api/3/search/jql?jql=${encodedJql}&startAt=${startAt}&maxResults=${pageSize}&fields=${fields}`);
|
|
60
|
+
const issues = Array.isArray(page?.issues) ? page.issues : [];
|
|
61
|
+
const pageCount = issues.length;
|
|
62
|
+
counted += pageCount;
|
|
63
|
+
const hasNext = page?.isLast === false ||
|
|
64
|
+
Boolean(page?.nextPageToken) ||
|
|
65
|
+
(typeof page?.total === 'number' && startAt + pageCount < page.total);
|
|
66
|
+
if (!hasNext || pageCount === 0) {
|
|
67
|
+
if (typeof page?.total === 'number') {
|
|
68
|
+
return Math.max(counted, page.total);
|
|
69
|
+
}
|
|
70
|
+
return counted;
|
|
71
|
+
}
|
|
72
|
+
startAt += pageCount;
|
|
73
|
+
pageGuard += 1;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Final fallback for tenants where /search/jql is unavailable.
|
|
80
|
+
try {
|
|
81
|
+
const legacy = await this.apiClient.get(`/rest/api/3/search?jql=${encodedJql}&maxResults=0&fields=id`);
|
|
82
|
+
return typeof legacy?.total === 'number' ? legacy.total : counted;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return counted;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
38
88
|
async searchIssues(jql, maxResults = 50, startAt = 0) {
|
|
39
89
|
const fields = encodeURIComponent('summary,status,description,created,issuetype,priority');
|
|
40
90
|
const encodedJql = encodeURIComponent(jql);
|
|
@@ -108,6 +158,32 @@ export class JiraClient {
|
|
|
108
158
|
}
|
|
109
159
|
return [];
|
|
110
160
|
}
|
|
161
|
+
async searchEpics(projectKey, query, maxResults = 35) {
|
|
162
|
+
const trimmedQuery = query.trim();
|
|
163
|
+
const clauses = [
|
|
164
|
+
`project = "${escapeJqlString(projectKey)}"`,
|
|
165
|
+
'issuetype = Epic',
|
|
166
|
+
];
|
|
167
|
+
if (trimmedQuery) {
|
|
168
|
+
clauses.push(`summary ~ "${escapeJqlString(trimmedQuery)}*"`);
|
|
169
|
+
}
|
|
170
|
+
const jql = `${clauses.join(' AND ')} ORDER BY updated DESC`;
|
|
171
|
+
const result = await this.searchIssues(jql, maxResults, 0);
|
|
172
|
+
return result.issues;
|
|
173
|
+
}
|
|
174
|
+
async searchParentIssues(projectKey, query, maxResults = 35) {
|
|
175
|
+
const trimmedQuery = query.trim();
|
|
176
|
+
const clauses = [
|
|
177
|
+
`project = "${escapeJqlString(projectKey)}"`,
|
|
178
|
+
'parent IS EMPTY',
|
|
179
|
+
];
|
|
180
|
+
if (trimmedQuery) {
|
|
181
|
+
clauses.push(`summary ~ "${escapeJqlString(trimmedQuery)}*"`);
|
|
182
|
+
}
|
|
183
|
+
const jql = `${clauses.join(' AND ')} ORDER BY updated DESC`;
|
|
184
|
+
const result = await this.searchIssues(jql, maxResults, 0);
|
|
185
|
+
return result.issues;
|
|
186
|
+
}
|
|
111
187
|
async getPriorities() {
|
|
112
188
|
try {
|
|
113
189
|
const modern = await this.apiClient.get('/rest/api/3/priority/search?maxResults=200');
|
|
@@ -129,7 +205,7 @@ export class JiraClient {
|
|
|
129
205
|
}
|
|
130
206
|
return [];
|
|
131
207
|
}
|
|
132
|
-
async createIssue(projectKey, issueTypeId, summary, description, priorityId) {
|
|
208
|
+
async createIssue(projectKey, issueTypeId, summary, description, priorityId, parentKey) {
|
|
133
209
|
const issueFields = {
|
|
134
210
|
project: { key: projectKey },
|
|
135
211
|
issuetype: { id: issueTypeId },
|
|
@@ -153,6 +229,9 @@ export class JiraClient {
|
|
|
153
229
|
if (priorityId) {
|
|
154
230
|
issueFields.priority = { id: priorityId };
|
|
155
231
|
}
|
|
232
|
+
if (parentKey) {
|
|
233
|
+
issueFields.parent = { key: parentKey };
|
|
234
|
+
}
|
|
156
235
|
const body = {
|
|
157
236
|
fields: issueFields
|
|
158
237
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jira-client.js","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"jira-client.js","sourceRoot":"","sources":["../../src/api/jira-client.ts"],"names":[],"mappings":"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"}
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"AAuBA,wBAAgB,GAAG,4CAqXlB"}
|
package/dist/app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
3
3
|
import { Box, Text, useInput, useApp, useStdout } from 'ink';
|
|
4
4
|
import { ConfigManager } from './config/config-manager.js';
|
|
5
5
|
import { JiraClient } from './api/jira-client.js';
|
|
@@ -12,11 +12,13 @@ import { HelpModal } from './components/common/HelpModal.js';
|
|
|
12
12
|
import { Toast } from './components/common/Toast.js';
|
|
13
13
|
import { JiraView } from './components/jira/JiraView.js';
|
|
14
14
|
import { ConfluenceView } from './components/confluence/ConfluenceView.js';
|
|
15
|
+
import { subscribeAutoUpdateEvents } from './utils/auto-updater.js';
|
|
15
16
|
import { te } from './theme/te.js';
|
|
16
17
|
export function App() {
|
|
17
18
|
const { exit } = useApp();
|
|
18
19
|
const { stdout } = useStdout();
|
|
19
20
|
const [activeTab, setActiveTab] = useState(0);
|
|
21
|
+
const [now, setNow] = useState(() => new Date());
|
|
20
22
|
const [jiraClient, setJiraClient] = useState(null);
|
|
21
23
|
const [confluenceClient, setConfluenceClient] = useState(null);
|
|
22
24
|
const [jiraBaseUrl, setJiraBaseUrl] = useState('');
|
|
@@ -24,9 +26,18 @@ export function App() {
|
|
|
24
26
|
const [connectionStatus, setConnectionStatus] = useState('loading');
|
|
25
27
|
const [showHelp, setShowHelp] = useState(false);
|
|
26
28
|
const [toast, setToast] = useState(null);
|
|
29
|
+
const [toastQueue, setToastQueue] = useState([]);
|
|
30
|
+
const [jiraOpenCount, setJiraOpenCount] = useState(null);
|
|
31
|
+
const [jiraTotalCount, setJiraTotalCount] = useState(null);
|
|
32
|
+
const [myConfluenceDocs, setMyConfluenceDocs] = useState(null);
|
|
33
|
+
const [metricsRefreshNonce, setMetricsRefreshNonce] = useState(0);
|
|
34
|
+
const lastMetricAdjustRef = useRef(0);
|
|
27
35
|
// Get terminal dimensions for fixed-height rendering
|
|
28
36
|
// Subtract 1 to ensure content doesn't push header off-screen
|
|
29
37
|
const terminalHeight = (stdout?.rows || 24) - 1;
|
|
38
|
+
const enqueueToast = useCallback((next) => {
|
|
39
|
+
setToastQueue((prev) => [...prev, next]);
|
|
40
|
+
}, []);
|
|
30
41
|
useEffect(() => {
|
|
31
42
|
const initialize = async () => {
|
|
32
43
|
try {
|
|
@@ -60,7 +71,7 @@ export function App() {
|
|
|
60
71
|
setJiraBaseUrl(config.jira.baseUrl);
|
|
61
72
|
setConfluenceClient(confluence);
|
|
62
73
|
setConnectionStatus('connected');
|
|
63
|
-
|
|
74
|
+
enqueueToast({
|
|
64
75
|
type: 'success',
|
|
65
76
|
message: 'Successful setup: Jira and Confluence credentials verified.',
|
|
66
77
|
});
|
|
@@ -71,7 +82,136 @@ export function App() {
|
|
|
71
82
|
}
|
|
72
83
|
};
|
|
73
84
|
initialize();
|
|
85
|
+
}, [enqueueToast]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
const timer = setInterval(() => setNow(new Date()), 30000);
|
|
88
|
+
return () => clearInterval(timer);
|
|
74
89
|
}, []);
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
const unsubscribe = subscribeAutoUpdateEvents((event) => {
|
|
92
|
+
if (event.type === 'disabled')
|
|
93
|
+
return;
|
|
94
|
+
if (event.type === 'check-started') {
|
|
95
|
+
enqueueToast({
|
|
96
|
+
type: 'info',
|
|
97
|
+
message: `Auto-update: checking npm for newer versions (current v${event.currentVersion})...`,
|
|
98
|
+
duration: 3000,
|
|
99
|
+
});
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (event.type === 'up-to-date') {
|
|
103
|
+
enqueueToast({
|
|
104
|
+
type: 'success',
|
|
105
|
+
message: `Auto-update: you're on the latest version (v${event.currentVersion}).`,
|
|
106
|
+
duration: 3000,
|
|
107
|
+
});
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (event.type === 'update-available') {
|
|
111
|
+
enqueueToast({
|
|
112
|
+
type: 'warning',
|
|
113
|
+
message: `Update available: v${event.latestVersion} (current v${event.currentVersion}). Downloading now...`,
|
|
114
|
+
duration: 5000,
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (event.type === 'update-install-started') {
|
|
119
|
+
enqueueToast({
|
|
120
|
+
type: 'info',
|
|
121
|
+
message: `Auto-update: installing v${event.latestVersion} in background.`,
|
|
122
|
+
duration: 4000,
|
|
123
|
+
});
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (event.type === 'update-install-failed') {
|
|
127
|
+
enqueueToast({
|
|
128
|
+
type: 'error',
|
|
129
|
+
message: `Auto-update failed for v${event.latestVersion}: ${event.error || 'install error'}`,
|
|
130
|
+
duration: 6000,
|
|
131
|
+
});
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (event.type === 'check-failed') {
|
|
135
|
+
enqueueToast({
|
|
136
|
+
type: 'warning',
|
|
137
|
+
message: `Auto-update check failed: ${event.error || 'could not reach npm registry'}`,
|
|
138
|
+
duration: 5000,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
return () => unsubscribe();
|
|
143
|
+
}, [enqueueToast]);
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
if (toast || toastQueue.length === 0)
|
|
146
|
+
return;
|
|
147
|
+
const [next, ...rest] = toastQueue;
|
|
148
|
+
setToast(next);
|
|
149
|
+
setToastQueue(rest);
|
|
150
|
+
}, [toast, toastQueue]);
|
|
151
|
+
useEffect(() => {
|
|
152
|
+
if (!jiraClient || !confluenceClient || connectionStatus !== 'connected')
|
|
153
|
+
return;
|
|
154
|
+
let cancelled = false;
|
|
155
|
+
const fetchJiraMetric = async () => {
|
|
156
|
+
try {
|
|
157
|
+
const [openCount, totalCount] = await Promise.all([
|
|
158
|
+
jiraClient.getIssueCount('assignee = currentUser() AND statusCategory = Done'),
|
|
159
|
+
jiraClient.getIssueCount('assignee = currentUser()'),
|
|
160
|
+
]);
|
|
161
|
+
if (cancelled)
|
|
162
|
+
return;
|
|
163
|
+
// Don't overwrite locally-adjusted counts until the Jira search index catches up
|
|
164
|
+
if (Date.now() - lastMetricAdjustRef.current < 8000)
|
|
165
|
+
return;
|
|
166
|
+
setJiraOpenCount(openCount);
|
|
167
|
+
setJiraTotalCount(totalCount);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Keep last known values on error (don't null out)
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const fetchConfluenceMetric = async () => {
|
|
174
|
+
try {
|
|
175
|
+
const cql = 'type=page AND creator=currentUser() ORDER BY created DESC';
|
|
176
|
+
const firstPage = await confluenceClient.searchPages(cql, 100, 0);
|
|
177
|
+
const firstAny = firstPage;
|
|
178
|
+
if (typeof firstAny.totalSize === 'number') {
|
|
179
|
+
if (!cancelled)
|
|
180
|
+
setMyConfluenceDocs(firstAny.totalSize);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
let total = Array.isArray(firstPage.results) ? firstPage.results.length : 0;
|
|
184
|
+
let start = 100;
|
|
185
|
+
let pageGuard = 0;
|
|
186
|
+
let hasNext = Boolean(firstPage._links?.next) || total === 100;
|
|
187
|
+
while (hasNext && pageGuard < 20) {
|
|
188
|
+
const page = await confluenceClient.searchPages(cql, 100, start);
|
|
189
|
+
const count = Array.isArray(page.results) ? page.results.length : 0;
|
|
190
|
+
total += count;
|
|
191
|
+
if (count === 0)
|
|
192
|
+
break;
|
|
193
|
+
start += 100;
|
|
194
|
+
hasNext = Boolean(page._links?.next) || count === 100;
|
|
195
|
+
pageGuard += 1;
|
|
196
|
+
}
|
|
197
|
+
if (!cancelled)
|
|
198
|
+
setMyConfluenceDocs(total);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
if (!cancelled)
|
|
202
|
+
setMyConfluenceDocs(null);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const refreshMetrics = async () => {
|
|
206
|
+
await Promise.all([fetchJiraMetric(), fetchConfluenceMetric()]);
|
|
207
|
+
};
|
|
208
|
+
refreshMetrics();
|
|
209
|
+
const timer = setInterval(refreshMetrics, 30000);
|
|
210
|
+
return () => {
|
|
211
|
+
cancelled = true;
|
|
212
|
+
clearInterval(timer);
|
|
213
|
+
};
|
|
214
|
+
}, [jiraClient, confluenceClient, connectionStatus, metricsRefreshNonce]);
|
|
75
215
|
useInput((input, key) => {
|
|
76
216
|
if (key.ctrl && (input === 'q' || input === 'c')) {
|
|
77
217
|
exit();
|
|
@@ -88,6 +228,28 @@ export function App() {
|
|
|
88
228
|
});
|
|
89
229
|
// Memoized callback for Toast dismissal
|
|
90
230
|
const handleDismissToast = useCallback(() => setToast(null), []);
|
|
231
|
+
const scheduleMetricRecheck = useCallback(() => {
|
|
232
|
+
setTimeout(() => setMetricsRefreshNonce(prev => prev + 1), 2500);
|
|
233
|
+
setTimeout(() => setMetricsRefreshNonce(prev => prev + 1), 8000);
|
|
234
|
+
}, []);
|
|
235
|
+
const handleJiraDataChanged = useCallback((openDelta, totalDelta) => {
|
|
236
|
+
const od = openDelta ?? 0;
|
|
237
|
+
const td = totalDelta ?? 0;
|
|
238
|
+
if (od !== 0 || td !== 0) {
|
|
239
|
+
// Direct local adjustment — protected from API overwrites for 30s
|
|
240
|
+
// so the Jira search index has time to catch up
|
|
241
|
+
if (od !== 0)
|
|
242
|
+
setJiraOpenCount(prev => prev !== null ? Math.max(0, prev + od) : prev);
|
|
243
|
+
if (td !== 0)
|
|
244
|
+
setJiraTotalCount(prev => prev !== null ? Math.max(0, prev + td) : prev);
|
|
245
|
+
lastMetricAdjustRef.current = Date.now();
|
|
246
|
+
scheduleMetricRecheck();
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
// No local adjustment — trigger an immediate API refresh
|
|
250
|
+
setMetricsRefreshNonce(prev => prev + 1);
|
|
251
|
+
}
|
|
252
|
+
}, [scheduleMetricRecheck]);
|
|
91
253
|
const helpSections = [
|
|
92
254
|
{
|
|
93
255
|
title: 'Navigation',
|
|
@@ -101,8 +263,8 @@ export function App() {
|
|
|
101
263
|
{
|
|
102
264
|
title: 'Actions',
|
|
103
265
|
shortcuts: [
|
|
104
|
-
{ key: '/', description: 'Search' },
|
|
105
|
-
{ key: '
|
|
266
|
+
{ key: '/', description: 'Find/Search (where supported)' },
|
|
267
|
+
{ key: 'Ctrl+R', description: 'Refresh current item' },
|
|
106
268
|
{ key: 'Ctrl+Y', description: 'Copy link' },
|
|
107
269
|
{ key: 'Ctrl+O', description: 'Open in browser' },
|
|
108
270
|
{ key: 'Ctrl+B', description: 'Toggle bookmark' },
|
|
@@ -125,11 +287,21 @@ export function App() {
|
|
|
125
287
|
const tabs = ['Jira', 'Confluence'];
|
|
126
288
|
const shortcuts = [
|
|
127
289
|
{ key: 'Tab', description: 'Switch' },
|
|
128
|
-
{ key: '/', description: 'Search' },
|
|
129
290
|
{ key: '?', description: 'Help' },
|
|
130
291
|
{ key: 'Ctrl+Q', description: 'Quit' },
|
|
131
292
|
];
|
|
132
293
|
const currentMode = activeTab === 0 ? 'JIRA' : 'CONFLUENCE';
|
|
133
|
-
|
|
294
|
+
const dateTimeLabel = new Intl.DateTimeFormat('en-US', {
|
|
295
|
+
weekday: 'short',
|
|
296
|
+
month: 'short',
|
|
297
|
+
day: 'numeric',
|
|
298
|
+
year: 'numeric',
|
|
299
|
+
hour: 'numeric',
|
|
300
|
+
minute: '2-digit',
|
|
301
|
+
}).format(now);
|
|
302
|
+
const metricLabel = activeTab === 0
|
|
303
|
+
? `JIRA: YOUR TICKET STATUS ${jiraOpenCount ?? '--'}/${jiraTotalCount ?? '--'}`
|
|
304
|
+
: `MY DOCS ${myConfluenceDocs ?? '--'}`;
|
|
305
|
+
return (_jsxs(Box, { flexDirection: "column", width: "100%", height: terminalHeight, children: [_jsx(Header, { title: "Sutra", version: "1.0.0", connectionStatus: connectionStatus, metricLabel: metricLabel, dateTimeLabel: dateTimeLabel }), _jsx(TabBar, { tabs: tabs, activeTab: activeTab, icons: ['🎫', '📄'] }), toast && (_jsx(Toast, { message: toast.message, type: toast.type, duration: toast.duration ?? 3000, onDismiss: handleDismissToast })), showHelp ? (_jsx(HelpModal, { visible: showHelp, sections: helpSections, onClose: () => setShowHelp(false) })) : (_jsxs(Box, { flexDirection: "column", width: "100%", flexGrow: 1, children: [activeTab === 0 && (_jsx(JiraView, { client: jiraClient, baseUrl: jiraBaseUrl, onJiraDataChanged: handleJiraDataChanged })), activeTab === 1 && _jsx(ConfluenceView, { client: confluenceClient })] })), _jsx(Footer, { shortcuts: shortcuts, mode: currentMode })] }));
|
|
134
306
|
}
|
|
135
307
|
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAInC,MAAM,UAAU,GAAG;IACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;IACtE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACtD,IAAI,CACL,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAmB,SAAS,CAAC,CAAC;IACtF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAA6E,IAAI,CAAC,CAAC;IAErH,qDAAqD;IACrD,8DAA8D;IAC9D,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;gBAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;oBACvC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;oBAC7D,mBAAmB,CAAC,cAAc,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC3D,MAAM,gBAAgB,GAAa,EAAE,CAAC;gBAEtC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,gBAAgB,CAAC,IAAI,CACnB,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClF,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,gBAAgB,CAAC,IAAI,CACnB,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACxF,CAAC;gBACJ,CAAC;gBAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,QAAQ,CACN,qCAAqC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAC7F,CAAC;oBACF,mBAAmB,CAAC,cAAc,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAChC,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBACjC,QAAQ,CAAC;oBACP,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,6DAA6D;iBACvE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;gBAC9E,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,EAAE,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,EAAE,CAAC;QACT,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACzB,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAClC,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,MAAM,YAAY,GAAG;QACnB;YACE,KAAK,EAAE,YAAY;YACnB,SAAS,EAAE;gBACT,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,gCAAgC,EAAE;gBAC7D,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE;gBAC7C,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACjD,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE;aAC/C;SACF;QACD;YACE,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE;gBACT,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;gBACnC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE;gBACzC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;gBAC3C,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;gBACjD,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;aAClD;SACF;QACD;YACE,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE;gBACT,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE;gBACxC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;aACnD;SACF;KACF,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,YACpC,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,aACxE,MAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,oCACjB,GAAG,IACP,EACP,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,CAAC,EAAE,YAAG,KAAK,GAAQ,IAC9B,GACF,CACP,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACrC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,EAAC,QAAQ,YACzD,KAAC,OAAO,IAAC,IAAI,EAAC,SAAS,EAAC,KAAK,EAAC,yCAAyC,GAAG,GACtE,CACP,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG;QAChB,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;QACrC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE;QACnC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE;QACjC,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE;KACvC,CAAC;IAEF,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IAE5D,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,cAAc,aAC7D,KAAC,MAAM,IACL,KAAK,EAAC,OAAO,EACb,OAAO,EAAC,OAAO,EACf,gBAAgB,EAAE,gBAAgB,GAClC,EACF,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GACnB,EAED,KAAK,IAAI,CACR,KAAC,KAAK,IACJ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAE,kBAAkB,GAC7B,CACH,EAEA,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,SAAS,IACR,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GACjC,CACH,CAAC,CAAC,CAAC,CACF,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAE,CAAC,aACjD,SAAS,KAAK,CAAC,IAAI,KAAC,QAAQ,IAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAI,EACzE,SAAS,KAAK,CAAC,IAAI,KAAC,cAAc,IAAC,MAAM,EAAE,gBAAgB,GAAI,IAC5D,CACP,EAED,KAAC,MAAM,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,GAAI,IAC/C,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableTextBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/EditableTextBox.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditableTextBox.d.ts","sourceRoot":"","sources":["../../../src/components/common/EditableTextBox.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,oBAAoB;IACjC,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAsBD,wBAAgB,eAAe,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,MAAW,EACX,KAAc,EACd,WAAoB,EACpB,MAAM,EACN,QAAe,EACf,SAAa,EACb,UAAc,EACd,eAAuB,EACvB,QAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GACpB,EAAE,oBAAoB,2CA4nBtB"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { useState, useEffect, useCallback, useRef, useMemo } from 'react';
|
|
3
3
|
import { Box, Text, useInput, useStdout, useStdin } from 'ink';
|
|
4
4
|
import { highlightMarkdownLine, highlightCodeLine } from '../../utils/markdown-highlighter.js';
|
|
5
|
+
import { te } from '../../theme/te.js';
|
|
5
6
|
const SGR_MOUSE_REGEX = /\x1b\[<(\d+);(\d+);(\d+)([Mm])/g;
|
|
6
7
|
export function EditableTextBox({ content, onChange, height = 15, width = '100%', borderColor = 'cyan', onSave, isActive = true, screenTop = 0, screenLeft = 0, syntaxHighlight = false, readOnly = false, onOpenExternalEditor, onRequestWritable, }) {
|
|
7
8
|
const [cursor, setCursor] = useState({ row: 0, col: 0 });
|
|
@@ -507,6 +508,6 @@ export function EditableTextBox({ content, onChange, height = 15, width = '100%'
|
|
|
507
508
|
const actualRow = scrollTop + i;
|
|
508
509
|
const isCursorLine = actualRow === cursor.row;
|
|
509
510
|
return (_jsx(Box, { height: 1, children: renderLineWithHighlights(line, actualRow, isCursorLine) }, `line-${actualRow}`));
|
|
510
|
-
}), _jsx(Box, { marginTop: 0, children: searchMode ? (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "Find: " }), _jsx(Text, { children: searchQuery }), _jsx(Text, { backgroundColor: "yellow", color: "black", children: " " }), searchMatches.length > 0 && (_jsxs(Text, { dimColor: true, children: [" (", currentMatchIndex + 1, "/", searchMatches.length, ")"] })), searchQuery && searchMatches.length === 0 && (_jsx(Text, { color: "red", children: " No matches" })), _jsx(Text, { dimColor: true, children: " | Enter: Jump | \u2191
|
|
511
|
+
}), _jsx(Box, { marginTop: 0, children: searchMode ? (_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "Find: " }), _jsx(Text, { children: searchQuery }), _jsx(Text, { backgroundColor: "yellow", color: "black", children: " " }), searchMatches.length > 0 && (_jsxs(Text, { dimColor: true, children: [" (", currentMatchIndex + 1, "/", searchMatches.length, ")"] })), searchQuery && searchMatches.length === 0 && (_jsx(Text, { color: "red", children: " No matches" })), _jsx(Text, { dimColor: true, children: " | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Enter " }), _jsx(Text, { dimColor: true, children: " Jump | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " \u2191/\u2193 " }), _jsx(Text, { dimColor: true, children: " Navigate | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Esc " }), _jsx(Text, { dimColor: true, children: " Cancel" })] })) : (_jsxs(Text, { dimColor: true, wrap: "truncate", children: ["Ln ", cursor.row + 1, ", Col ", cursor.col + 1, " | ", totalLines, " lines | ", scrollPercent, "% | ", readOnly ? 'Read-only | ' : '', _jsx(Text, { backgroundColor: te.info, color: "black", children: " Ctrl+S " }), _jsx(Text, { dimColor: true, children: " Save | " }), _jsx(Text, { backgroundColor: te.info, color: "black", children: " Ctrl+F or / " }), _jsx(Text, { dimColor: true, children: " Find" })] })) })] }));
|
|
511
512
|
}
|
|
512
513
|
//# sourceMappingURL=EditableTextBox.js.map
|