cursor-history 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +225 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +126 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/list.d.ts +9 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +77 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/search.d.ts +9 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +47 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/show.d.ts +9 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +51 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/formatters/index.d.ts +6 -0
- package/dist/cli/formatters/index.d.ts.map +1 -0
- package/dist/cli/formatters/index.js +6 -0
- package/dist/cli/formatters/index.js.map +1 -0
- package/dist/cli/formatters/json.d.ts +28 -0
- package/dist/cli/formatters/json.d.ts.map +1 -0
- package/dist/cli/formatters/json.js +98 -0
- package/dist/cli/formatters/json.js.map +1 -0
- package/dist/cli/formatters/table.d.ts +45 -0
- package/dist/cli/formatters/table.d.ts.map +1 -0
- package/dist/cli/formatters/table.js +439 -0
- package/dist/cli/formatters/table.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +51 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/parser.d.ts +38 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +324 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/storage.d.ts +45 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/storage.js +869 -0
- package/dist/core/storage.js.map +1 -0
- package/dist/core/types.d.ts +113 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/lib/errors.d.ts +56 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +90 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/platform.d.ts +25 -0
- package/dist/lib/platform.d.ts.map +1 -0
- package/dist/lib/platform.js +66 -0
- package/dist/lib/platform.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output formatter for CLI
|
|
3
|
+
*/
|
|
4
|
+
import type { ChatSessionSummary, Workspace, ChatSession, SearchResult } from '../../core/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Format sessions list as JSON
|
|
7
|
+
*/
|
|
8
|
+
export declare function formatSessionsJson(sessions: ChatSessionSummary[]): string;
|
|
9
|
+
/**
|
|
10
|
+
* Format workspaces list as JSON
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatWorkspacesJson(workspaces: Workspace[]): string;
|
|
13
|
+
/**
|
|
14
|
+
* Format a single session as JSON
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatSessionJson(session: ChatSession, workspacePath?: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Format search results as JSON
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatSearchResultsJson(results: SearchResult[], query: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Format export result as JSON
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatExportResultJson(exported: {
|
|
25
|
+
index: number;
|
|
26
|
+
path: string;
|
|
27
|
+
}[]): string;
|
|
28
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpG;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAiBzE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAWpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBtF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAoBtF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAO1F"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON output formatter for CLI
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format sessions list as JSON
|
|
6
|
+
*/
|
|
7
|
+
export function formatSessionsJson(sessions) {
|
|
8
|
+
const output = {
|
|
9
|
+
count: sessions.length,
|
|
10
|
+
sessions: sessions.map((s) => ({
|
|
11
|
+
index: s.index,
|
|
12
|
+
id: s.id,
|
|
13
|
+
title: s.title,
|
|
14
|
+
createdAt: s.createdAt.toISOString(),
|
|
15
|
+
lastUpdatedAt: s.lastUpdatedAt.toISOString(),
|
|
16
|
+
messageCount: s.messageCount,
|
|
17
|
+
workspaceId: s.workspaceId,
|
|
18
|
+
workspacePath: s.workspacePath,
|
|
19
|
+
preview: s.preview,
|
|
20
|
+
})),
|
|
21
|
+
};
|
|
22
|
+
return JSON.stringify(output, null, 2);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Format workspaces list as JSON
|
|
26
|
+
*/
|
|
27
|
+
export function formatWorkspacesJson(workspaces) {
|
|
28
|
+
const output = {
|
|
29
|
+
count: workspaces.length,
|
|
30
|
+
workspaces: workspaces.map((w) => ({
|
|
31
|
+
id: w.id,
|
|
32
|
+
path: w.path,
|
|
33
|
+
sessionCount: w.sessionCount,
|
|
34
|
+
})),
|
|
35
|
+
};
|
|
36
|
+
return JSON.stringify(output, null, 2);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Format a single session as JSON
|
|
40
|
+
*/
|
|
41
|
+
export function formatSessionJson(session, workspacePath) {
|
|
42
|
+
const output = {
|
|
43
|
+
index: session.index,
|
|
44
|
+
id: session.id,
|
|
45
|
+
title: session.title,
|
|
46
|
+
createdAt: session.createdAt.toISOString(),
|
|
47
|
+
lastUpdatedAt: session.lastUpdatedAt.toISOString(),
|
|
48
|
+
messageCount: session.messageCount,
|
|
49
|
+
workspaceId: session.workspaceId,
|
|
50
|
+
workspacePath: workspacePath ?? null,
|
|
51
|
+
messages: session.messages.map((m) => ({
|
|
52
|
+
id: m.id,
|
|
53
|
+
role: m.role,
|
|
54
|
+
content: m.content,
|
|
55
|
+
timestamp: m.timestamp.toISOString(),
|
|
56
|
+
codeBlocks: m.codeBlocks.map((cb) => ({
|
|
57
|
+
language: cb.language,
|
|
58
|
+
content: cb.content,
|
|
59
|
+
startLine: cb.startLine,
|
|
60
|
+
})),
|
|
61
|
+
})),
|
|
62
|
+
};
|
|
63
|
+
return JSON.stringify(output, null, 2);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Format search results as JSON
|
|
67
|
+
*/
|
|
68
|
+
export function formatSearchResultsJson(results, query) {
|
|
69
|
+
const output = {
|
|
70
|
+
query,
|
|
71
|
+
count: results.length,
|
|
72
|
+
totalMatches: results.reduce((sum, r) => sum + r.matchCount, 0),
|
|
73
|
+
results: results.map((r) => ({
|
|
74
|
+
index: r.index,
|
|
75
|
+
sessionId: r.sessionId,
|
|
76
|
+
workspacePath: r.workspacePath,
|
|
77
|
+
createdAt: r.createdAt.toISOString(),
|
|
78
|
+
matchCount: r.matchCount,
|
|
79
|
+
snippets: r.snippets.map((s) => ({
|
|
80
|
+
role: s.messageRole,
|
|
81
|
+
text: s.text,
|
|
82
|
+
matchPositions: s.matchPositions,
|
|
83
|
+
})),
|
|
84
|
+
})),
|
|
85
|
+
};
|
|
86
|
+
return JSON.stringify(output, null, 2);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Format export result as JSON
|
|
90
|
+
*/
|
|
91
|
+
export function formatExportResultJson(exported) {
|
|
92
|
+
const output = {
|
|
93
|
+
count: exported.length,
|
|
94
|
+
files: exported,
|
|
95
|
+
};
|
|
96
|
+
return JSON.stringify(output, null, 2);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/cli/formatters/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA8B;IAC/D,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE;YAC5C,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAuB;IAC1D,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,UAAU,CAAC,MAAM;QACxB,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,CAAC,CAAC,YAAY;SAC7B,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,aAAsB;IAC5E,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;QAC1C,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE;QAClD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,aAAa,IAAI,IAAI;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;aACxB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAuB,EAAE,KAAa;IAC5E,MAAM,MAAM,GAAG;QACb,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,WAAW;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,cAAc,EAAE,CAAC,CAAC,cAAc;aACjC,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAA2C;IAChF,MAAM,MAAM,GAAG;QACb,KAAK,EAAE,QAAQ,CAAC,MAAM;QACtB,KAAK,EAAE,QAAQ;KAChB,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table/text output formatter for CLI with color support
|
|
3
|
+
*/
|
|
4
|
+
import type { ChatSessionSummary, Workspace, ChatSession, SearchResult } from '../../core/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Check if output supports colors
|
|
7
|
+
*/
|
|
8
|
+
export declare function supportsColor(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Format sessions list as table
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatSessionsTable(sessions: ChatSessionSummary[], showIds?: boolean): string;
|
|
13
|
+
/**
|
|
14
|
+
* Format workspaces list as table
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatWorkspacesTable(workspaces: Workspace[]): string;
|
|
17
|
+
/**
|
|
18
|
+
* Format a single session with full messages
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatSessionDetail(session: ChatSession, workspacePath?: string, options?: {
|
|
21
|
+
short?: boolean;
|
|
22
|
+
fullThinking?: boolean;
|
|
23
|
+
fullTool?: boolean;
|
|
24
|
+
fullError?: boolean;
|
|
25
|
+
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* Format search results
|
|
28
|
+
*/
|
|
29
|
+
export declare function formatSearchResultsTable(results: SearchResult[], query: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* Format export success message
|
|
32
|
+
*/
|
|
33
|
+
export declare function formatExportSuccess(exported: {
|
|
34
|
+
index: number;
|
|
35
|
+
path: string;
|
|
36
|
+
}[]): string;
|
|
37
|
+
/**
|
|
38
|
+
* Format empty state message for no history
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatNoHistory(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Format error message for Cursor not installed
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatCursorNotFound(searchPath: string): string;
|
|
45
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/cli/formatters/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpG;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAQvC;AAmDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,OAAO,UAAQ,GAAG,MAAM,CAkD3F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAsBrE;AAiJD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7F,MAAM,CAsGR;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA6CvF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CASvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAWxC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAc/D"}
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Table/text output formatter for CLI with color support
|
|
3
|
+
*/
|
|
4
|
+
import pc from 'picocolors';
|
|
5
|
+
/**
|
|
6
|
+
* Check if output supports colors
|
|
7
|
+
*/
|
|
8
|
+
export function supportsColor() {
|
|
9
|
+
// Respect NO_COLOR environment variable
|
|
10
|
+
if (process.env['NO_COLOR'] !== undefined) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
// Check if stdout is a TTY
|
|
14
|
+
return process.stdout.isTTY === true;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Format a date for display
|
|
18
|
+
*/
|
|
19
|
+
function formatDate(date) {
|
|
20
|
+
return date.toLocaleDateString('en-US', {
|
|
21
|
+
year: 'numeric',
|
|
22
|
+
month: 'short',
|
|
23
|
+
day: 'numeric',
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Format a timestamp for display (time only)
|
|
28
|
+
*/
|
|
29
|
+
function formatTime(date) {
|
|
30
|
+
return date.toLocaleTimeString('en-US', {
|
|
31
|
+
hour: '2-digit',
|
|
32
|
+
minute: '2-digit',
|
|
33
|
+
second: '2-digit',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Truncate string with ellipsis
|
|
38
|
+
*/
|
|
39
|
+
function truncate(str, maxLength) {
|
|
40
|
+
if (str.length <= maxLength) {
|
|
41
|
+
return str;
|
|
42
|
+
}
|
|
43
|
+
return str.slice(0, maxLength - 3) + '...';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Truncate path from the beginning (keep the end which is more specific)
|
|
47
|
+
*/
|
|
48
|
+
function truncatePath(path, maxLength) {
|
|
49
|
+
if (path.length <= maxLength) {
|
|
50
|
+
return path;
|
|
51
|
+
}
|
|
52
|
+
return '...' + path.slice(-(maxLength - 3));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Pad string to fixed width
|
|
56
|
+
*/
|
|
57
|
+
function padRight(str, width) {
|
|
58
|
+
return str.padEnd(width);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Format sessions list as table
|
|
62
|
+
*/
|
|
63
|
+
export function formatSessionsTable(sessions, showIds = false) {
|
|
64
|
+
if (sessions.length === 0) {
|
|
65
|
+
return pc.yellow('No chat sessions found.');
|
|
66
|
+
}
|
|
67
|
+
const lines = [];
|
|
68
|
+
// Header
|
|
69
|
+
if (showIds) {
|
|
70
|
+
lines.push(pc.bold(`${padRight('#', 4)} ${padRight('Date', 12)} ${padRight('Msgs', 5)} ${padRight('Workspace', 25)} ${padRight('Composer ID', 38)} Preview`));
|
|
71
|
+
lines.push(pc.dim('─'.repeat(130)));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
lines.push(pc.bold(`${padRight('#', 4)} ${padRight('Date', 12)} ${padRight('Messages', 8)} ${padRight('Workspace', 30)} Preview`));
|
|
75
|
+
lines.push(pc.dim('─'.repeat(100)));
|
|
76
|
+
}
|
|
77
|
+
// Rows
|
|
78
|
+
for (const session of sessions) {
|
|
79
|
+
const idx = pc.cyan(padRight(String(session.index), 4));
|
|
80
|
+
const date = padRight(formatDate(session.createdAt), 12);
|
|
81
|
+
if (showIds) {
|
|
82
|
+
const msgs = padRight(String(session.messageCount), 5);
|
|
83
|
+
const workspace = pc.dim(padRight(truncatePath(session.workspacePath, 25), 25));
|
|
84
|
+
const composerId = pc.gray(padRight(session.id, 38));
|
|
85
|
+
const preview = truncate(session.preview, 30);
|
|
86
|
+
lines.push(`${idx} ${date} ${msgs} ${workspace} ${composerId} ${preview}`);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const msgs = padRight(String(session.messageCount), 8);
|
|
90
|
+
const workspace = pc.dim(padRight(truncatePath(session.workspacePath, 30), 30));
|
|
91
|
+
const preview = truncate(session.preview, 40);
|
|
92
|
+
lines.push(`${idx} ${date} ${msgs} ${workspace} ${preview}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
lines.push('');
|
|
96
|
+
lines.push(pc.dim(`Showing ${sessions.length} session(s). Use "show <#>" to view details.`));
|
|
97
|
+
if (showIds) {
|
|
98
|
+
lines.push(pc.dim(`Composer IDs can be used with external tools for export.`));
|
|
99
|
+
}
|
|
100
|
+
return lines.join('\n');
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Format workspaces list as table
|
|
104
|
+
*/
|
|
105
|
+
export function formatWorkspacesTable(workspaces) {
|
|
106
|
+
if (workspaces.length === 0) {
|
|
107
|
+
return pc.yellow('No workspaces with chat history found.');
|
|
108
|
+
}
|
|
109
|
+
const lines = [];
|
|
110
|
+
// Header
|
|
111
|
+
lines.push(pc.bold(`${padRight('Sessions', 10)} Path`));
|
|
112
|
+
lines.push(pc.dim('─'.repeat(80)));
|
|
113
|
+
// Rows
|
|
114
|
+
for (const workspace of workspaces) {
|
|
115
|
+
const count = pc.cyan(padRight(String(workspace.sessionCount), 10));
|
|
116
|
+
const path = workspace.path;
|
|
117
|
+
lines.push(`${count} ${path}`);
|
|
118
|
+
}
|
|
119
|
+
lines.push('');
|
|
120
|
+
lines.push(pc.dim(`Found ${workspaces.length} workspace(s) with chat history.`));
|
|
121
|
+
return lines.join('\n');
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check if content is a tool call (formatted by storage layer)
|
|
125
|
+
*/
|
|
126
|
+
function isToolCall(content) {
|
|
127
|
+
return content.startsWith('[Tool:');
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Check if content is thinking/reasoning text
|
|
131
|
+
*/
|
|
132
|
+
function isThinking(content) {
|
|
133
|
+
return content.startsWith('[Thinking]');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check if content is an error message
|
|
137
|
+
*/
|
|
138
|
+
function isError(content) {
|
|
139
|
+
return content.startsWith('[Error]');
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Format error message with nice styling
|
|
143
|
+
*/
|
|
144
|
+
function formatErrorDisplay(content, fullError) {
|
|
145
|
+
const text = content.replace('[Error]\n', '').trim();
|
|
146
|
+
const lines = [];
|
|
147
|
+
lines.push(pc.red(pc.bold('❌ Error')));
|
|
148
|
+
if (fullError) {
|
|
149
|
+
// Show full error
|
|
150
|
+
lines.push(pc.red(' ' + text));
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// Show truncated error (first 300 chars)
|
|
154
|
+
const truncated = text.slice(0, 300) + (text.length > 300 ? '...' : '');
|
|
155
|
+
lines.push(pc.red(' ' + truncated));
|
|
156
|
+
}
|
|
157
|
+
return lines.join('\n');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Format thinking text with nice styling
|
|
161
|
+
*/
|
|
162
|
+
function formatThinkingDisplay(content, fullThinking) {
|
|
163
|
+
const text = content.replace('[Thinking]\n', '').trim();
|
|
164
|
+
const lines = [];
|
|
165
|
+
lines.push(pc.yellow(pc.bold('💭 Thinking')));
|
|
166
|
+
if (fullThinking) {
|
|
167
|
+
// Show full thinking text
|
|
168
|
+
lines.push(pc.dim(' ' + text));
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
// Show truncated thinking text (default)
|
|
172
|
+
lines.push(pc.dim(' ' + text.slice(0, 200) + (text.length > 200 ? '...' : '')));
|
|
173
|
+
}
|
|
174
|
+
return lines.join('\n');
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Format tool call content with nice styling
|
|
178
|
+
*/
|
|
179
|
+
function formatToolCallDisplay(content, fullTool) {
|
|
180
|
+
const lines = content.split('\n');
|
|
181
|
+
const result = [];
|
|
182
|
+
let inDiffBlock = false;
|
|
183
|
+
let diffLineCount = 0;
|
|
184
|
+
const MAX_DIFF_LINES = 20; // Show first 20 lines of diff by default
|
|
185
|
+
for (const line of lines) {
|
|
186
|
+
if (line.startsWith('[Tool:')) {
|
|
187
|
+
// Tool header
|
|
188
|
+
const toolName = line.replace('[Tool:', '').replace(']', '').trim();
|
|
189
|
+
result.push(pc.magenta(pc.bold(`🔧 ${toolName}`)));
|
|
190
|
+
}
|
|
191
|
+
else if (line.startsWith('File:') || line.startsWith('Directory:') || line.startsWith('Command:') || line.startsWith('Target:')) {
|
|
192
|
+
// Target line - truncate command if not fullTool
|
|
193
|
+
if (line.startsWith('Command:') && !fullTool) {
|
|
194
|
+
const cmd = line.replace('Command:', '').trim();
|
|
195
|
+
const truncated = cmd.slice(0, 100) + (cmd.length > 100 ? '...' : '');
|
|
196
|
+
result.push(pc.cyan(' Command: ' + truncated));
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
result.push(pc.cyan(' ' + line));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else if (line === '```diff') {
|
|
203
|
+
// Start of diff block
|
|
204
|
+
inDiffBlock = true;
|
|
205
|
+
diffLineCount = 0;
|
|
206
|
+
result.push(' ' + line);
|
|
207
|
+
}
|
|
208
|
+
else if (line === '```' && inDiffBlock) {
|
|
209
|
+
// End of diff block
|
|
210
|
+
inDiffBlock = false;
|
|
211
|
+
result.push(' ' + line);
|
|
212
|
+
}
|
|
213
|
+
else if (inDiffBlock) {
|
|
214
|
+
// Inside diff block
|
|
215
|
+
if (!fullTool && diffLineCount >= MAX_DIFF_LINES) {
|
|
216
|
+
// Skip additional lines and add truncation marker once
|
|
217
|
+
if (diffLineCount === MAX_DIFF_LINES) {
|
|
218
|
+
result.push(pc.dim(' ... (use --tool to see full diff)'));
|
|
219
|
+
diffLineCount++;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
// Color diff lines: red for removals, green for additions
|
|
224
|
+
if (line.startsWith('-')) {
|
|
225
|
+
result.push(' ' + pc.red(line));
|
|
226
|
+
}
|
|
227
|
+
else if (line.startsWith('+')) {
|
|
228
|
+
result.push(' ' + pc.green(line));
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
result.push(' ' + pc.dim(line));
|
|
232
|
+
}
|
|
233
|
+
diffLineCount++;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else if (line.startsWith('Content:')) {
|
|
237
|
+
// Content preview
|
|
238
|
+
const preview = line.replace('Content:', '').trim();
|
|
239
|
+
if (fullTool) {
|
|
240
|
+
// Show full content
|
|
241
|
+
result.push(pc.dim(' Content: ') + pc.gray(preview));
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
// Show truncated content (default: 100 chars)
|
|
245
|
+
result.push(pc.dim(' Content: ') + pc.gray(preview.slice(0, 100) + (preview.length > 100 ? '...' : '')));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
else if (line.startsWith('Result:') || line.startsWith('Output:')) {
|
|
249
|
+
// Tool result/output preview
|
|
250
|
+
const prefix = line.startsWith('Result:') ? 'Result:' : 'Output:';
|
|
251
|
+
const preview = line.replace(prefix, '').trim();
|
|
252
|
+
if (fullTool) {
|
|
253
|
+
// Show full result
|
|
254
|
+
result.push(pc.dim(' ' + prefix + ' ') + pc.gray(preview));
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
// Show truncated result (default: 300 chars)
|
|
258
|
+
result.push(pc.dim(' ' + prefix + ' ') + pc.gray(preview.slice(0, 300) + (preview.length > 300 ? '...' : '')));
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
result.push(' ' + line);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return result.join('\n');
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Format a single session with full messages
|
|
269
|
+
*/
|
|
270
|
+
export function formatSessionDetail(session, workspacePath, options) {
|
|
271
|
+
const lines = [];
|
|
272
|
+
const { short = false, fullThinking = false, fullTool = false, fullError = false } = options ?? {};
|
|
273
|
+
// Header
|
|
274
|
+
lines.push(pc.bold(`Chat Session #${session.index}`));
|
|
275
|
+
lines.push(pc.dim('═'.repeat(60)));
|
|
276
|
+
lines.push('');
|
|
277
|
+
if (session.title) {
|
|
278
|
+
lines.push(`${pc.bold('Title:')} ${session.title}`);
|
|
279
|
+
}
|
|
280
|
+
lines.push(`${pc.bold('Date:')} ${formatDate(session.createdAt)}`);
|
|
281
|
+
if (workspacePath) {
|
|
282
|
+
lines.push(`${pc.bold('Workspace:')} ${workspacePath}`);
|
|
283
|
+
}
|
|
284
|
+
lines.push(`${pc.bold('Messages:')} ${session.messageCount}`);
|
|
285
|
+
lines.push('');
|
|
286
|
+
lines.push(pc.dim('─'.repeat(60)));
|
|
287
|
+
lines.push('');
|
|
288
|
+
// Messages - with consecutive duplicate folding
|
|
289
|
+
let i = 0;
|
|
290
|
+
while (i < session.messages.length) {
|
|
291
|
+
const message = session.messages[i];
|
|
292
|
+
const timestamps = [message.timestamp];
|
|
293
|
+
// Check for consecutive duplicates (same role and content)
|
|
294
|
+
let j = i + 1;
|
|
295
|
+
while (j < session.messages.length) {
|
|
296
|
+
const nextMsg = session.messages[j];
|
|
297
|
+
if (nextMsg.role === message.role && nextMsg.content === message.content) {
|
|
298
|
+
timestamps.push(nextMsg.timestamp);
|
|
299
|
+
j++;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
// Format timestamps
|
|
306
|
+
const timestampDisplay = timestamps.length > 1
|
|
307
|
+
? pc.dim(`${timestamps.map((t) => formatTime(t)).join(', ')} `) + pc.yellow(`(×${timestamps.length})`)
|
|
308
|
+
: pc.dim(formatTime(message.timestamp));
|
|
309
|
+
// Check if this is a tool call
|
|
310
|
+
if (isToolCall(message.content)) {
|
|
311
|
+
lines.push(`${pc.cyan(pc.bold('Tool:'))} ${timestampDisplay}`);
|
|
312
|
+
lines.push(formatToolCallDisplay(message.content, fullTool));
|
|
313
|
+
lines.push('');
|
|
314
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
315
|
+
lines.push('');
|
|
316
|
+
i = j;
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
// Check if this is an error message
|
|
320
|
+
if (isError(message.content)) {
|
|
321
|
+
lines.push(`${pc.red(pc.bold('Error:'))} ${timestampDisplay}`);
|
|
322
|
+
lines.push(formatErrorDisplay(message.content, fullError));
|
|
323
|
+
lines.push('');
|
|
324
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
325
|
+
lines.push('');
|
|
326
|
+
i = j;
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
// Check if this is thinking/reasoning
|
|
330
|
+
if (isThinking(message.content)) {
|
|
331
|
+
lines.push(`${pc.magenta(pc.bold('Thinking:'))} ${timestampDisplay}`);
|
|
332
|
+
lines.push(formatThinkingDisplay(message.content, fullThinking));
|
|
333
|
+
lines.push('');
|
|
334
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
335
|
+
lines.push('');
|
|
336
|
+
i = j;
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
const roleLabel = message.role === 'user'
|
|
340
|
+
? `${pc.blue(pc.bold('You:'))} ${timestampDisplay}`
|
|
341
|
+
: `${pc.green(pc.bold('Assistant:'))} ${timestampDisplay}`;
|
|
342
|
+
lines.push(roleLabel);
|
|
343
|
+
lines.push('');
|
|
344
|
+
// Apply short mode truncation for user and assistant messages
|
|
345
|
+
if (short) {
|
|
346
|
+
const truncatedContent = truncate(message.content, 300);
|
|
347
|
+
lines.push(truncatedContent);
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
lines.push(message.content);
|
|
351
|
+
}
|
|
352
|
+
lines.push('');
|
|
353
|
+
lines.push(pc.dim('─'.repeat(40)));
|
|
354
|
+
lines.push('');
|
|
355
|
+
i = j;
|
|
356
|
+
}
|
|
357
|
+
return lines.join('\n');
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Format search results
|
|
361
|
+
*/
|
|
362
|
+
export function formatSearchResultsTable(results, query) {
|
|
363
|
+
if (results.length === 0) {
|
|
364
|
+
return pc.yellow(`No results found for: "${query}"`);
|
|
365
|
+
}
|
|
366
|
+
const lines = [];
|
|
367
|
+
const totalMatches = results.reduce((sum, r) => sum + r.matchCount, 0);
|
|
368
|
+
lines.push(pc.bold(`Search results for "${query}"`));
|
|
369
|
+
lines.push(pc.dim(`Found ${totalMatches} match(es) in ${results.length} session(s)`));
|
|
370
|
+
lines.push('');
|
|
371
|
+
lines.push(pc.dim('─'.repeat(80)));
|
|
372
|
+
lines.push('');
|
|
373
|
+
for (const result of results) {
|
|
374
|
+
lines.push(`${pc.cyan(`#${result.index}`)} ${pc.dim(formatDate(result.createdAt))} ${pc.dim(result.workspacePath)}`);
|
|
375
|
+
lines.push(` ${pc.dim(`${result.matchCount} match(es)`)}`);
|
|
376
|
+
// Show first snippet with highlighting
|
|
377
|
+
if (result.snippets.length > 0) {
|
|
378
|
+
const snippet = result.snippets[0];
|
|
379
|
+
const roleLabel = snippet.messageRole === 'user' ? pc.blue('[You]') : pc.green('[AI]');
|
|
380
|
+
// Highlight matches in snippet
|
|
381
|
+
let highlighted = snippet.text;
|
|
382
|
+
// Apply highlights in reverse order to preserve positions
|
|
383
|
+
const sortedPositions = [...snippet.matchPositions].sort((a, b) => b[0] - a[0]);
|
|
384
|
+
for (const [start, end] of sortedPositions) {
|
|
385
|
+
const before = highlighted.slice(0, start);
|
|
386
|
+
const match = highlighted.slice(start, end);
|
|
387
|
+
const after = highlighted.slice(end);
|
|
388
|
+
highlighted = before + pc.bgYellow(pc.black(match)) + after;
|
|
389
|
+
}
|
|
390
|
+
lines.push(` ${roleLabel} ${highlighted}`);
|
|
391
|
+
}
|
|
392
|
+
lines.push('');
|
|
393
|
+
}
|
|
394
|
+
lines.push(pc.dim('Use --show <#> to view full session.'));
|
|
395
|
+
return lines.join('\n');
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Format export success message
|
|
399
|
+
*/
|
|
400
|
+
export function formatExportSuccess(exported) {
|
|
401
|
+
const lines = [];
|
|
402
|
+
lines.push(pc.green(`✓ Exported ${exported.length} session(s):`));
|
|
403
|
+
for (const { index, path } of exported) {
|
|
404
|
+
lines.push(` ${pc.cyan(`#${index}`)} → ${path}`);
|
|
405
|
+
}
|
|
406
|
+
return lines.join('\n');
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Format empty state message for no history
|
|
410
|
+
*/
|
|
411
|
+
export function formatNoHistory() {
|
|
412
|
+
const lines = [
|
|
413
|
+
pc.yellow('No chat history found.'),
|
|
414
|
+
'',
|
|
415
|
+
'To start recording chat history:',
|
|
416
|
+
' 1. Open a project in Cursor',
|
|
417
|
+
' 2. Start a conversation with the AI assistant',
|
|
418
|
+
' 3. Run this command again',
|
|
419
|
+
];
|
|
420
|
+
return lines.join('\n');
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Format error message for Cursor not installed
|
|
424
|
+
*/
|
|
425
|
+
export function formatCursorNotFound(searchPath) {
|
|
426
|
+
const lines = [
|
|
427
|
+
pc.red('Cursor data not found.'),
|
|
428
|
+
'',
|
|
429
|
+
`Searched in: ${searchPath}`,
|
|
430
|
+
'',
|
|
431
|
+
'Make sure Cursor is installed and has been used at least once.',
|
|
432
|
+
'',
|
|
433
|
+
'You can specify a custom path with:',
|
|
434
|
+
` ${pc.cyan('--data-path <path>')}`,
|
|
435
|
+
` ${pc.cyan('CURSOR_DATA_PATH')} environment variable`,
|
|
436
|
+
];
|
|
437
|
+
return lines.join('\n');
|
|
438
|
+
}
|
|
439
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/cli/formatters/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,wCAAwC;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,SAAiB;IAC9C,IAAI,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,SAAiB;IACnD,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,KAAa;IAC1C,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA8B,EAAE,OAAO,GAAG,KAAK;IACjF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CACR,EAAE,CAAC,IAAI,CACL,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,UAAU,CACzI,CACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,EAAE,CAAC,IAAI,CACL,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,UAAU,CAC9G,CACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;IACP,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,QAAQ,CAAC,MAAM,8CAA8C,CAAC,CAAC,CAAC;IAC7F,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAuB;IAC3D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnC,OAAO;IACP,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,kCAAkC,CAAC,CAAC,CAAC;IAEjF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,OAAe,EAAE,SAAkB;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,SAAS,EAAE,CAAC;QACd,kBAAkB;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAe,EAAE,YAAqB;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE9C,IAAI,YAAY,EAAE,CAAC;QACjB,0BAA0B;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,OAAe,EAAE,QAAiB;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,yCAAyC;IAEpE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,cAAc;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAClI,iDAAiD;YACjD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,sBAAsB;YACtB,WAAW,GAAG,IAAI,CAAC;YACnB,aAAa,GAAG,CAAC,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,IAAI,WAAW,EAAE,CAAC;YACzC,oBAAoB;YACpB,WAAW,GAAG,KAAK,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,oBAAoB;YACpB,IAAI,CAAC,QAAQ,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACjD,uDAAuD;gBACvD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;oBAC5D,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpC,CAAC;gBACD,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEpD,IAAI,QAAQ,EAAE,CAAC;gBACb,oBAAoB;gBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,6BAA6B;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAEhD,IAAI,QAAQ,EAAE,CAAC;gBACb,mBAAmB;gBACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAoB,EACpB,aAAsB,EACtB,OAA8F;IAE9F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEnG,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnE,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,gDAAgD;IAChD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;QACrC,MAAM,UAAU,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/C,2DAA2D;QAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YACrC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBACzE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC,EAAE,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,gBAAgB,GACpB,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;YACtG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5C,+BAA+B;QAC/B,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;YACtE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,CAAC,GAAG,CAAC,CAAC;YACN,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GACb,OAAO,CAAC,IAAI,KAAK,MAAM;YACrB,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,gBAAgB,EAAE;YACnD,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC;QAE/D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,8DAA8D;QAC9D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAuB,EAAE,KAAa;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC,MAAM,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAEvE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,YAAY,iBAAiB,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;IACtF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CACzG,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,YAAY,CAAC,EAAE,CAAC,CAAC;QAE5D,uCAAuC;QACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC;YACpC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEvF,+BAA+B;YAC/B,IAAI,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/B,0DAA0D;YAC1D,MAAM,eAAe,GAAG,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrC,WAAW,GAAG,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;YAC9D,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;IAE3D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA2C;IAC7E,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC;IAClE,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG;QACZ,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;QACnC,EAAE;QACF,kCAAkC;QAClC,+BAA+B;QAC/B,iDAAiD;QACjD,6BAA6B;KAC9B,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,KAAK,GAAG;QACZ,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC;QAChC,EAAE;QACF,gBAAgB,UAAU,EAAE;QAC5B,EAAE;QACF,gEAAgE;QAChE,EAAE;QACF,qCAAqC;QACrC,KAAK,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;QACpC,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,uBAAuB;KACxD,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;GAEG"}
|