syntaqlite 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -15
- package/dist/engine.d.ts +62 -26
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +184 -113
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lsp.d.ts +22 -0
- package/dist/lsp.d.ts.map +1 -0
- package/dist/lsp.js +21 -0
- package/dist/lsp.js.map +1 -0
- package/dist/types.d.ts +53 -17
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/wasm/syntaqlite-runtime.js +101 -41
- package/wasm/syntaqlite-runtime.wasm +0 -0
- package/wasm/syntaqlite-sqlite.wasm +0 -0
package/dist/engine.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
// Licensed under the Apache License, Version 2.0.
|
|
3
3
|
const DEFAULT_RUNTIME_JS = new URL("../wasm/syntaqlite-runtime.js", import.meta.url).href;
|
|
4
4
|
const DEFAULT_RUNTIME_WASM = new URL("../wasm/syntaqlite-runtime.wasm", import.meta.url).href;
|
|
5
|
+
/** Host-language code for the embedded-SQL WASM exports. */
|
|
6
|
+
function embeddedLangCode(lang) {
|
|
7
|
+
return lang === "python" ? 0 : 1;
|
|
8
|
+
}
|
|
5
9
|
export class Engine {
|
|
6
10
|
constructor(config = {}) {
|
|
7
11
|
this.status = "Loading...";
|
|
@@ -9,16 +13,12 @@ export class Engine {
|
|
|
9
13
|
this.module = undefined;
|
|
10
14
|
this.encoder = new TextEncoder();
|
|
11
15
|
this.decoder = new TextDecoder();
|
|
16
|
+
this.sessionNewRaw = undefined;
|
|
17
|
+
this.sessionFreeRaw = undefined;
|
|
12
18
|
this.setDialectRaw = undefined;
|
|
13
19
|
this.clearDialectRaw = undefined;
|
|
14
20
|
this.allocRaw = undefined;
|
|
15
21
|
this.freeRaw = undefined;
|
|
16
|
-
this.astRaw = undefined;
|
|
17
|
-
this.astJsonRaw = undefined;
|
|
18
|
-
this.fmtRaw = undefined;
|
|
19
|
-
this.diagnosticsRaw = undefined;
|
|
20
|
-
this.semanticTokensRaw = undefined;
|
|
21
|
-
this.completionsRaw = undefined;
|
|
22
22
|
this.resultPtrRaw = undefined;
|
|
23
23
|
this.resultLenRaw = undefined;
|
|
24
24
|
this.resultFreeRaw = undefined;
|
|
@@ -27,12 +27,16 @@ export class Engine {
|
|
|
27
27
|
this.clearCflagRaw = undefined;
|
|
28
28
|
this.clearAllCflagsRaw = undefined;
|
|
29
29
|
this.getCflagListRaw = undefined;
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
30
|
+
this.embeddedExtractRaw = undefined;
|
|
31
|
+
this.embeddedDiagnosticsRaw = undefined;
|
|
32
|
+
this.embeddedSemanticTokensRaw = undefined;
|
|
33
|
+
this.lspMessageRaw = undefined;
|
|
34
|
+
this.rpcRaw = undefined;
|
|
35
35
|
this.currentLangMode = "sql";
|
|
36
|
+
/** Handle for the WASM session all calls run against. 0 = not created yet. */
|
|
37
|
+
this.session = 0;
|
|
38
|
+
/** Sequence for `syntaqlite/setSessionContext` request ids. */
|
|
39
|
+
this.contextSeq = 0;
|
|
36
40
|
/** Last session context applied, so it can be re-applied after dialect switches. */
|
|
37
41
|
this.sessionContext = null;
|
|
38
42
|
this.config = config;
|
|
@@ -40,23 +44,31 @@ export class Engine {
|
|
|
40
44
|
get ready() {
|
|
41
45
|
return this.module !== undefined;
|
|
42
46
|
}
|
|
47
|
+
/** The underlying Emscripten module, e.g. to share with another Engine
|
|
48
|
+
* via `EngineConfig.runtime`. Undefined until load() completes. */
|
|
49
|
+
get runtimeModule() {
|
|
50
|
+
return this.module;
|
|
51
|
+
}
|
|
52
|
+
/** Free the WASM session. The engine must not be used after this. */
|
|
53
|
+
dispose() {
|
|
54
|
+
if (this.session !== 0 && this.sessionFreeRaw) {
|
|
55
|
+
this.sessionFreeRaw(this.session);
|
|
56
|
+
this.session = 0;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
43
59
|
updateStatus(text, isError = false) {
|
|
44
60
|
this.status = text;
|
|
45
61
|
this.statusError = isError;
|
|
46
62
|
}
|
|
47
63
|
async load() {
|
|
48
|
-
const module = await loadRuntimeModule(this.config);
|
|
64
|
+
const module = this.config.runtime ?? (await loadRuntimeModule(this.config));
|
|
49
65
|
this.module = module;
|
|
66
|
+
this.sessionNewRaw = this.resolveRuntimeFn("wasm_session_new");
|
|
67
|
+
this.sessionFreeRaw = this.resolveRuntimeFn("wasm_session_free");
|
|
50
68
|
this.setDialectRaw = this.tryResolveRuntimeFn("wasm_set_dialect");
|
|
51
69
|
this.clearDialectRaw = this.tryResolveRuntimeFn("wasm_clear_dialect");
|
|
52
70
|
this.allocRaw = this.resolveRuntimeFn("wasm_alloc");
|
|
53
71
|
this.freeRaw = this.resolveRuntimeFn("wasm_free");
|
|
54
|
-
this.astRaw = this.tryResolveRuntimeFn("wasm_ast");
|
|
55
|
-
this.astJsonRaw = this.tryResolveRuntimeFn("wasm_ast_json");
|
|
56
|
-
this.fmtRaw = this.resolveRuntimeFn("wasm_fmt");
|
|
57
|
-
this.diagnosticsRaw = this.tryResolveRuntimeFn("wasm_diagnostics");
|
|
58
|
-
this.semanticTokensRaw = this.tryResolveRuntimeFn("wasm_semantic_tokens");
|
|
59
|
-
this.completionsRaw = this.tryResolveRuntimeFn("wasm_completions");
|
|
60
72
|
this.resultPtrRaw = this.resolveRuntimeFn("wasm_result_ptr");
|
|
61
73
|
this.resultLenRaw = this.resolveRuntimeFn("wasm_result_len");
|
|
62
74
|
this.resultFreeRaw = this.resolveRuntimeFn("wasm_result_free");
|
|
@@ -65,11 +77,15 @@ export class Engine {
|
|
|
65
77
|
this.clearCflagRaw = this.tryResolveRuntimeFn("wasm_clear_cflag");
|
|
66
78
|
this.clearAllCflagsRaw = this.tryResolveRuntimeFn("wasm_clear_all_cflags");
|
|
67
79
|
this.getCflagListRaw = this.tryResolveRuntimeFn("wasm_get_cflag_list");
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
80
|
+
this.embeddedExtractRaw = this.tryResolveRuntimeFn("wasm_embedded_extract");
|
|
81
|
+
this.embeddedDiagnosticsRaw = this.tryResolveRuntimeFn("wasm_embedded_diagnostics");
|
|
82
|
+
this.embeddedSemanticTokensRaw = this.tryResolveRuntimeFn("wasm_embedded_semantic_tokens");
|
|
83
|
+
this.lspMessageRaw = this.tryResolveRuntimeFn("wasm_lsp_message");
|
|
84
|
+
this.rpcRaw = this.tryResolveRuntimeFn("wasm_rpc");
|
|
85
|
+
this.session = this.sessionNewRaw() >>> 0;
|
|
86
|
+
if (this.session === 0) {
|
|
87
|
+
throw new Error("wasm_session_new failed");
|
|
88
|
+
}
|
|
73
89
|
}
|
|
74
90
|
resolveRuntimeFn(symbol) {
|
|
75
91
|
const fn = this.module[`_${symbol}`];
|
|
@@ -158,12 +174,12 @@ export class Engine {
|
|
|
158
174
|
setDialectPointer(ptr) {
|
|
159
175
|
if (!this.setDialectRaw)
|
|
160
176
|
throw new Error("dialect switching not supported by this runtime");
|
|
161
|
-
const status = this.setDialectRaw(ptr >>> 0);
|
|
177
|
+
const status = this.setDialectRaw(this.session, ptr >>> 0);
|
|
162
178
|
const detail = this.readAndClearResult();
|
|
163
179
|
if (status !== 0) {
|
|
164
180
|
throw new Error(detail || `wasm_set_dialect failed with status ${status}`);
|
|
165
181
|
}
|
|
166
|
-
// The WASM
|
|
182
|
+
// The WASM drops the language server on dialect switch, discarding any
|
|
167
183
|
// session context. Re-apply it so callers don't have to track this.
|
|
168
184
|
this.reapplySessionContext();
|
|
169
185
|
}
|
|
@@ -180,46 +196,43 @@ export class Engine {
|
|
|
180
196
|
clearDialectPointer() {
|
|
181
197
|
if (!this.clearDialectRaw)
|
|
182
198
|
return;
|
|
183
|
-
this.clearDialectRaw();
|
|
199
|
+
this.clearDialectRaw(this.session);
|
|
184
200
|
this.readAndClearResult();
|
|
185
201
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
if (
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
* legendIndex, 0) ready for Monaco, or undefined on failure.
|
|
217
|
-
* Pass rangeStart=0 and rangeEnd=0xFFFFFFFF for the full document. */
|
|
218
|
-
runSemanticTokens(sql, rangeStart = 0, rangeEnd = 0xffffffff, version = 1) {
|
|
219
|
-
if (!this.semanticTokensRaw)
|
|
202
|
+
/** Parse SQL into AST JSON. Parse errors are data, not exceptions. */
|
|
203
|
+
parse(sql) {
|
|
204
|
+
// AST nodes omit absent fields as null; expose them as undefined.
|
|
205
|
+
return this.rpc({ op: "parse", sql }, (_, v) => (v === null ? undefined : v));
|
|
206
|
+
}
|
|
207
|
+
/** Format SQL. Throws when the input cannot be formatted. */
|
|
208
|
+
format(sql, opts = {}) {
|
|
209
|
+
const request = { op: "format", sql };
|
|
210
|
+
if (opts.lineWidth !== undefined)
|
|
211
|
+
request.line_width = opts.lineWidth;
|
|
212
|
+
if (opts.indentWidth !== undefined)
|
|
213
|
+
request.indent_width = opts.indentWidth;
|
|
214
|
+
if (opts.keywordCase !== undefined)
|
|
215
|
+
request.keyword_case = opts.keywordCase;
|
|
216
|
+
if (opts.semicolons !== undefined)
|
|
217
|
+
request.semicolons = opts.semicolons;
|
|
218
|
+
const result = this.rpc(request);
|
|
219
|
+
return result.formatted;
|
|
220
|
+
}
|
|
221
|
+
/** Tokenize SQL. Throws on malformed input. */
|
|
222
|
+
tokenize(sql) {
|
|
223
|
+
const result = this.rpc({ op: "tokenize", sql });
|
|
224
|
+
return result.tokens;
|
|
225
|
+
}
|
|
226
|
+
/** Semantic tokens for an embedded-language document (see setLanguageMode).
|
|
227
|
+
* Returns a pre-encoded Uint32Array (5 u32s per token) or undefined on
|
|
228
|
+
* failure. SQL documents are served over LSP (`textDocument/semanticTokens`).
|
|
229
|
+
* @experimental Embedded language support is experimental and may change. */
|
|
230
|
+
embeddedSemanticTokens(source) {
|
|
231
|
+
if (this.currentLangMode === "sql" || !this.embeddedSemanticTokensRaw)
|
|
220
232
|
return undefined;
|
|
233
|
+
const lang = embeddedLangCode(this.currentLangMode);
|
|
221
234
|
try {
|
|
222
|
-
const count = this.withInput(
|
|
235
|
+
const count = this.withInput(source, (ptr, len) => this.embeddedSemanticTokensRaw(this.session, lang, ptr, len));
|
|
223
236
|
if (count <= 0) {
|
|
224
237
|
this.resultFreeRaw();
|
|
225
238
|
return count === 0 ? new Uint32Array(0) : undefined;
|
|
@@ -232,15 +245,20 @@ export class Engine {
|
|
|
232
245
|
return new Uint32Array(bytes.buffer, bytes.byteOffset, bytes.byteLength / 4);
|
|
233
246
|
}
|
|
234
247
|
catch (e) {
|
|
235
|
-
console.warn("
|
|
248
|
+
console.warn("wasm_embedded_semantic_tokens failed:", e);
|
|
236
249
|
return undefined;
|
|
237
250
|
}
|
|
238
251
|
}
|
|
239
|
-
|
|
240
|
-
|
|
252
|
+
/** Diagnostics for an embedded-language document (see setLanguageMode).
|
|
253
|
+
* SQL documents are served over LSP (`textDocument/publishDiagnostics`).
|
|
254
|
+
* @experimental Embedded language support is experimental and may change. */
|
|
255
|
+
embeddedDiagnostics(source) {
|
|
256
|
+
if (this.currentLangMode === "sql" || !this.embeddedDiagnosticsRaw) {
|
|
241
257
|
return { ok: false, diagnostics: [] };
|
|
258
|
+
}
|
|
259
|
+
const lang = embeddedLangCode(this.currentLangMode);
|
|
242
260
|
try {
|
|
243
|
-
const count = this.withInput(
|
|
261
|
+
const count = this.withInput(source, (ptr, len) => this.embeddedDiagnosticsRaw(this.session, lang, ptr, len));
|
|
244
262
|
const text = this.readAndClearResult();
|
|
245
263
|
if (count < 0)
|
|
246
264
|
return { ok: false, diagnostics: [] };
|
|
@@ -250,48 +268,80 @@ export class Engine {
|
|
|
250
268
|
return { ok: true, diagnostics };
|
|
251
269
|
}
|
|
252
270
|
catch (e) {
|
|
253
|
-
console.warn("
|
|
271
|
+
console.warn("wasm_embedded_diagnostics failed:", e);
|
|
254
272
|
return { ok: false, diagnostics: [] };
|
|
255
273
|
}
|
|
256
274
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
return { ok: true, items };
|
|
275
|
+
/** Whether this runtime exposes the LSP JSON-RPC entry point. */
|
|
276
|
+
get lspSupported() {
|
|
277
|
+
return this.lspMessageRaw !== undefined;
|
|
278
|
+
}
|
|
279
|
+
/** Handle one LSP JSON-RPC message against this engine's in-process
|
|
280
|
+
* language server. Returns the outgoing messages as parsed objects
|
|
281
|
+
* (response plus server notifications). Drive it exactly like a
|
|
282
|
+
* standalone LSP server, lifecycle included. */
|
|
283
|
+
lspMessage(message) {
|
|
284
|
+
if (!this.lspMessageRaw) {
|
|
285
|
+
throw new Error("LSP not supported by this runtime");
|
|
269
286
|
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
287
|
+
const json = typeof message === "string" ? message : JSON.stringify(message);
|
|
288
|
+
const count = this.withInput(json, (ptr, len) => this.lspMessageRaw(this.session, ptr, len));
|
|
289
|
+
const text = this.readAndClearResult();
|
|
290
|
+
if (count < 0) {
|
|
291
|
+
throw new Error(text || "wasm_lsp_message failed");
|
|
273
292
|
}
|
|
293
|
+
return count === 0 ? [] : JSON.parse(text);
|
|
294
|
+
}
|
|
295
|
+
/** Validate SQL in one shot without an editor session. Schema-aware when
|
|
296
|
+
* a catalog is provided via `schemaDdl`, `tables`, or `views`. Throws on
|
|
297
|
+
* malformed input. */
|
|
298
|
+
analyze(sql, opts = {}) {
|
|
299
|
+
const request = { op: "analyze", sql };
|
|
300
|
+
if (opts.schemaDdl !== undefined)
|
|
301
|
+
request.schema_ddl = opts.schemaDdl;
|
|
302
|
+
if (opts.tables !== undefined)
|
|
303
|
+
request.tables = opts.tables;
|
|
304
|
+
if (opts.views !== undefined)
|
|
305
|
+
request.views = opts.views;
|
|
306
|
+
if (opts.modules !== undefined)
|
|
307
|
+
request.modules = opts.modules;
|
|
308
|
+
return this.rpc(request);
|
|
309
|
+
}
|
|
310
|
+
/** One-shot JSON-RPC op — the CLI `serve json` protocol. Returns the
|
|
311
|
+
* op's result value; throws on error. */
|
|
312
|
+
rpc(request, reviver) {
|
|
313
|
+
if (!this.rpcRaw) {
|
|
314
|
+
throw new Error("RPC not supported by this runtime");
|
|
315
|
+
}
|
|
316
|
+
const json = JSON.stringify(request);
|
|
317
|
+
const status = this.withInput(json, (ptr, len) => this.rpcRaw(this.session, ptr, len));
|
|
318
|
+
const text = this.readAndClearResult();
|
|
319
|
+
if (status !== 0) {
|
|
320
|
+
throw new Error(text || "wasm_rpc failed");
|
|
321
|
+
}
|
|
322
|
+
const frame = JSON.parse(text, reviver);
|
|
323
|
+
if (!frame.ok) {
|
|
324
|
+
throw new Error(frame.error ?? "rpc failed");
|
|
325
|
+
}
|
|
326
|
+
return frame.result;
|
|
274
327
|
}
|
|
275
|
-
/** Set the active language mode.
|
|
276
|
-
*
|
|
328
|
+
/** Set the active language mode. Diagnostics, semantic tokens, and extraction
|
|
329
|
+
* dispatch to the SQL or embedded implementation based on this mode.
|
|
277
330
|
* @experimental Embedded language support is experimental and may change. */
|
|
278
331
|
setLanguageMode(lang) {
|
|
279
332
|
this.currentLangMode = lang;
|
|
280
|
-
if (!this.setLanguageModeRaw)
|
|
281
|
-
return;
|
|
282
|
-
const code = lang === "sql" ? 0xFFFFFFFF : (lang === "python" ? 0 : 1);
|
|
283
|
-
this.setLanguageModeRaw(code);
|
|
284
333
|
}
|
|
285
334
|
/** Extract SQL fragments from `source`. Returns empty in SQL mode (O(1) fast path).
|
|
286
|
-
* In embedded mode the WASM extractor runs
|
|
335
|
+
* In embedded mode the WASM extractor runs for the language set by setLanguageMode.
|
|
287
336
|
* @experimental Embedded language support is experimental and may change. */
|
|
288
|
-
|
|
337
|
+
extract(source) {
|
|
289
338
|
if (this.currentLangMode === "sql")
|
|
290
339
|
return { ok: true, fragments: [] };
|
|
291
|
-
if (!this.
|
|
340
|
+
if (!this.embeddedExtractRaw)
|
|
292
341
|
return { ok: true, fragments: [] };
|
|
342
|
+
const lang = embeddedLangCode(this.currentLangMode);
|
|
293
343
|
try {
|
|
294
|
-
const count = this.withInput(source, (ptr, len) => this.
|
|
344
|
+
const count = this.withInput(source, (ptr, len) => this.embeddedExtractRaw(lang, ptr, len));
|
|
295
345
|
const text = this.readAndClearResult();
|
|
296
346
|
if (count < 0)
|
|
297
347
|
return { ok: false, fragments: [] };
|
|
@@ -301,14 +351,14 @@ export class Engine {
|
|
|
301
351
|
return { ok: true, fragments };
|
|
302
352
|
}
|
|
303
353
|
catch (e) {
|
|
304
|
-
console.warn("
|
|
354
|
+
console.warn("wasm_embedded_extract failed:", e);
|
|
305
355
|
return { ok: false, fragments: [] };
|
|
306
356
|
}
|
|
307
357
|
}
|
|
308
358
|
setSqliteVersion(version) {
|
|
309
359
|
if (!this.setSqliteVersionRaw)
|
|
310
360
|
return;
|
|
311
|
-
const status = this.withInput(version, (ptr, len) => this.setSqliteVersionRaw(ptr, len));
|
|
361
|
+
const status = this.withInput(version, (ptr, len) => this.setSqliteVersionRaw(this.session, ptr, len));
|
|
312
362
|
const detail = this.readAndClearResult();
|
|
313
363
|
if (status !== 0) {
|
|
314
364
|
throw new Error(detail || `wasm_set_sqlite_version failed with status ${status}`);
|
|
@@ -317,7 +367,7 @@ export class Engine {
|
|
|
317
367
|
setCflag(name) {
|
|
318
368
|
if (!this.setCflagRaw)
|
|
319
369
|
return;
|
|
320
|
-
const status = this.withInput(name, (ptr, len) => this.setCflagRaw(ptr, len));
|
|
370
|
+
const status = this.withInput(name, (ptr, len) => this.setCflagRaw(this.session, ptr, len));
|
|
321
371
|
const detail = this.readAndClearResult();
|
|
322
372
|
if (status !== 0) {
|
|
323
373
|
throw new Error(detail || `wasm_set_cflag failed with status ${status}`);
|
|
@@ -326,7 +376,7 @@ export class Engine {
|
|
|
326
376
|
clearCflag(name) {
|
|
327
377
|
if (!this.clearCflagRaw)
|
|
328
378
|
return;
|
|
329
|
-
const status = this.withInput(name, (ptr, len) => this.clearCflagRaw(ptr, len));
|
|
379
|
+
const status = this.withInput(name, (ptr, len) => this.clearCflagRaw(this.session, ptr, len));
|
|
330
380
|
const detail = this.readAndClearResult();
|
|
331
381
|
if (status !== 0) {
|
|
332
382
|
throw new Error(detail || `wasm_clear_cflag failed with status ${status}`);
|
|
@@ -335,7 +385,7 @@ export class Engine {
|
|
|
335
385
|
clearAllCflags() {
|
|
336
386
|
if (!this.clearAllCflagsRaw)
|
|
337
387
|
return;
|
|
338
|
-
this.clearAllCflagsRaw();
|
|
388
|
+
this.clearAllCflagsRaw(this.session);
|
|
339
389
|
}
|
|
340
390
|
getCflagList() {
|
|
341
391
|
if (!this.getCflagListRaw)
|
|
@@ -351,16 +401,24 @@ export class Engine {
|
|
|
351
401
|
return [];
|
|
352
402
|
}
|
|
353
403
|
}
|
|
404
|
+
/** Set the schema session context from structured catalog JSON, via the
|
|
405
|
+
* `syntaqlite/setSessionContext` extension request. Throws on rejection. */
|
|
354
406
|
setSessionContext(json) {
|
|
355
407
|
this.sessionContext = { kind: "json", json };
|
|
356
408
|
this.applySessionContextJson(json);
|
|
357
409
|
}
|
|
358
410
|
clearSessionContext() {
|
|
359
411
|
this.sessionContext = null;
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
412
|
+
try {
|
|
413
|
+
this.applySessionContext({});
|
|
414
|
+
}
|
|
415
|
+
catch (e) {
|
|
416
|
+
// No dialect loaded yet means there is no context to clear.
|
|
417
|
+
console.warn("clearSessionContext skipped:", e);
|
|
418
|
+
}
|
|
363
419
|
}
|
|
420
|
+
/** Set the schema session context from DDL. DDL that fails to parse is
|
|
421
|
+
* reported in `error`; statements that did parse are still applied. */
|
|
364
422
|
setSessionContextDdl(sql) {
|
|
365
423
|
const result = this.applySessionContextDdl(sql);
|
|
366
424
|
if (result.ok)
|
|
@@ -368,22 +426,35 @@ export class Engine {
|
|
|
368
426
|
return result;
|
|
369
427
|
}
|
|
370
428
|
applySessionContextJson(json) {
|
|
371
|
-
|
|
372
|
-
return;
|
|
373
|
-
const status = this.withInput(json, (ptr, len) => this.setSessionContextRaw(ptr, len));
|
|
374
|
-
const detail = this.readAndClearResult();
|
|
375
|
-
if (status !== 0) {
|
|
376
|
-
throw new Error(detail || `wasm_set_session_context failed with status ${status}`);
|
|
377
|
-
}
|
|
429
|
+
this.applySessionContext({ context: JSON.parse(json) });
|
|
378
430
|
}
|
|
379
431
|
applySessionContextDdl(sql) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
432
|
+
try {
|
|
433
|
+
const errors = this.applySessionContext({ ddl: sql });
|
|
434
|
+
if (errors.length > 0)
|
|
435
|
+
return { ok: false, error: errors.join("\n") };
|
|
436
|
+
return { ok: true };
|
|
437
|
+
}
|
|
438
|
+
catch (e) {
|
|
439
|
+
return { ok: false, error: e.message };
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/** Send a `syntaqlite/setSessionContext` extension request to the
|
|
443
|
+
* language server. Returns the (possibly empty) DDL parse errors;
|
|
444
|
+
* throws if the server rejects the request. */
|
|
445
|
+
applySessionContext(params) {
|
|
446
|
+
const id = `session-context-${this.contextSeq++}`;
|
|
447
|
+
const out = this.lspMessage({
|
|
448
|
+
jsonrpc: "2.0",
|
|
449
|
+
id,
|
|
450
|
+
method: "syntaqlite/setSessionContext",
|
|
451
|
+
params,
|
|
452
|
+
});
|
|
453
|
+
const response = out.find((m) => m && typeof m === "object" && m.id === id);
|
|
454
|
+
if (response?.error) {
|
|
455
|
+
throw new Error(response.error.message);
|
|
456
|
+
}
|
|
457
|
+
return response?.result?.errors ?? [];
|
|
387
458
|
}
|
|
388
459
|
}
|
|
389
460
|
// Global name the Emscripten MODULARIZE build assigns the factory to when
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { Engine, type EngineConfig, type CflagEntry } from "./engine.js";
|
|
2
|
+
export { attachLspPort, type LspPortLike } from "./lsp.js";
|
|
2
3
|
export { DialectManager, BUILTIN_PRESETS, type DialectPreset, type DialectManagerConfig } from "./dialect.js";
|
|
3
4
|
export { DialectConfigManager, VERSION_OPTIONS, versionToInt } from "./dialect_config.js";
|
|
4
5
|
export { SchemaContextManager, parseSimple, type SchemaFormat, type SessionContextPayload } from "./schema.js";
|
|
5
|
-
export type { EmscriptenModule, EmscriptenModuleConfig, AstFieldValue, AstListNode, AstRegularNode, AstJsonNode, KeywordCase, FormatOptions,
|
|
6
|
+
export type { EmscriptenModule, EmscriptenModuleConfig, AstFieldValue, AstListNode, AstRegularNode, AstJsonNode, KeywordCase, FormatOptions, ParseResult, TokenEntry, DialectBinding, DiagnosticDetail, HelpDetail, DiagnosticEntry, DiagnosticsResult, AnalyzeDiagnostic, RelationSpec, AnalyzeOptions, AnalyzeResult, CompletionEntry, CompletionsResult, EmbeddedLanguage, EmbeddedHole, EmbeddedFragment, EmbeddedExtractResult, } from "./types.js";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/G,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC/G,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright 2025 The syntaqlite Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License, Version 2.0.
|
|
3
3
|
export { Engine } from "./engine.js";
|
|
4
|
+
export { attachLspPort } from "./lsp.js";
|
|
4
5
|
export { DialectManager, BUILTIN_PRESETS } from "./dialect.js";
|
|
5
6
|
export { DialectConfigManager, VERSION_OPTIONS, versionToInt } from "./dialect_config.js";
|
|
6
7
|
export { SchemaContextManager, parseSimple } from "./schema.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAElD,OAAO,EAAE,MAAM,EAAsC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAiD,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAiD,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAElD,OAAO,EAAE,MAAM,EAAsC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,aAAa,EAAoB,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAiD,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAiD,MAAM,aAAa,CAAC"}
|
package/dist/lsp.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Engine } from "./engine.js";
|
|
2
|
+
/** The subset of `MessagePort` / `DedicatedWorkerGlobalScope` needed to
|
|
3
|
+
* bridge LSP messages. */
|
|
4
|
+
export interface LspPortLike {
|
|
5
|
+
postMessage(message: unknown): void;
|
|
6
|
+
onmessage: ((ev: {
|
|
7
|
+
data: unknown;
|
|
8
|
+
}) => void) | null;
|
|
9
|
+
}
|
|
10
|
+
/** Bridge LSP JSON-RPC messages between a `postMessage` channel and the
|
|
11
|
+
* engine's in-process language server, so a standard browser LSP client
|
|
12
|
+
* (CodeMirror, Monaco, ...) can talk to syntaqlite running in a Web Worker:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* const engine = new Engine();
|
|
16
|
+
* await engine.load();
|
|
17
|
+
* await new DialectManager().loadDefault(engine);
|
|
18
|
+
* attachLspPort(engine, self as unknown as LspPortLike);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function attachLspPort(engine: Engine, port: LspPortLike): void;
|
|
22
|
+
//# sourceMappingURL=lsp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC;2BAC2B;AAC3B,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;QAAC,IAAI,EAAE,OAAO,CAAA;KAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAMrE"}
|
package/dist/lsp.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright 2025 The syntaqlite Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License, Version 2.0.
|
|
3
|
+
/** Bridge LSP JSON-RPC messages between a `postMessage` channel and the
|
|
4
|
+
* engine's in-process language server, so a standard browser LSP client
|
|
5
|
+
* (CodeMirror, Monaco, ...) can talk to syntaqlite running in a Web Worker:
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* const engine = new Engine();
|
|
9
|
+
* await engine.load();
|
|
10
|
+
* await new DialectManager().loadDefault(engine);
|
|
11
|
+
* attachLspPort(engine, self as unknown as LspPortLike);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export function attachLspPort(engine, port) {
|
|
15
|
+
port.onmessage = (ev) => {
|
|
16
|
+
for (const out of engine.lspMessage(ev.data)) {
|
|
17
|
+
port.postMessage(out);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=lsp.js.map
|
package/dist/lsp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp.js","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAWlD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,IAAiB;IAC7D,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE;QACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,IAAc,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|