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,86 @@
|
|
|
1
|
+
interface Position {
|
|
2
|
+
line: number;
|
|
3
|
+
character: number;
|
|
4
|
+
}
|
|
5
|
+
interface CompletionItem {
|
|
6
|
+
label: string;
|
|
7
|
+
kind?: number;
|
|
8
|
+
detail?: string;
|
|
9
|
+
documentation?: string | {
|
|
10
|
+
kind: string;
|
|
11
|
+
value: string;
|
|
12
|
+
};
|
|
13
|
+
insertText?: string;
|
|
14
|
+
}
|
|
15
|
+
interface Diagnostic {
|
|
16
|
+
range: {
|
|
17
|
+
start: Position;
|
|
18
|
+
end: Position;
|
|
19
|
+
};
|
|
20
|
+
severity?: number;
|
|
21
|
+
message: string;
|
|
22
|
+
source?: string;
|
|
23
|
+
}
|
|
24
|
+
interface HoverResult {
|
|
25
|
+
contents: string | {
|
|
26
|
+
kind: string;
|
|
27
|
+
value: string;
|
|
28
|
+
};
|
|
29
|
+
range?: {
|
|
30
|
+
start: Position;
|
|
31
|
+
end: Position;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface LSPClientOptions {
|
|
35
|
+
lspPath?: string;
|
|
36
|
+
timeout?: number;
|
|
37
|
+
}
|
|
38
|
+
export interface LSPAvailability {
|
|
39
|
+
available: boolean;
|
|
40
|
+
path: string | null;
|
|
41
|
+
error: string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get the path to the LSP server
|
|
45
|
+
*/
|
|
46
|
+
export declare function getLspPath(): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Check if the LSP server is available
|
|
49
|
+
*/
|
|
50
|
+
export declare function checkLspAvailability(): LSPAvailability;
|
|
51
|
+
/**
|
|
52
|
+
* Simple LSP client that spawns the server, sends a request, and gets a response
|
|
53
|
+
* Uses a fresh process per request for simplicity
|
|
54
|
+
*/
|
|
55
|
+
export declare class LSPClient {
|
|
56
|
+
private lspPath;
|
|
57
|
+
private timeout;
|
|
58
|
+
private messageId;
|
|
59
|
+
constructor(options?: LSPClientOptions);
|
|
60
|
+
/**
|
|
61
|
+
* Send a request to the LSP and get a response
|
|
62
|
+
*/
|
|
63
|
+
private sendRequest;
|
|
64
|
+
/**
|
|
65
|
+
* Format a JSON-RPC message with Content-Length header
|
|
66
|
+
*/
|
|
67
|
+
private formatMessage;
|
|
68
|
+
/**
|
|
69
|
+
* Get completions at a position in a query
|
|
70
|
+
*/
|
|
71
|
+
getCompletions(query: string, line: number, character: number): Promise<CompletionItem[]>;
|
|
72
|
+
/**
|
|
73
|
+
* Get hover documentation at a position
|
|
74
|
+
*/
|
|
75
|
+
getHover(query: string, line: number, character: number): Promise<HoverResult | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Get diagnostics for a query
|
|
78
|
+
*/
|
|
79
|
+
getDiagnostics(query: string): Promise<Diagnostic[]>;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get the LSP client, or null if not available
|
|
83
|
+
*/
|
|
84
|
+
export declare function getLspClient(): LSPClient | null;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=lsp-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-client.d.ts","sourceRoot":"","sources":["../../src/lib/lsp-client.ts"],"names":[],"mappings":"AAkBA,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,QAAQ,CAAC;QAChB,GAAG,EAAE,QAAQ,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,QAAQ,CAAC;QAChB,GAAG,EAAE,QAAQ,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAsCtD;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAa;gBAElB,OAAO,GAAE,gBAAqB;IAS1C;;OAEG;YACW,WAAW;IAyGzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAkC/F;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAyB3F;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAM3D;AASD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,GAAG,IAAI,CAqB/C"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
/**
|
|
3
|
+
* Get the path to the LSP server
|
|
4
|
+
*/
|
|
5
|
+
export function getLspPath() {
|
|
6
|
+
return process.env.SUPERDB_LSP_PATH || null;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Check if the LSP server is available
|
|
10
|
+
*/
|
|
11
|
+
export function checkLspAvailability() {
|
|
12
|
+
const lspPath = getLspPath();
|
|
13
|
+
if (!lspPath) {
|
|
14
|
+
return {
|
|
15
|
+
available: false,
|
|
16
|
+
path: null,
|
|
17
|
+
error: 'SUPERDB_LSP_PATH environment variable not set. Install superdb-lsp for enhanced features.',
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const { spawnSync } = require('child_process');
|
|
22
|
+
const result = spawnSync(lspPath, ['--help'], {
|
|
23
|
+
timeout: 2000,
|
|
24
|
+
encoding: 'utf-8',
|
|
25
|
+
});
|
|
26
|
+
if (result.error || result.status !== 0) {
|
|
27
|
+
return {
|
|
28
|
+
available: false,
|
|
29
|
+
path: lspPath,
|
|
30
|
+
error: `LSP server at ${lspPath} is not working: ${result.error?.message || 'unknown error'}`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
available: true,
|
|
35
|
+
path: lspPath,
|
|
36
|
+
error: null,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
return {
|
|
41
|
+
available: false,
|
|
42
|
+
path: lspPath,
|
|
43
|
+
error: `Failed to check LSP: ${e instanceof Error ? e.message : String(e)}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Simple LSP client that spawns the server, sends a request, and gets a response
|
|
49
|
+
* Uses a fresh process per request for simplicity
|
|
50
|
+
*/
|
|
51
|
+
export class LSPClient {
|
|
52
|
+
lspPath;
|
|
53
|
+
timeout;
|
|
54
|
+
messageId = 0;
|
|
55
|
+
constructor(options = {}) {
|
|
56
|
+
const path = options.lspPath || getLspPath();
|
|
57
|
+
if (!path) {
|
|
58
|
+
throw new Error('LSP path not configured. Set SUPERDB_LSP_PATH environment variable.');
|
|
59
|
+
}
|
|
60
|
+
this.lspPath = path;
|
|
61
|
+
this.timeout = options.timeout || 5000;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Send a request to the LSP and get a response
|
|
65
|
+
*/
|
|
66
|
+
async sendRequest(method, params) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
const proc = spawn(this.lspPath, [], {
|
|
69
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
70
|
+
});
|
|
71
|
+
let stdout = '';
|
|
72
|
+
let stderr = '';
|
|
73
|
+
let resolved = false;
|
|
74
|
+
const timeoutId = setTimeout(() => {
|
|
75
|
+
if (!resolved) {
|
|
76
|
+
resolved = true;
|
|
77
|
+
proc.kill();
|
|
78
|
+
reject(new Error(`LSP request timed out after ${this.timeout}ms`));
|
|
79
|
+
}
|
|
80
|
+
}, this.timeout);
|
|
81
|
+
proc.stdout.on('data', (chunk) => {
|
|
82
|
+
stdout += chunk.toString();
|
|
83
|
+
// Try to parse response
|
|
84
|
+
const match = stdout.match(/Content-Length: (\d+)\r\n\r\n([\s\S]*)/);
|
|
85
|
+
if (match) {
|
|
86
|
+
const contentLength = parseInt(match[1]);
|
|
87
|
+
const body = match[2];
|
|
88
|
+
if (body.length >= contentLength) {
|
|
89
|
+
try {
|
|
90
|
+
const response = JSON.parse(body.slice(0, contentLength));
|
|
91
|
+
if (response.id === this.messageId) {
|
|
92
|
+
clearTimeout(timeoutId);
|
|
93
|
+
resolved = true;
|
|
94
|
+
proc.kill();
|
|
95
|
+
if (response.error) {
|
|
96
|
+
reject(new Error(response.error.message));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
resolve(response.result);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// Continue reading
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
proc.stderr.on('data', (chunk) => {
|
|
110
|
+
stderr += chunk.toString();
|
|
111
|
+
});
|
|
112
|
+
proc.on('error', (err) => {
|
|
113
|
+
if (!resolved) {
|
|
114
|
+
clearTimeout(timeoutId);
|
|
115
|
+
resolved = true;
|
|
116
|
+
reject(new Error(`LSP process error: ${err.message}`));
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
proc.on('close', (code) => {
|
|
120
|
+
if (!resolved) {
|
|
121
|
+
clearTimeout(timeoutId);
|
|
122
|
+
resolved = true;
|
|
123
|
+
if (code !== 0) {
|
|
124
|
+
reject(new Error(`LSP process exited with code ${code}: ${stderr}`));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// Send initialize request first
|
|
129
|
+
this.messageId++;
|
|
130
|
+
const initMessage = this.formatMessage({
|
|
131
|
+
jsonrpc: '2.0',
|
|
132
|
+
id: this.messageId,
|
|
133
|
+
method: 'initialize',
|
|
134
|
+
params: {
|
|
135
|
+
processId: process.pid,
|
|
136
|
+
capabilities: {},
|
|
137
|
+
rootUri: null,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
proc.stdin.write(initMessage);
|
|
141
|
+
// Wait a bit then send the actual request
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
// Send initialized notification
|
|
144
|
+
const initializedMessage = this.formatMessage({
|
|
145
|
+
jsonrpc: '2.0',
|
|
146
|
+
method: 'initialized',
|
|
147
|
+
params: {},
|
|
148
|
+
});
|
|
149
|
+
proc.stdin.write(initializedMessage);
|
|
150
|
+
// Send the actual request
|
|
151
|
+
this.messageId++;
|
|
152
|
+
const requestMessage = this.formatMessage({
|
|
153
|
+
jsonrpc: '2.0',
|
|
154
|
+
id: this.messageId,
|
|
155
|
+
method,
|
|
156
|
+
params,
|
|
157
|
+
});
|
|
158
|
+
proc.stdin.write(requestMessage);
|
|
159
|
+
}, 100);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Format a JSON-RPC message with Content-Length header
|
|
164
|
+
*/
|
|
165
|
+
formatMessage(message) {
|
|
166
|
+
const content = JSON.stringify(message);
|
|
167
|
+
return `Content-Length: ${content.length}\r\n\r\n${content}`;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get completions at a position in a query
|
|
171
|
+
*/
|
|
172
|
+
async getCompletions(query, line, character) {
|
|
173
|
+
try {
|
|
174
|
+
// Create a virtual document
|
|
175
|
+
const uri = 'file:///virtual/query.spq';
|
|
176
|
+
// Open the document
|
|
177
|
+
await this.sendRequest('textDocument/didOpen', {
|
|
178
|
+
textDocument: {
|
|
179
|
+
uri,
|
|
180
|
+
languageId: 'spq',
|
|
181
|
+
version: 1,
|
|
182
|
+
text: query,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
// Request completions
|
|
186
|
+
const result = await this.sendRequest('textDocument/completion', {
|
|
187
|
+
textDocument: { uri },
|
|
188
|
+
position: { line, character },
|
|
189
|
+
});
|
|
190
|
+
if (Array.isArray(result)) {
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
if (result && typeof result === 'object' && 'items' in result) {
|
|
194
|
+
return result.items;
|
|
195
|
+
}
|
|
196
|
+
return [];
|
|
197
|
+
}
|
|
198
|
+
catch (e) {
|
|
199
|
+
console.error('LSP completion error:', e);
|
|
200
|
+
return [];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get hover documentation at a position
|
|
205
|
+
*/
|
|
206
|
+
async getHover(query, line, character) {
|
|
207
|
+
try {
|
|
208
|
+
const uri = 'file:///virtual/query.spq';
|
|
209
|
+
await this.sendRequest('textDocument/didOpen', {
|
|
210
|
+
textDocument: {
|
|
211
|
+
uri,
|
|
212
|
+
languageId: 'spq',
|
|
213
|
+
version: 1,
|
|
214
|
+
text: query,
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
const result = await this.sendRequest('textDocument/hover', {
|
|
218
|
+
textDocument: { uri },
|
|
219
|
+
position: { line, character },
|
|
220
|
+
});
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
catch (e) {
|
|
224
|
+
console.error('LSP hover error:', e);
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get diagnostics for a query
|
|
230
|
+
*/
|
|
231
|
+
async getDiagnostics(query) {
|
|
232
|
+
// The LSP sends diagnostics via notifications after didOpen
|
|
233
|
+
// For now, we use super compile for validation
|
|
234
|
+
// This is a placeholder for future LSP diagnostic support
|
|
235
|
+
return [];
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Singleton instance with lazy initialization
|
|
240
|
+
*/
|
|
241
|
+
let lspClient = null;
|
|
242
|
+
let lspCheckDone = false;
|
|
243
|
+
let lspAvailable = false;
|
|
244
|
+
/**
|
|
245
|
+
* Get the LSP client, or null if not available
|
|
246
|
+
*/
|
|
247
|
+
export function getLspClient() {
|
|
248
|
+
if (!lspCheckDone) {
|
|
249
|
+
const availability = checkLspAvailability();
|
|
250
|
+
lspAvailable = availability.available;
|
|
251
|
+
lspCheckDone = true;
|
|
252
|
+
}
|
|
253
|
+
if (!lspAvailable) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
if (!lspClient) {
|
|
257
|
+
try {
|
|
258
|
+
lspClient = new LSPClient();
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
lspAvailable = false;
|
|
262
|
+
return null;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return lspClient;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=lsp-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp-client.js","sourceRoot":"","sources":["../../src/lib/lsp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface SuperResult {
|
|
2
|
+
stdout: string;
|
|
3
|
+
stderr: string;
|
|
4
|
+
exitCode: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Get the path to the super binary
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSuperPath(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Execute the super binary with given arguments
|
|
12
|
+
*/
|
|
13
|
+
export declare function runSuper(args: string[], stdin?: string): Promise<SuperResult>;
|
|
14
|
+
/**
|
|
15
|
+
* Execute super db commands
|
|
16
|
+
*/
|
|
17
|
+
export declare function runSuperDb(subcommand: string, args: string[], lake?: string): Promise<SuperResult>;
|
|
18
|
+
/**
|
|
19
|
+
* Parse newline-delimited JSON output from super
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseNDJSON(output: string): unknown[];
|
|
22
|
+
/**
|
|
23
|
+
* Safely parse JSON, returning null on failure
|
|
24
|
+
*/
|
|
25
|
+
export declare function tryParseJSON(text: string): unknown | null;
|
|
26
|
+
//# sourceMappingURL=super.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"super.d.ts","sourceRoot":"","sources":["../../src/lib/super.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2BnF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAOxG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAGrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAMzD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { spawn } 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
|
+
* Execute the super binary with given arguments
|
|
10
|
+
*/
|
|
11
|
+
export async function runSuper(args, stdin) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const proc = spawn(getSuperPath(), args);
|
|
14
|
+
let stdout = '';
|
|
15
|
+
let stderr = '';
|
|
16
|
+
if (stdin !== undefined) {
|
|
17
|
+
proc.stdin.write(stdin);
|
|
18
|
+
proc.stdin.end();
|
|
19
|
+
}
|
|
20
|
+
proc.stdout.on('data', (chunk) => {
|
|
21
|
+
stdout += chunk.toString();
|
|
22
|
+
});
|
|
23
|
+
proc.stderr.on('data', (chunk) => {
|
|
24
|
+
stderr += chunk.toString();
|
|
25
|
+
});
|
|
26
|
+
proc.on('close', (code) => {
|
|
27
|
+
resolve({ stdout, stderr, exitCode: code ?? 1 });
|
|
28
|
+
});
|
|
29
|
+
proc.on('error', (err) => {
|
|
30
|
+
reject(new Error(`Failed to spawn super: ${err.message}`));
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Execute super db commands
|
|
36
|
+
*/
|
|
37
|
+
export async function runSuperDb(subcommand, args, lake) {
|
|
38
|
+
const fullArgs = ['db', subcommand];
|
|
39
|
+
if (lake) {
|
|
40
|
+
fullArgs.push('-lake', lake);
|
|
41
|
+
}
|
|
42
|
+
fullArgs.push(...args);
|
|
43
|
+
return runSuper(fullArgs);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse newline-delimited JSON output from super
|
|
47
|
+
*/
|
|
48
|
+
export function parseNDJSON(output) {
|
|
49
|
+
const lines = output.trim().split('\n').filter(Boolean);
|
|
50
|
+
return lines.map(line => JSON.parse(line));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Safely parse JSON, returning null on failure
|
|
54
|
+
*/
|
|
55
|
+
export function tryParseJSON(text) {
|
|
56
|
+
try {
|
|
57
|
+
return JSON.parse(text);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=super.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"super.js","sourceRoot":"","sources":["../../src/lib/super.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAQtC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAc,EAAE,KAAc;IAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,IAAc,EAAE,IAAa;IAChF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface VersionInfo {
|
|
2
|
+
version: string;
|
|
3
|
+
raw: string;
|
|
4
|
+
date: Date | null;
|
|
5
|
+
sha: string | null;
|
|
6
|
+
timestamp: string | null;
|
|
7
|
+
path: string;
|
|
8
|
+
source: 'env' | 'path' | 'override';
|
|
9
|
+
}
|
|
10
|
+
export interface VersionComparison {
|
|
11
|
+
current: VersionInfo;
|
|
12
|
+
compareTo: VersionInfo;
|
|
13
|
+
daysDiff: number;
|
|
14
|
+
currentIsNewer: boolean;
|
|
15
|
+
compatible: boolean;
|
|
16
|
+
warnings: string[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get the path to the super binary
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSuperPath(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Detect the SuperDB version from the configured binary
|
|
24
|
+
*/
|
|
25
|
+
export declare function detectVersion(superPath?: string): VersionInfo;
|
|
26
|
+
/**
|
|
27
|
+
* Parse a YMMDD version string to a Date
|
|
28
|
+
* Format: 0.YMMDD (e.g., 0.51231 = 2025-12-31)
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseYMMDDVersion(version: string): Date | null;
|
|
31
|
+
/**
|
|
32
|
+
* Compare two version strings
|
|
33
|
+
* Returns: -1 if a < b, 0 if a == b, 1 if a > b
|
|
34
|
+
*/
|
|
35
|
+
export declare function compareVersions(a: string, b: string): -1 | 0 | 1;
|
|
36
|
+
/**
|
|
37
|
+
* Check if the current version is at least the required version
|
|
38
|
+
*/
|
|
39
|
+
export declare function isVersionAtLeast(required: string, current?: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Compare two SuperDB versions and return detailed info
|
|
42
|
+
*/
|
|
43
|
+
export declare function compareVersionInfo(currentPath?: string, compareToPath?: string): VersionComparison;
|
|
44
|
+
/**
|
|
45
|
+
* Read version from embedded docs frontmatter
|
|
46
|
+
*/
|
|
47
|
+
export declare function getDocsVersion(): string;
|
|
48
|
+
/**
|
|
49
|
+
* Check compatibility between runtime and docs
|
|
50
|
+
*/
|
|
51
|
+
export declare function checkDocsCompatibility(): {
|
|
52
|
+
runtime: VersionInfo;
|
|
53
|
+
docs: string;
|
|
54
|
+
compatible: boolean;
|
|
55
|
+
warnings: string[];
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,WAAW,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAmDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CA8C7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAS9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAqBhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,CAAC,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,MAAM,GACrB,iBAAiB,CAqCnB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI;IACxC,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA0BA"}
|