superdb-mcp 0.51231.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/LICENSE +28 -0
- package/README.md +160 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +438 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/lsp-client.d.ts +86 -0
- package/dist/lib/lsp-client.d.ts.map +1 -0
- package/dist/lib/lsp-client.js +267 -0
- package/dist/lib/lsp-client.js.map +1 -0
- package/dist/lib/super.d.ts +26 -0
- package/dist/lib/super.d.ts.map +1 -0
- package/dist/lib/super.js +63 -0
- package/dist/lib/super.js.map +1 -0
- package/dist/lib/version.d.ts +57 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +200 -0
- package/dist/lib/version.js.map +1 -0
- package/dist/tools/db.d.ts +56 -0
- package/dist/tools/db.d.ts.map +1 -0
- package/dist/tools/db.js +159 -0
- package/dist/tools/db.js.map +1 -0
- package/dist/tools/info.d.ts +63 -0
- package/dist/tools/info.d.ts.map +1 -0
- package/dist/tools/info.js +220 -0
- package/dist/tools/info.js.map +1 -0
- package/dist/tools/lsp.d.ts +37 -0
- package/dist/tools/lsp.d.ts.map +1 -0
- package/dist/tools/lsp.js +131 -0
- package/dist/tools/lsp.js.map +1 -0
- package/dist/tools/query.d.ts +51 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +164 -0
- package/dist/tools/query.js.map +1 -0
- package/docs/superdb-expert.md +814 -0
- package/docs/zq-to-super-upgrades.md +408 -0
- package/package.json +43 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { spawnSync } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Get the path to the super binary
|
|
4
|
+
*/
|
|
5
|
+
export function getSuperPath() {
|
|
6
|
+
return process.env.SUPER_PATH || 'super';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Parse a Go pseudo-version string
|
|
10
|
+
* Format: v0.0.0-YYYYMMDDHHMMSS-SHA
|
|
11
|
+
* Example: v0.0.0-20250930170057-3b76fa645ee8
|
|
12
|
+
*/
|
|
13
|
+
function parseGoPseudoVersion(raw) {
|
|
14
|
+
// Match Go pseudo-version: v0.0.0-YYYYMMDDHHMMSS-SHA
|
|
15
|
+
const pseudoMatch = raw.match(/v0\.0\.0-(\d{14})-([a-f0-9]+)/);
|
|
16
|
+
if (pseudoMatch) {
|
|
17
|
+
const timestamp = pseudoMatch[1]; // "20250930170057"
|
|
18
|
+
const sha = pseudoMatch[2]; // "3b76fa645ee8"
|
|
19
|
+
// Parse timestamp: YYYYMMDDHHMMSS
|
|
20
|
+
const year = parseInt(timestamp.slice(0, 4));
|
|
21
|
+
const month = parseInt(timestamp.slice(4, 6)) - 1;
|
|
22
|
+
const day = parseInt(timestamp.slice(6, 8));
|
|
23
|
+
const hour = parseInt(timestamp.slice(8, 10));
|
|
24
|
+
const minute = parseInt(timestamp.slice(10, 12));
|
|
25
|
+
const second = parseInt(timestamp.slice(12, 14));
|
|
26
|
+
const date = new Date(Date.UTC(year, month, day, hour, minute, second));
|
|
27
|
+
// Convert to YMMDD format (0.50930 for 2025-09-30)
|
|
28
|
+
// Y = last digit of year (5 for 2025), MMDD = month and day
|
|
29
|
+
const ymmdd = `0.${timestamp.slice(3, 4)}${timestamp.slice(4, 8)}`;
|
|
30
|
+
return { version: ymmdd, date, sha, timestamp };
|
|
31
|
+
}
|
|
32
|
+
// Try to match homebrew SHA-only version
|
|
33
|
+
const shaMatch = raw.match(/Version:\s*([a-f0-9]{7,40})/i);
|
|
34
|
+
if (shaMatch) {
|
|
35
|
+
return { version: `sha:${shaMatch[1]}`, date: null, sha: shaMatch[1], timestamp: null };
|
|
36
|
+
}
|
|
37
|
+
// Try to match semantic version
|
|
38
|
+
const semverMatch = raw.match(/v?(\d+\.\d+\.\d+)/);
|
|
39
|
+
if (semverMatch) {
|
|
40
|
+
return { version: semverMatch[1], date: null, sha: null, timestamp: null };
|
|
41
|
+
}
|
|
42
|
+
return { version: 'unknown', date: null, sha: null, timestamp: null };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Detect the SuperDB version from the configured binary
|
|
46
|
+
*/
|
|
47
|
+
export function detectVersion(superPath) {
|
|
48
|
+
const path = superPath || getSuperPath();
|
|
49
|
+
const source = superPath
|
|
50
|
+
? 'override'
|
|
51
|
+
: (process.env.SUPER_PATH ? 'env' : 'path');
|
|
52
|
+
try {
|
|
53
|
+
// Use spawnSync with array args to avoid shell injection
|
|
54
|
+
const result = spawnSync(path, ['--version'], {
|
|
55
|
+
encoding: 'utf-8',
|
|
56
|
+
timeout: 5000,
|
|
57
|
+
stdio: ['pipe', 'pipe', 'pipe']
|
|
58
|
+
});
|
|
59
|
+
if (result.error || result.status !== 0) {
|
|
60
|
+
return {
|
|
61
|
+
version: 'unknown',
|
|
62
|
+
raw: result.stderr || '',
|
|
63
|
+
date: null,
|
|
64
|
+
sha: null,
|
|
65
|
+
timestamp: null,
|
|
66
|
+
path,
|
|
67
|
+
source,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const output = result.stdout.trim();
|
|
71
|
+
const parsed = parseGoPseudoVersion(output);
|
|
72
|
+
return {
|
|
73
|
+
...parsed,
|
|
74
|
+
raw: output,
|
|
75
|
+
path,
|
|
76
|
+
source,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return {
|
|
81
|
+
version: 'unknown',
|
|
82
|
+
raw: '',
|
|
83
|
+
date: null,
|
|
84
|
+
sha: null,
|
|
85
|
+
timestamp: null,
|
|
86
|
+
path,
|
|
87
|
+
source,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Parse a YMMDD version string to a Date
|
|
93
|
+
* Format: 0.YMMDD (e.g., 0.51231 = 2025-12-31)
|
|
94
|
+
*/
|
|
95
|
+
export function parseYMMDDVersion(version) {
|
|
96
|
+
const match = version.match(/^0\.(\d)(\d{2})(\d{2})$/);
|
|
97
|
+
if (!match)
|
|
98
|
+
return null;
|
|
99
|
+
const year = 2020 + parseInt(match[1]);
|
|
100
|
+
const month = parseInt(match[2]) - 1;
|
|
101
|
+
const day = parseInt(match[3]);
|
|
102
|
+
return new Date(Date.UTC(year, month, day));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Compare two version strings
|
|
106
|
+
* Returns: -1 if a < b, 0 if a == b, 1 if a > b
|
|
107
|
+
*/
|
|
108
|
+
export function compareVersions(a, b) {
|
|
109
|
+
// Handle SHA-only versions (can't compare)
|
|
110
|
+
if (a.startsWith('sha:') || b.startsWith('sha:')) {
|
|
111
|
+
return 0; // Can't compare SHAs meaningfully
|
|
112
|
+
}
|
|
113
|
+
// Try to parse as YMMDD
|
|
114
|
+
const dateA = parseYMMDDVersion(a);
|
|
115
|
+
const dateB = parseYMMDDVersion(b);
|
|
116
|
+
if (dateA && dateB) {
|
|
117
|
+
const diff = dateA.getTime() - dateB.getTime();
|
|
118
|
+
if (diff < 0)
|
|
119
|
+
return -1;
|
|
120
|
+
if (diff > 0)
|
|
121
|
+
return 1;
|
|
122
|
+
return 0;
|
|
123
|
+
}
|
|
124
|
+
// Fallback to string comparison
|
|
125
|
+
if (a < b)
|
|
126
|
+
return -1;
|
|
127
|
+
if (a > b)
|
|
128
|
+
return 1;
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Check if the current version is at least the required version
|
|
133
|
+
*/
|
|
134
|
+
export function isVersionAtLeast(required, current) {
|
|
135
|
+
const currentVersion = current || detectVersion().version;
|
|
136
|
+
return compareVersions(currentVersion, required) >= 0;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Compare two SuperDB versions and return detailed info
|
|
140
|
+
*/
|
|
141
|
+
export function compareVersionInfo(currentPath, compareToPath) {
|
|
142
|
+
const current = detectVersion(currentPath);
|
|
143
|
+
const compareTo = detectVersion(compareToPath);
|
|
144
|
+
let daysDiff = 0;
|
|
145
|
+
if (current.date && compareTo.date) {
|
|
146
|
+
daysDiff = Math.round((current.date.getTime() - compareTo.date.getTime()) / (1000 * 60 * 60 * 24));
|
|
147
|
+
}
|
|
148
|
+
const currentIsNewer = compareVersions(current.version, compareTo.version) > 0;
|
|
149
|
+
const warnings = [];
|
|
150
|
+
// Warn if versions are far apart
|
|
151
|
+
if (Math.abs(daysDiff) > 30) {
|
|
152
|
+
warnings.push(`Versions are ${Math.abs(daysDiff)} days apart. Syntax may have changed.`);
|
|
153
|
+
}
|
|
154
|
+
// Warn if comparing SHA versions
|
|
155
|
+
if (current.version.startsWith('sha:') || compareTo.version.startsWith('sha:')) {
|
|
156
|
+
warnings.push('SHA-only versions detected. Cannot determine relative ordering.');
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
current,
|
|
160
|
+
compareTo,
|
|
161
|
+
daysDiff,
|
|
162
|
+
currentIsNewer,
|
|
163
|
+
compatible: Math.abs(daysDiff) <= 7, // Within a week
|
|
164
|
+
warnings,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Read version from embedded docs frontmatter
|
|
169
|
+
*/
|
|
170
|
+
export function getDocsVersion() {
|
|
171
|
+
// This would read from the bundled docs
|
|
172
|
+
// For now, return the version we embedded
|
|
173
|
+
return '0.51231';
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Check compatibility between runtime and docs
|
|
177
|
+
*/
|
|
178
|
+
export function checkDocsCompatibility() {
|
|
179
|
+
const runtime = detectVersion();
|
|
180
|
+
const docs = getDocsVersion();
|
|
181
|
+
const warnings = [];
|
|
182
|
+
let compatible = true;
|
|
183
|
+
if (runtime.version === 'unknown') {
|
|
184
|
+
warnings.push('Could not detect SuperDB version. Some features may not work.');
|
|
185
|
+
compatible = false;
|
|
186
|
+
}
|
|
187
|
+
else if (runtime.version !== docs && !runtime.version.startsWith('sha:')) {
|
|
188
|
+
const comparison = compareVersions(runtime.version, docs);
|
|
189
|
+
if (comparison < 0) {
|
|
190
|
+
warnings.push(`Runtime (${runtime.version}) is older than docs (${docs}). ` +
|
|
191
|
+
`Some documented features may not be available.`);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
warnings.push(`Runtime (${runtime.version}) is newer than docs (${docs}). ` +
|
|
195
|
+
`Some new features may not be documented.`);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return { runtime, docs, compatible, warnings };
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface DbListResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
pools: unknown[];
|
|
4
|
+
error: string | null;
|
|
5
|
+
}
|
|
6
|
+
export interface DbQueryParams {
|
|
7
|
+
query: string;
|
|
8
|
+
pool?: string;
|
|
9
|
+
lake?: string;
|
|
10
|
+
format?: 'json' | 'sup' | 'csv' | 'table';
|
|
11
|
+
}
|
|
12
|
+
export interface DbQueryResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
data: unknown[] | null;
|
|
15
|
+
rowCount: number;
|
|
16
|
+
raw?: string;
|
|
17
|
+
error: string | null;
|
|
18
|
+
}
|
|
19
|
+
export interface DbLoadParams {
|
|
20
|
+
pool: string;
|
|
21
|
+
files?: string[];
|
|
22
|
+
data?: string;
|
|
23
|
+
lake?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface DbLoadResult {
|
|
26
|
+
success: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
error: string | null;
|
|
29
|
+
}
|
|
30
|
+
export interface DbCreatePoolParams {
|
|
31
|
+
name: string;
|
|
32
|
+
orderBy?: string;
|
|
33
|
+
lake?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface DbCreatePoolResult {
|
|
36
|
+
success: boolean;
|
|
37
|
+
message: string;
|
|
38
|
+
error: string | null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* List all pools in a database
|
|
42
|
+
*/
|
|
43
|
+
export declare function superDbList(lake?: string): Promise<DbListResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Query data from a database pool
|
|
46
|
+
*/
|
|
47
|
+
export declare function superDbQuery(params: DbQueryParams): Promise<DbQueryResult>;
|
|
48
|
+
/**
|
|
49
|
+
* Load data into a pool
|
|
50
|
+
*/
|
|
51
|
+
export declare function superDbLoad(params: DbLoadParams): Promise<DbLoadResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Create a new pool
|
|
54
|
+
*/
|
|
55
|
+
export declare function superDbCreatePool(params: DbCreatePoolParams): Promise<DbCreatePoolResult>;
|
|
56
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/tools/db.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBtE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA8DhF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAqD7E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0B/F"}
|
package/dist/tools/db.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { runSuperDb, parseNDJSON } from '../lib/super.js';
|
|
2
|
+
/**
|
|
3
|
+
* List all pools in a database
|
|
4
|
+
*/
|
|
5
|
+
export async function superDbList(lake) {
|
|
6
|
+
const result = await runSuperDb('ls', [], lake);
|
|
7
|
+
if (result.exitCode !== 0) {
|
|
8
|
+
return {
|
|
9
|
+
success: false,
|
|
10
|
+
pools: [],
|
|
11
|
+
error: result.stderr.trim() || 'Failed to list pools',
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
// super db ls outputs pool names, one per line
|
|
15
|
+
const pools = result.stdout.trim().split('\n').filter(Boolean);
|
|
16
|
+
return {
|
|
17
|
+
success: true,
|
|
18
|
+
pools,
|
|
19
|
+
error: null,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Query data from a database pool
|
|
24
|
+
*/
|
|
25
|
+
export async function superDbQuery(params) {
|
|
26
|
+
const { query, pool, lake, format = 'json' } = params;
|
|
27
|
+
const args = [];
|
|
28
|
+
// Output format
|
|
29
|
+
if (format === 'json') {
|
|
30
|
+
args.push('-j');
|
|
31
|
+
}
|
|
32
|
+
else if (format === 'sup') {
|
|
33
|
+
args.push('-s');
|
|
34
|
+
}
|
|
35
|
+
else if (format === 'csv') {
|
|
36
|
+
args.push('-f', 'csv');
|
|
37
|
+
}
|
|
38
|
+
else if (format === 'table') {
|
|
39
|
+
args.push('-f', 'table');
|
|
40
|
+
}
|
|
41
|
+
// Query - if pool specified, prepend FROM clause
|
|
42
|
+
let fullQuery = query;
|
|
43
|
+
if (pool && !query.toLowerCase().includes('from')) {
|
|
44
|
+
fullQuery = `from ${pool} | ${query}`;
|
|
45
|
+
}
|
|
46
|
+
args.push('-c', fullQuery);
|
|
47
|
+
const result = await runSuperDb('query', args, lake);
|
|
48
|
+
if (result.exitCode !== 0) {
|
|
49
|
+
return {
|
|
50
|
+
success: false,
|
|
51
|
+
data: null,
|
|
52
|
+
rowCount: 0,
|
|
53
|
+
error: result.stderr.trim() || 'Query failed',
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (format === 'json') {
|
|
57
|
+
try {
|
|
58
|
+
const parsed = parseNDJSON(result.stdout);
|
|
59
|
+
return {
|
|
60
|
+
success: true,
|
|
61
|
+
data: parsed,
|
|
62
|
+
rowCount: parsed.length,
|
|
63
|
+
error: null,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return {
|
|
68
|
+
success: true,
|
|
69
|
+
data: null,
|
|
70
|
+
rowCount: 0,
|
|
71
|
+
raw: result.stdout,
|
|
72
|
+
error: null,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return {
|
|
78
|
+
success: true,
|
|
79
|
+
data: null,
|
|
80
|
+
rowCount: 0,
|
|
81
|
+
raw: result.stdout,
|
|
82
|
+
error: null,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Load data into a pool
|
|
88
|
+
*/
|
|
89
|
+
export async function superDbLoad(params) {
|
|
90
|
+
const { pool, files, data, lake } = params;
|
|
91
|
+
const args = [pool];
|
|
92
|
+
if (files && files.length > 0) {
|
|
93
|
+
args.push(...files);
|
|
94
|
+
}
|
|
95
|
+
else if (data !== undefined) {
|
|
96
|
+
args.push('-');
|
|
97
|
+
}
|
|
98
|
+
// For stdin data, we need a different approach
|
|
99
|
+
// runSuperDb doesn't support stdin, so we use runSuper directly
|
|
100
|
+
if (data !== undefined) {
|
|
101
|
+
const { runSuper } = await import('../lib/super.js');
|
|
102
|
+
const fullArgs = ['db', 'load'];
|
|
103
|
+
if (lake) {
|
|
104
|
+
fullArgs.push('-lake', lake);
|
|
105
|
+
}
|
|
106
|
+
fullArgs.push(pool, '-');
|
|
107
|
+
const result = await runSuper(fullArgs, data);
|
|
108
|
+
if (result.exitCode !== 0) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
message: '',
|
|
112
|
+
error: result.stderr.trim() || 'Failed to load data',
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
success: true,
|
|
117
|
+
message: result.stdout.trim() || 'Data loaded successfully',
|
|
118
|
+
error: null,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const result = await runSuperDb('load', args, lake);
|
|
122
|
+
if (result.exitCode !== 0) {
|
|
123
|
+
return {
|
|
124
|
+
success: false,
|
|
125
|
+
message: '',
|
|
126
|
+
error: result.stderr.trim() || 'Failed to load data',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
success: true,
|
|
131
|
+
message: result.stdout.trim() || 'Data loaded successfully',
|
|
132
|
+
error: null,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create a new pool
|
|
137
|
+
*/
|
|
138
|
+
export async function superDbCreatePool(params) {
|
|
139
|
+
const { name, orderBy, lake } = params;
|
|
140
|
+
const args = [];
|
|
141
|
+
if (orderBy) {
|
|
142
|
+
args.push('-orderby', orderBy);
|
|
143
|
+
}
|
|
144
|
+
args.push(name);
|
|
145
|
+
const result = await runSuperDb('create', args, lake);
|
|
146
|
+
if (result.exitCode !== 0) {
|
|
147
|
+
return {
|
|
148
|
+
success: false,
|
|
149
|
+
message: '',
|
|
150
|
+
error: result.stderr.trim() || 'Failed to create pool',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
message: `Pool '${name}' created successfully`,
|
|
156
|
+
error: null,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=db.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/tools/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { VersionInfo, VersionComparison } from '../lib/version.js';
|
|
2
|
+
export interface LspSetup {
|
|
3
|
+
recommendation: string;
|
|
4
|
+
benefits: string[];
|
|
5
|
+
releases_url: string;
|
|
6
|
+
platforms: Record<string, string>;
|
|
7
|
+
install_steps: string[];
|
|
8
|
+
env_var: string;
|
|
9
|
+
}
|
|
10
|
+
export interface InfoResult {
|
|
11
|
+
success: boolean;
|
|
12
|
+
runtime: VersionInfo;
|
|
13
|
+
docs_version: string;
|
|
14
|
+
lsp_available: boolean;
|
|
15
|
+
lsp_path: string | null;
|
|
16
|
+
lsp_setup: LspSetup | null;
|
|
17
|
+
compatibility: {
|
|
18
|
+
runtime_docs_match: boolean;
|
|
19
|
+
warnings: string[];
|
|
20
|
+
};
|
|
21
|
+
error: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface CompareResult {
|
|
24
|
+
success: boolean;
|
|
25
|
+
comparison: VersionComparison | null;
|
|
26
|
+
error: string | null;
|
|
27
|
+
}
|
|
28
|
+
export interface HelpResult {
|
|
29
|
+
success: boolean;
|
|
30
|
+
topic: string;
|
|
31
|
+
content: string;
|
|
32
|
+
error: string | null;
|
|
33
|
+
}
|
|
34
|
+
export interface CompatTestResult {
|
|
35
|
+
success: boolean;
|
|
36
|
+
query: string;
|
|
37
|
+
results: Array<{
|
|
38
|
+
path: string;
|
|
39
|
+
version: string;
|
|
40
|
+
success: boolean;
|
|
41
|
+
output?: string;
|
|
42
|
+
error?: string;
|
|
43
|
+
}>;
|
|
44
|
+
breaking_change_detected: boolean;
|
|
45
|
+
error: string | null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get SuperDB version and environment info
|
|
49
|
+
*/
|
|
50
|
+
export declare function superInfo(compareTo?: string): InfoResult;
|
|
51
|
+
/**
|
|
52
|
+
* Compare two SuperDB versions
|
|
53
|
+
*/
|
|
54
|
+
export declare function superCompare(currentPath?: string, compareToPath?: string): CompareResult;
|
|
55
|
+
/**
|
|
56
|
+
* Get help documentation
|
|
57
|
+
*/
|
|
58
|
+
export declare function superHelp(topic: string): HelpResult;
|
|
59
|
+
/**
|
|
60
|
+
* Test query compatibility across multiple super versions
|
|
61
|
+
*/
|
|
62
|
+
export declare function superTestCompat(query: string, versions: string[]): Promise<CompatTestResult>;
|
|
63
|
+
//# sourceMappingURL=info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/tools/info.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAQ3B,MAAM,WAAW,QAAQ;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE;QACb,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,wBAAwB,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAiFxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,CAexF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAmCnD;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAmE3B"}
|