syntaqlite 0.5.10 → 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 CHANGED
@@ -1,13 +1,16 @@
1
1
  # syntaqlite
2
2
 
3
- SQLite SQL parser, formatter, and validator for the browser — powered by WebAssembly.
3
+ SQLite SQL parser, formatter, and language server for the browser — powered
4
+ by WebAssembly.
4
5
 
5
6
  Built from SQLite's own grammar for 100% syntax compatibility.
6
7
 
7
8
  - **Format** SQL with configurable line width, keyword casing, and semicolons
8
- - **Parse** SQL into a full concrete syntax tree
9
- - **Validate** SQL with diagnostics for unknown tables, columns, and functions
10
- - **Complete** keywords, table names, column names, and functions
9
+ - **Parse** SQL into a full syntax tree
10
+ - **Language server**: diagnostics, completions, hover, and semantic tokens
11
+ over standard LSP JSON-RPC, schema-aware via your DDL
12
+ - **Analyze** SQL in one shot: schema-aware diagnostics without an
13
+ editor session
11
14
 
12
15
  ## Install
13
16
 
@@ -18,23 +21,83 @@ npm install syntaqlite
18
21
  ## Usage
19
22
 
20
23
  ```ts
21
- import { Engine } from "syntaqlite";
24
+ import { Engine, DialectManager } from "syntaqlite";
22
25
 
23
26
  const engine = new Engine();
24
27
  await engine.load();
28
+ await new DialectManager().loadDefault(engine);
25
29
 
26
- // Format SQL
27
- const result = engine.format("select id,name from users where id=1");
28
- console.log(result.sql);
29
- // SELECT id, name FROM users WHERE id = 1
30
+ // Format SQL. Options mirror the Rust FormatConfig; omitted fields use
31
+ // the formatter defaults.
32
+ console.log(engine.format("select id,name from users where id=1", {
33
+ lineWidth: 80,
34
+ indentWidth: 2,
35
+ keywordCase: "upper",
36
+ semicolons: true,
37
+ }));
38
+ // SELECT id, name FROM users WHERE id = 1;
30
39
 
31
- // Parse SQL to AST (JSON)
32
- const ast = engine.astJson("SELECT 1");
33
- console.log(ast);
40
+ // Parse SQL to AST (JSON); parse errors are data, not exceptions
41
+ const {statements, errors} = engine.parse("SELECT 1");
34
42
 
35
- // Validate SQL
36
- const diagnostics = engine.diagnostics("SELECT * FROM missing_table");
37
- console.log(diagnostics.entries);
43
+ // Tokenize SQL
44
+ const tokens = engine.tokenize("SELECT 1");
45
+
46
+ // Give the analyzer your schema
47
+ engine.setSessionContextDdl("CREATE TABLE users(id INTEGER, name TEXT);");
48
+ ```
49
+
50
+ ## Language server
51
+
52
+ Editor features are served by an in-process LSP server. Drive it with
53
+ JSON-RPC messages:
54
+
55
+ ```ts
56
+ engine.lspMessage({ jsonrpc: "2.0", id: 1, method: "initialize", params: { capabilities: {} } });
57
+ engine.lspMessage({ jsonrpc: "2.0", method: "initialized", params: {} });
58
+
59
+ const out = engine.lspMessage({
60
+ jsonrpc: "2.0",
61
+ method: "textDocument/didOpen",
62
+ params: {
63
+ textDocument: { uri: "file:///q.sql", languageId: "sql", version: 1, text: "SELECT * FROM missing" },
64
+ },
65
+ });
66
+ // out includes a textDocument/publishDiagnostics notification.
67
+ ```
68
+
69
+ Or run it in a Web Worker and connect a standard LSP client
70
+ (CodeMirror, Monaco, ...):
71
+
72
+ ```ts
73
+ // worker.ts
74
+ import { Engine, DialectManager, attachLspPort, type LspPortLike } from "syntaqlite";
75
+
76
+ const engine = new Engine();
77
+ await engine.load();
78
+ await new DialectManager().loadDefault(engine);
79
+ attachLspPort(engine, self as unknown as LspPortLike);
80
+ ```
81
+
82
+ Beyond standard LSP, the server accepts a `syntaqlite/setSessionContext`
83
+ extension request to set or clear the schema catalog
84
+ (`Engine.setSessionContextDdl` wraps it).
85
+
86
+ ## One-shot analysis
87
+
88
+ For programmatic validation without an editor session. The catalog can
89
+ come from DDL, from structured `tables` and `views`, or both:
90
+
91
+ ```ts
92
+ const analysis = engine.analyze("SELECT c FROM users", {
93
+ schemaDdl: "CREATE TABLE users(id INTEGER, name TEXT);",
94
+ });
95
+ console.log(analysis.diagnostics);
96
+ // [{ message: "unknown column 'c'", severity: "error", ... }]
97
+
98
+ engine.analyze("SELECT id FROM logs", {
99
+ tables: [{name: "logs", columns: ["id", "ts"]}],
100
+ });
38
101
  ```
39
102
 
40
103
  ## Documentation
package/dist/engine.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AstResult, CompletionsResult, DiagnosticsResult, DialectBinding, EmbeddedExtractResult, EmbeddedLanguage, FormatOptions, FormatResult } from "./types.js";
1
+ import type { AnalyzeOptions, AnalyzeResult, DiagnosticsResult, DialectBinding, EmbeddedExtractResult, EmbeddedLanguage, EmscriptenModule, FormatOptions, ParseResult, TokenEntry } from "./types.js";
2
2
  export interface CflagEntry {
3
3
  name: string;
4
4
  minVersion: number;
@@ -7,6 +7,10 @@ export interface CflagEntry {
7
7
  export interface EngineConfig {
8
8
  runtimeJsPath?: string;
9
9
  runtimeWasmPath?: string;
10
+ /** Reuse an already-loaded runtime module instead of loading a new one.
11
+ * The engines share linear memory and loaded dialect modules but get
12
+ * independent WASM sessions (dialect, schema context, analysis state). */
13
+ runtime?: EmscriptenModule;
10
14
  }
11
15
  export declare class Engine {
12
16
  status: string;
@@ -15,16 +19,12 @@ export declare class Engine {
15
19
  private module;
16
20
  private encoder;
17
21
  private decoder;
22
+ private sessionNewRaw;
23
+ private sessionFreeRaw;
18
24
  private setDialectRaw;
19
25
  private clearDialectRaw;
20
26
  private allocRaw;
21
27
  private freeRaw;
22
- private astRaw;
23
- private astJsonRaw;
24
- private fmtRaw;
25
- private diagnosticsRaw;
26
- private semanticTokensRaw;
27
- private completionsRaw;
28
28
  private resultPtrRaw;
29
29
  private resultLenRaw;
30
30
  private resultFreeRaw;
@@ -33,16 +33,25 @@ export declare class Engine {
33
33
  private clearCflagRaw;
34
34
  private clearAllCflagsRaw;
35
35
  private getCflagListRaw;
36
- private setSessionContextRaw;
37
- private clearSessionContextRaw;
38
- private setSessionContextDdlRaw;
39
- private setLanguageModeRaw;
40
- private extractRaw;
36
+ private embeddedExtractRaw;
37
+ private embeddedDiagnosticsRaw;
38
+ private embeddedSemanticTokensRaw;
39
+ private lspMessageRaw;
40
+ private rpcRaw;
41
41
  private currentLangMode;
42
+ /** Handle for the WASM session all calls run against. 0 = not created yet. */
43
+ private session;
44
+ /** Sequence for `syntaqlite/setSessionContext` request ids. */
45
+ private contextSeq;
42
46
  /** Last session context applied, so it can be re-applied after dialect switches. */
43
47
  private sessionContext;
44
48
  constructor(config?: EngineConfig);
45
49
  get ready(): boolean;
50
+ /** The underlying Emscripten module, e.g. to share with another Engine
51
+ * via `EngineConfig.runtime`. Undefined until load() completes. */
52
+ get runtimeModule(): EmscriptenModule | undefined;
53
+ /** Free the WASM session. The engine must not be used after this. */
54
+ dispose(): void;
46
55
  updateStatus(text: string, isError?: boolean): void;
47
56
  load(): Promise<void>;
48
57
  private resolveRuntimeFn;
@@ -56,31 +65,54 @@ export declare class Engine {
56
65
  setDialectPointer(ptr: number): void;
57
66
  private reapplySessionContext;
58
67
  clearDialectPointer(): void;
59
- runAst(sql: string): FormatResult;
60
- runAstJson(sql: string): AstResult;
61
- runFmt(sql: string, opts: FormatOptions): FormatResult;
62
- /** Run semantic token analysis over a byte range. Returns a pre-encoded
63
- * Uint32Array (5 u32s per token: deltaLine, deltaStartChar, length,
64
- * legendIndex, 0) ready for Monaco, or undefined on failure.
65
- * Pass rangeStart=0 and rangeEnd=0xFFFFFFFF for the full document. */
66
- runSemanticTokens(sql: string, rangeStart?: number, rangeEnd?: number, version?: number): Uint32Array | undefined;
67
- runDiagnostics(sql: string, version?: number): DiagnosticsResult;
68
- runCompletions(sql: string, offset: number, version?: number): CompletionsResult;
69
- /** Set the active language mode. Must be called before running diagnostics or semantic
70
- * tokens so the WASM can dispatch to the correct implementation automatically.
68
+ /** Parse SQL into AST JSON. Parse errors are data, not exceptions. */
69
+ parse(sql: string): ParseResult;
70
+ /** Format SQL. Throws when the input cannot be formatted. */
71
+ format(sql: string, opts?: FormatOptions): string;
72
+ /** Tokenize SQL. Throws on malformed input. */
73
+ tokenize(sql: string): TokenEntry[];
74
+ /** Semantic tokens for an embedded-language document (see setLanguageMode).
75
+ * Returns a pre-encoded Uint32Array (5 u32s per token) or undefined on
76
+ * failure. SQL documents are served over LSP (`textDocument/semanticTokens`).
77
+ * @experimental Embedded language support is experimental and may change. */
78
+ embeddedSemanticTokens(source: string): Uint32Array | undefined;
79
+ /** Diagnostics for an embedded-language document (see setLanguageMode).
80
+ * SQL documents are served over LSP (`textDocument/publishDiagnostics`).
81
+ * @experimental Embedded language support is experimental and may change. */
82
+ embeddedDiagnostics(source: string): DiagnosticsResult;
83
+ /** Whether this runtime exposes the LSP JSON-RPC entry point. */
84
+ get lspSupported(): boolean;
85
+ /** Handle one LSP JSON-RPC message against this engine's in-process
86
+ * language server. Returns the outgoing messages as parsed objects
87
+ * (response plus server notifications). Drive it exactly like a
88
+ * standalone LSP server, lifecycle included. */
89
+ lspMessage(message: string | object): unknown[];
90
+ /** Validate SQL in one shot without an editor session. Schema-aware when
91
+ * a catalog is provided via `schemaDdl`, `tables`, or `views`. Throws on
92
+ * malformed input. */
93
+ analyze(sql: string, opts?: AnalyzeOptions): AnalyzeResult;
94
+ /** One-shot JSON-RPC op — the CLI `serve json` protocol. Returns the
95
+ * op's result value; throws on error. */
96
+ private rpc;
97
+ /** Set the active language mode. Diagnostics, semantic tokens, and extraction
98
+ * dispatch to the SQL or embedded implementation based on this mode.
71
99
  * @experimental Embedded language support is experimental and may change. */
72
100
  setLanguageMode(lang: "sql" | EmbeddedLanguage): void;
73
101
  /** Extract SQL fragments from `source`. Returns empty in SQL mode (O(1) fast path).
74
- * In embedded mode the WASM extractor runs based on the language set by setLanguageMode.
102
+ * In embedded mode the WASM extractor runs for the language set by setLanguageMode.
75
103
  * @experimental Embedded language support is experimental and may change. */
76
- runExtract(source: string): EmbeddedExtractResult;
104
+ extract(source: string): EmbeddedExtractResult;
77
105
  setSqliteVersion(version: string): void;
78
106
  setCflag(name: string): void;
79
107
  clearCflag(name: string): void;
80
108
  clearAllCflags(): void;
81
109
  getCflagList(): CflagEntry[];
110
+ /** Set the schema session context from structured catalog JSON, via the
111
+ * `syntaqlite/setSessionContext` extension request. Throws on rejection. */
82
112
  setSessionContext(json: string): void;
83
113
  clearSessionContext(): void;
114
+ /** Set the schema session context from DDL. DDL that fails to parse is
115
+ * reported in `error`; statements that did parse are still applied. */
84
116
  setSessionContextDdl(sql: string): {
85
117
  ok: true;
86
118
  } | {
@@ -89,5 +121,9 @@ export declare class Engine {
89
121
  };
90
122
  private applySessionContextJson;
91
123
  private applySessionContextDdl;
124
+ /** Send a `syntaqlite/setSessionContext` extension request to the
125
+ * language server. Returns the (possibly empty) DDL parse errors;
126
+ * throws if the server rejects the request. */
127
+ private applySessionContext;
92
128
  }
93
129
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EAErB,gBAAgB,EAChB,gBAAgB,EAEhB,aAAa,EACb,WAAW,EACX,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;+EAE2E;IAC3E,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AASD,qBAAa,MAAM;IACjB,MAAM,SAAgB;IACtB,WAAW,UAAS;IAEpB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,yBAAyB,CAAiC;IAClE,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,eAAe,CAAmC;IAC1D,8EAA8E;IAC9E,OAAO,CAAC,OAAO,CAAK;IACpB,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAAK;IACvB,oFAAoF;IACpF,OAAO,CAAC,cAAc,CAA0E;gBAEpF,MAAM,GAAE,YAAiB;IAIrC,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED;wEACoE;IACpE,IAAI,aAAa,IAAI,gBAAgB,GAAG,SAAS,CAEhD;IAED,qEAAqE;IACrE,OAAO,IAAI,IAAI;IAOf,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,IAAI;IAK3C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B3B,OAAO,CAAC,gBAAgB;IAQxB,gEAAgE;IAChE,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,MAAM;IAMR,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2B9E,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,kBAAkB;IAQ1B,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAYpC,OAAO,CAAC,qBAAqB;IAS7B,mBAAmB,IAAI,IAAI;IAM3B,sEAAsE;IACtE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAK/B,6DAA6D;IAC7D,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,aAAkB,GAAG,MAAM;IAUrD,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE;IAKnC;;;kFAG8E;IAC9E,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAuB/D;;kFAE8E;IAC9E,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAoBtD,iEAAiE;IACjE,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;qDAGiD;IACjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE;IAa/C;;2BAEuB;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,aAAa;IAS9D;8CAC0C;IAC1C,OAAO,CAAC,GAAG;IAwBX;;kFAE8E;IAC9E,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,gBAAgB,GAAG,IAAI;IAIrD;;kFAE8E;IAC9E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB;IAiB9C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS5B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS9B,cAAc,IAAI,IAAI;IAKtB,YAAY,IAAI,UAAU,EAAE;IAY5B;iFAC6E;IAC7E,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKrC,mBAAmB,IAAI,IAAI;IAU3B;4EACwE;IACxE,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;QAAC,EAAE,EAAE,IAAI,CAAA;KAAC,GAAG;QAAC,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IAM1E,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,sBAAsB;IAU9B;;oDAEgD;IAChD,OAAO,CAAC,mBAAmB;CAc5B"}
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.setSessionContextRaw = undefined;
31
- this.clearSessionContextRaw = undefined;
32
- this.setSessionContextDdlRaw = undefined;
33
- this.setLanguageModeRaw = undefined;
34
- this.extractRaw = undefined;
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.setSessionContextRaw = this.tryResolveRuntimeFn("wasm_set_session_context");
69
- this.clearSessionContextRaw = this.tryResolveRuntimeFn("wasm_clear_session_context");
70
- this.setSessionContextDdlRaw = this.tryResolveRuntimeFn("wasm_set_session_context_ddl");
71
- this.setLanguageModeRaw = this.tryResolveRuntimeFn("wasm_set_language_mode");
72
- this.extractRaw = this.tryResolveRuntimeFn("wasm_extract");
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 invalidates the LSP host on dialect switch, discarding any
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
- runAst(sql) {
187
- if (!this.astRaw)
188
- return { ok: false, text: "AST dump not supported by this runtime" };
189
- const status = this.withInput(sql, (ptr, len) => this.astRaw(ptr, len));
190
- const text = this.readAndClearResult();
191
- return { ok: status === 0, text };
192
- }
193
- runAstJson(sql) {
194
- if (!this.astJsonRaw)
195
- return { ok: false, error: "AST JSON not supported by this runtime" };
196
- const count = this.withInput(sql, (ptr, len) => this.astJsonRaw(ptr, len));
197
- const text = this.readAndClearResult();
198
- if (count < 0)
199
- return { ok: false, error: text };
200
- if (count === 0)
201
- return { ok: true, statements: [] };
202
- try {
203
- return { ok: true, statements: JSON.parse(text, (_, v) => (v === null ? undefined : v)) };
204
- }
205
- catch (e) {
206
- return { ok: false, error: `JSON parse error: ${e.message}` };
207
- }
208
- }
209
- runFmt(sql, opts) {
210
- const status = this.withInput(sql, (ptr, len) => this.fmtRaw(ptr, len, opts.lineWidth, opts.indentWidth, opts.keywordCase, opts.semicolons ? 1 : 0));
211
- const text = this.readAndClearResult();
212
- return { ok: status === 0, text };
213
- }
214
- /** Run semantic token analysis over a byte range. Returns a pre-encoded
215
- * Uint32Array (5 u32s per token: deltaLine, deltaStartChar, length,
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(sql, (ptr, len) => this.semanticTokensRaw(ptr, len, rangeStart, rangeEnd, version));
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("wasm_semantic_tokens failed:", e);
248
+ console.warn("wasm_embedded_semantic_tokens failed:", e);
236
249
  return undefined;
237
250
  }
238
251
  }
239
- runDiagnostics(sql, version = 1) {
240
- if (!this.diagnosticsRaw)
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(sql, (ptr, len) => this.diagnosticsRaw(ptr, len, version));
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("wasm_diagnostics failed:", e);
271
+ console.warn("wasm_embedded_diagnostics failed:", e);
254
272
  return { ok: false, diagnostics: [] };
255
273
  }
256
274
  }
257
- runCompletions(sql, offset, version = 1) {
258
- if (!this.completionsRaw)
259
- return { ok: false, items: [] };
260
- try {
261
- const count = this.withInput(sql, (ptr, len) => this.completionsRaw(ptr, len, offset >>> 0, version));
262
- const text = this.readAndClearResult();
263
- if (count < 0)
264
- return { ok: false, items: [] };
265
- if (count === 0)
266
- return { ok: true, items: [] };
267
- const items = JSON.parse(text);
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
- catch (e) {
271
- console.warn("wasm_completions failed:", e);
272
- return { ok: false, items: [] };
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. Must be called before running diagnostics or semantic
276
- * tokens so the WASM can dispatch to the correct implementation automatically.
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 based on the language set by setLanguageMode.
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
- runExtract(source) {
337
+ extract(source) {
289
338
  if (this.currentLangMode === "sql")
290
339
  return { ok: true, fragments: [] };
291
- if (!this.extractRaw)
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.extractRaw(ptr, len));
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("wasm_extract failed:", e);
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
- if (!this.clearSessionContextRaw)
361
- return;
362
- this.clearSessionContextRaw();
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
- if (!this.setSessionContextRaw)
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
- if (!this.setSessionContextDdlRaw)
381
- return { ok: false, error: "DDL context not supported" };
382
- const status = this.withInput(sql, (ptr, len) => this.setSessionContextDdlRaw(ptr, len));
383
- const detail = this.readAndClearResult();
384
- if (status !== 0)
385
- return { ok: false, error: detail || "DDL parse failed" };
386
- return { ok: true };
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
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,kDAAkD;AAwBlD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,+BAA+B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAC1F,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,iCAAiC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAS9F,MAAM,OAAO,MAAM;IAoCjB,YAAY,SAAuB,EAAE;QAnCrC,WAAM,GAAG,YAAY,CAAC;QACtB,gBAAW,GAAG,KAAK,CAAC;QAGZ,WAAM,GAAiC,SAAS,CAAC;QACjD,YAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAC5B,YAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAE5B,kBAAa,GAAuB,SAAS,CAAC;QAC9C,oBAAe,GAAuB,SAAS,CAAC;QAChD,aAAQ,GAAuB,SAAS,CAAC;QACzC,YAAO,GAAuB,SAAS,CAAC;QACxC,WAAM,GAAuB,SAAS,CAAC;QACvC,eAAU,GAAuB,SAAS,CAAC;QAC3C,WAAM,GAAuB,SAAS,CAAC;QACvC,mBAAc,GAAuB,SAAS,CAAC;QAC/C,sBAAiB,GAAuB,SAAS,CAAC;QAClD,mBAAc,GAAuB,SAAS,CAAC;QAC/C,iBAAY,GAAuB,SAAS,CAAC;QAC7C,iBAAY,GAAuB,SAAS,CAAC;QAC7C,kBAAa,GAAuB,SAAS,CAAC;QAC9C,wBAAmB,GAAuB,SAAS,CAAC;QACpD,gBAAW,GAAuB,SAAS,CAAC;QAC5C,kBAAa,GAAuB,SAAS,CAAC;QAC9C,sBAAiB,GAAuB,SAAS,CAAC;QAClD,oBAAe,GAAuB,SAAS,CAAC;QAChD,yBAAoB,GAAuB,SAAS,CAAC;QACrD,2BAAsB,GAAuB,SAAS,CAAC;QACvD,4BAAuB,GAAuB,SAAS,CAAC;QACxD,uBAAkB,GAAuB,SAAS,CAAC;QACnD,eAAU,GAAuB,SAAS,CAAC;QAC3C,oBAAe,GAA6B,KAAK,CAAC;QAC1D,oFAAoF;QAC5E,mBAAc,GAAqE,IAAI,CAAC;QAG9F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,OAAO,GAAG,KAAK;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAC/D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;QAC/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC3E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QACvE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;QACjF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;QACrF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,CAAC;QACxF,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC7D,CAAC;IAEO,gBAAgB,CAAC,MAAc;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAO,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,gEAAgE;IACxD,mBAAmB,CAAC,MAAc;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAO,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QACtC,OAAO,OAAO,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACnD,CAAC;IAEO,gBAAgB,CACtB,MAAc,EACd,aAAkD,SAAS;QAE3D,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;YAC3D,OAAO,UAAU,CAAC,MAAM,CAAW,CAAC;QACtC,CAAC;QACD,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC,IAAI,MAAM,EAAE,CAAW,CAAC;QAC5C,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,wCAAwC;YAC1C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,MAAO,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,MAAc;QAClD,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,IAAI,CAAC,MAAO,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAO,CAAC,kBAAkB,CAClD,GAAG,EACH,EAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAC,EAChD,UAAU,CACX,CAAC;YACF,IAAI,YAAY,IAAI,OAAQ,YAA8B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/E,MAAM,YAAY,CAAC;YACrB,CAAC;QACH,CAAC;QACD,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACrD,GAAG,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,iCAAiC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,GAAG,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,MAAM,uBAAuB,CAAC,CAAC;QACzE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAC,CAAC;IACtC,CAAC;IAEO,SAAS,CAAI,GAAW,EAAE,EAAmC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAa,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAa,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,aAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,GAAW;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,uCAAuC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,sEAAsE;QACtE,oEAAoE;QACpE,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,wCAAwC,EAAC,CAAC;QACrF,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,OAAO,EAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE,IAAI,EAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,GAAW;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wCAAwC,EAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC;QACnD,IAAI,CAAC;YACH,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAsB,CAAW,CAAC,OAAO,EAAE,EAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAW,EAAE,IAAmB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC9C,IAAI,CAAC,MAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpG,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,OAAO,EAAC,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE,IAAI,EAAC,CAAC;IAClC,CAAC;IAED;;;2EAGuE;IACvE,iBAAiB,CACf,GAAW,EACX,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,UAAU,EACrB,OAAO,GAAG,CAAC;QAEX,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,iBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,CACjE,CAAC;YACF,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,aAAc,EAAE,CAAC;gBACtB,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,CAAC;YACD,sEAAsE;YACtE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAa,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAa,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,aAAc,EAAE,CAAC;YACtB,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAO,GAAG,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAe,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;YACzF,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;YACnD,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;YACpD,MAAM,WAAW,GAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAC,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,MAAc,EAAE,OAAO,GAAG,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC7C,IAAI,CAAC,cAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CACtD,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;YAC7C,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;YAC9C,MAAM,KAAK,GAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD;;kFAE8E;IAC9E,eAAe,CAAC,IAA8B;QAC5C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAO;QACrC,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;kFAE8E;IAC9E,UAAU,CAAC,MAAc;QACvB,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK;YAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACvC,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;YACjD,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;YAClD,MAAM,SAAS,GAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;YACxC,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,8CAA8C,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,WAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,qCAAqC,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,aAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,uCAAuC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,IAAI,CAAC,cAAc,GAAG,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC;QAC3C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACzC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,oBAAoB,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,cAAc,GAAG,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,uBAAuB,CAAC,IAAY;QAC1C,IAAI,CAAC,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,+CAA+C,MAAM,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,GAAW;QACxC,IAAI,CAAC,IAAI,CAAC,uBAAuB;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAwB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,IAAI,MAAM,KAAK,CAAC;YAAE,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,kBAAkB,EAAC,CAAC;QAC1E,OAAO,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;IACpB,CAAC;CACF;AAID,0EAA0E;AAC1E,yEAAyE;AACzE,8BAA8B;AAC9B,MAAM,YAAY,GAAG,yBAAyB,CAAC;AAE/C,KAAK,UAAU,iBAAiB,CAAC,MAAoB;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,IAAI,kBAAkB,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe;WAClC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACpG,MAAM,YAAY,GAA2B;QAC3C,YAAY,EAAE,IAAI;QAClB,UAAU,CAAC,IAAY;YACrB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACvE,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,MAAc;IACjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,wEAAwE;QACxE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,QAAQ,GAAI,UAAsC,CAAC,YAAY,CAAC,CAAC;YACvE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,QAA0B,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;YACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;gBACnB,MAAM,EAAE,GAAI,UAAsC,CAAC,YAAY,CAAC,CAAC;gBACjE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,mBAAmB,YAAY,EAAE,CAAC,CAAC,CAAC;oBAC9D,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,EAAoB,CAAC,CAAC;YAChC,CAAC,CAAC;YACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC,CAAC;YACrE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAC1E,4DAA4D;IAC5D,OAAO,MAAM,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9E,MAAM,OAAO,GAAI,GAA2B,CAAC,OAAO,IAAI,GAAG,CAAC;QAC5D,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,oCAAoC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,OAAyB,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC"}
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, FormatResult, AstResultOk, AstResultError, AstResult, DialectBinding, DiagnosticDetail, HelpDetail, DiagnosticEntry, DiagnosticsResult, CompletionEntry, CompletionsResult, EmbeddedLanguage, EmbeddedHole, EmbeddedFragment, EmbeddedExtractResult, } from "./types.js";
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
@@ -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,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
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
@@ -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"}
package/dist/types.d.ts CHANGED
@@ -33,26 +33,20 @@ export interface AstRegularNode {
33
33
  [field: string]: AstFieldValue | undefined;
34
34
  }
35
35
  export type AstJsonNode = AstListNode | AstRegularNode;
36
- export type KeywordCase = 0 | 1 | 2;
36
+ export type KeywordCase = "upper" | "lower";
37
+ /** Options for `Engine.format`, mirroring the CLI `format` op. Omitted
38
+ * fields use the formatter defaults. */
37
39
  export interface FormatOptions {
38
- lineWidth: number;
39
- indentWidth: number;
40
- keywordCase: KeywordCase;
41
- semicolons: boolean;
40
+ lineWidth?: number;
41
+ indentWidth?: number;
42
+ keywordCase?: KeywordCase;
43
+ semicolons?: boolean;
42
44
  }
43
- export interface FormatResult {
44
- ok: boolean;
45
- text: string;
46
- }
47
- export type AstResultOk = {
48
- ok: true;
45
+ /** Result of `Engine.parse` (the CLI `parse` op shape). */
46
+ export interface ParseResult {
49
47
  statements: AstJsonNode[];
50
- };
51
- export type AstResultError = {
52
- ok: false;
53
- error: string;
54
- };
55
- export type AstResult = AstResultOk | AstResultError;
48
+ errors: AnalyzeDiagnostic[];
49
+ }
56
50
  export interface DialectBinding {
57
51
  symbol: string;
58
52
  ptr: number;
@@ -103,6 +97,48 @@ export interface DiagnosticsResult {
103
97
  ok: boolean;
104
98
  diagnostics: DiagnosticEntry[];
105
99
  }
100
+ /** One diagnostic from `Engine.analyze` (the CLI `analyze` op shape). */
101
+ export interface AnalyzeDiagnostic {
102
+ severity: "error" | "warning" | "info" | "hint";
103
+ message: string;
104
+ start_offset: number;
105
+ end_offset: number;
106
+ /** Numeric diagnostic category (see `DIAG_CODE_*` in the Rust rpc module). */
107
+ code: number;
108
+ help?: string;
109
+ }
110
+ /** A table or view added to the analysis catalog. */
111
+ export interface RelationSpec {
112
+ name: string;
113
+ columns?: string[];
114
+ }
115
+ export interface AnalyzeOptions {
116
+ /** DDL parsed into a schema catalog for schema-aware validation. */
117
+ schemaDdl?: string;
118
+ /** Tables added to the catalog. */
119
+ tables?: RelationSpec[];
120
+ /** Views added to the catalog. */
121
+ views?: RelationSpec[];
122
+ /** Dotted module path to SQL source, resolving INCLUDE MODULE imports. */
123
+ modules?: Record<string, string>;
124
+ }
125
+ export interface AnalyzeResult {
126
+ diagnostics: AnalyzeDiagnostic[];
127
+ /** Per-statement analysis (kind, references, lineage). */
128
+ statements: unknown[];
129
+ /** Lineage of the final query-bearing statement. */
130
+ lineage: unknown | null;
131
+ }
132
+ /** One token from `Engine.tokenize`. */
133
+ export interface TokenEntry {
134
+ text: string;
135
+ offset: number;
136
+ length: number;
137
+ /** Numeric token id (dialect-specific). */
138
+ type: number;
139
+ /** Coarse category, e.g. "keyword", "identifier", "number". */
140
+ category: string;
141
+ }
106
142
  /** @experimental Embedded language support is experimental and may change. */
107
143
  export type EmbeddedLanguage = "python" | "typescript";
108
144
  /** @experimental */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syntaqlite",
3
- "version": "0.5.10",
3
+ "version": "0.7.0",
4
4
  "description": "SQLite SQL parser, formatter, and validator for the browser — powered by WebAssembly",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -836,7 +836,7 @@ async function createWasm() {
836
836
 
837
837
 
838
838
 
839
- var ___heap_base = 203504;
839
+ var ___heap_base = 233104;
840
840
 
841
841
  var alignMemory = (size, alignment) => {
842
842
  return Math.ceil(size / alignment) * alignment;
@@ -983,7 +983,7 @@ async function createWasm() {
983
983
 
984
984
  /** @type {WebAssembly.Table} */
985
985
  var wasmTable = new WebAssembly.Table({
986
- 'initial': 223,
986
+ 'initial': 368,
987
987
  'element': 'anyfunc'
988
988
  });
989
989
  ;
@@ -4095,11 +4095,11 @@ async function createWasm() {
4095
4095
 
4096
4096
  var ___memory_base = new WebAssembly.Global({'value': 'i32', 'mutable': false}, 1024);
4097
4097
 
4098
- var ___stack_high = 203504;
4098
+ var ___stack_high = 233104;
4099
4099
 
4100
- var ___stack_low = 137968;
4100
+ var ___stack_low = 167568;
4101
4101
 
4102
- var ___stack_pointer = new WebAssembly.Global({'value': 'i32', 'mutable': true}, 203504);
4102
+ var ___stack_pointer = new WebAssembly.Global({'value': 'i32', 'mutable': true}, 233104);
4103
4103
 
4104
4104
 
4105
4105
 
@@ -4236,6 +4236,28 @@ async function createWasm() {
4236
4236
  }
4237
4237
  ___syscall_newfstatat.sig = 'iippi';
4238
4238
 
4239
+ var syscallGetVarargI = () => {
4240
+ // the `+` prepended here is necessary to convince the JSCompiler that varargs is indeed a number.
4241
+ var ret = HEAP32[((+SYSCALLS.varargs)>>2)];
4242
+ SYSCALLS.varargs += 4;
4243
+ return ret;
4244
+ };
4245
+
4246
+ function ___syscall_openat(dirfd, path, flags, varargs) {
4247
+ SYSCALLS.varargs = varargs;
4248
+ try {
4249
+
4250
+ path = SYSCALLS.getStr(path);
4251
+ path = SYSCALLS.calculateAt(dirfd, path);
4252
+ var mode = varargs ? syscallGetVarargI() : 0;
4253
+ return FS.open(path, flags, mode).fd;
4254
+ } catch (e) {
4255
+ if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
4256
+ return -e.errno;
4257
+ }
4258
+ }
4259
+ ___syscall_openat.sig = 'iipip';
4260
+
4239
4261
  function ___syscall_stat64(path, buf) {
4240
4262
  try {
4241
4263
 
@@ -4400,6 +4422,38 @@ async function createWasm() {
4400
4422
  }
4401
4423
  _fd_close.sig = 'ii';
4402
4424
 
4425
+ /** @param {number=} offset */
4426
+ var doReadv = (stream, iov, iovcnt, offset) => {
4427
+ var ret = 0;
4428
+ for (var i = 0; i < iovcnt; i++) {
4429
+ var ptr = HEAPU32[((iov)>>2)];
4430
+ var len = HEAPU32[(((iov)+(4))>>2)];
4431
+ iov += 8;
4432
+ var curr = FS.read(stream, HEAP8, ptr, len, offset);
4433
+ if (curr < 0) return -1;
4434
+ ret += curr;
4435
+ if (curr < len) break; // nothing more to read
4436
+ if (typeof offset != 'undefined') {
4437
+ offset += curr;
4438
+ }
4439
+ }
4440
+ return ret;
4441
+ };
4442
+
4443
+ function _fd_read(fd, iov, iovcnt, pnum) {
4444
+ try {
4445
+
4446
+ var stream = SYSCALLS.getStreamFromFD(fd);
4447
+ var num = doReadv(stream, iov, iovcnt);
4448
+ HEAPU32[((pnum)>>2)] = num;
4449
+ return 0;
4450
+ } catch (e) {
4451
+ if (typeof FS == 'undefined' || !(e.name === 'ErrnoError')) throw e;
4452
+ return e.errno;
4453
+ }
4454
+ }
4455
+ _fd_read.sig = 'iippp';
4456
+
4403
4457
 
4404
4458
  var INT53_MAX = 9007199254740992;
4405
4459
 
@@ -4668,6 +4722,8 @@ var wasmImports = {
4668
4722
  /** @export */
4669
4723
  __syscall_newfstatat: ___syscall_newfstatat,
4670
4724
  /** @export */
4725
+ __syscall_openat: ___syscall_openat,
4726
+ /** @export */
4671
4727
  __syscall_stat64: ___syscall_stat64,
4672
4728
  /** @export */
4673
4729
  __table_base: ___table_base,
@@ -4682,6 +4738,8 @@ var wasmImports = {
4682
4738
  /** @export */
4683
4739
  fd_close: _fd_close,
4684
4740
  /** @export */
4741
+ fd_read: _fd_read,
4742
+ /** @export */
4685
4743
  fd_seek: _fd_seek,
4686
4744
  /** @export */
4687
4745
  fd_write: _fd_write,
@@ -4693,28 +4751,26 @@ var wasmImports = {
4693
4751
  var wasmExports = await createWasm();
4694
4752
  var ___wasm_call_ctors = wasmExports['__wasm_call_ctors']
4695
4753
  var _wasm_alloc = Module['_wasm_alloc'] = wasmExports['wasm_alloc']
4696
- var _wasm_ast_json = Module['_wasm_ast_json'] = wasmExports['wasm_ast_json']
4697
4754
  var _wasm_clear_all_cflags = Module['_wasm_clear_all_cflags'] = wasmExports['wasm_clear_all_cflags']
4698
4755
  var _wasm_clear_cflag = Module['_wasm_clear_cflag'] = wasmExports['wasm_clear_cflag']
4699
4756
  var _wasm_clear_dialect = Module['_wasm_clear_dialect'] = wasmExports['wasm_clear_dialect']
4700
- var _wasm_clear_session_context = Module['_wasm_clear_session_context'] = wasmExports['wasm_clear_session_context']
4701
- var _wasm_completions = Module['_wasm_completions'] = wasmExports['wasm_completions']
4702
- var _wasm_diagnostics = Module['_wasm_diagnostics'] = wasmExports['wasm_diagnostics']
4703
- var _wasm_extract = Module['_wasm_extract'] = wasmExports['wasm_extract']
4704
- var _wasm_fmt = Module['_wasm_fmt'] = wasmExports['wasm_fmt']
4757
+ var _wasm_embedded_diagnostics = Module['_wasm_embedded_diagnostics'] = wasmExports['wasm_embedded_diagnostics']
4758
+ var _wasm_embedded_extract = Module['_wasm_embedded_extract'] = wasmExports['wasm_embedded_extract']
4759
+ var _wasm_embedded_semantic_tokens = Module['_wasm_embedded_semantic_tokens'] = wasmExports['wasm_embedded_semantic_tokens']
4705
4760
  var _wasm_free = Module['_wasm_free'] = wasmExports['wasm_free']
4706
4761
  var _wasm_get_cflag_list = Module['_wasm_get_cflag_list'] = wasmExports['wasm_get_cflag_list']
4762
+ var _wasm_lsp_message = Module['_wasm_lsp_message'] = wasmExports['wasm_lsp_message']
4707
4763
  var _wasm_result_free = Module['_wasm_result_free'] = wasmExports['wasm_result_free']
4708
4764
  var _wasm_result_len = Module['_wasm_result_len'] = wasmExports['wasm_result_len']
4709
4765
  var _wasm_result_ptr = Module['_wasm_result_ptr'] = wasmExports['wasm_result_ptr']
4710
- var _wasm_semantic_tokens = Module['_wasm_semantic_tokens'] = wasmExports['wasm_semantic_tokens']
4766
+ var _wasm_rpc = Module['_wasm_rpc'] = wasmExports['wasm_rpc']
4767
+ var _wasm_session_free = Module['_wasm_session_free'] = wasmExports['wasm_session_free']
4768
+ var _wasm_session_new = Module['_wasm_session_new'] = wasmExports['wasm_session_new']
4711
4769
  var _wasm_set_cflag = Module['_wasm_set_cflag'] = wasmExports['wasm_set_cflag']
4712
4770
  var _wasm_set_dialect = Module['_wasm_set_dialect'] = wasmExports['wasm_set_dialect']
4713
- var _wasm_set_language_mode = Module['_wasm_set_language_mode'] = wasmExports['wasm_set_language_mode']
4714
- var _wasm_set_session_context = Module['_wasm_set_session_context'] = wasmExports['wasm_set_session_context']
4715
- var _wasm_set_session_context_ddl = Module['_wasm_set_session_context_ddl'] = wasmExports['wasm_set_session_context_ddl']
4716
4771
  var _wasm_set_sqlite_version = Module['_wasm_set_sqlite_version'] = wasmExports['wasm_set_sqlite_version']
4717
4772
  var _main = Module['_main'] = wasmExports['main']
4773
+ var _syntaqlite_analyzer_analyze = Module['_syntaqlite_analyzer_analyze'] = wasmExports['syntaqlite_analyzer_analyze']
4718
4774
  var _syntaqlite_formatter_create_sqlite = Module['_syntaqlite_formatter_create_sqlite'] = wasmExports['syntaqlite_formatter_create_sqlite']
4719
4775
  var _syntaqlite_formatter_create_sqlite_with_config = Module['_syntaqlite_formatter_create_sqlite_with_config'] = wasmExports['syntaqlite_formatter_create_sqlite_with_config']
4720
4776
  var _syntaqlite_formatter_create_with_dialect = Module['_syntaqlite_formatter_create_with_dialect'] = wasmExports['syntaqlite_formatter_create_with_dialect']
@@ -4723,11 +4779,10 @@ var _syntaqlite_formatter_error_msg = Module['_syntaqlite_formatter_error_msg']
4723
4779
  var _syntaqlite_formatter_format = Module['_syntaqlite_formatter_format'] = wasmExports['syntaqlite_formatter_format']
4724
4780
  var _syntaqlite_formatter_output = Module['_syntaqlite_formatter_output'] = wasmExports['syntaqlite_formatter_output']
4725
4781
  var _syntaqlite_formatter_output_len = Module['_syntaqlite_formatter_output_len'] = wasmExports['syntaqlite_formatter_output_len']
4726
- var _syntaqlite_analyzer_set_check_level = Module['_syntaqlite_analyzer_set_check_level'] = wasmExports['syntaqlite_analyzer_set_check_level']
4727
- var _syntaqlite_analyzer_set_mode = Module['_syntaqlite_analyzer_set_mode'] = wasmExports['syntaqlite_analyzer_set_mode']
4728
- var _syntaqlite_analyzer_set_module_resolver = Module['_syntaqlite_analyzer_set_module_resolver'] = wasmExports['syntaqlite_analyzer_set_module_resolver']
4729
- var _syntaqlite_analyzer_set_strict_schema = Module['_syntaqlite_analyzer_set_strict_schema'] = wasmExports['syntaqlite_analyzer_set_strict_schema']
4730
- var _syntaqlite_analyzer_set_suggestion_threshold = Module['_syntaqlite_analyzer_set_suggestion_threshold'] = wasmExports['syntaqlite_analyzer_set_suggestion_threshold']
4782
+ var _syntaqlite_rpc_call = Module['_syntaqlite_rpc_call'] = wasmExports['syntaqlite_rpc_call']
4783
+ var _syntaqlite_rpc_create_sqlite = Module['_syntaqlite_rpc_create_sqlite'] = wasmExports['syntaqlite_rpc_create_sqlite']
4784
+ var _syntaqlite_rpc_destroy = Module['_syntaqlite_rpc_destroy'] = wasmExports['syntaqlite_rpc_destroy']
4785
+ var _syntaqlite_rpc_free = Module['_syntaqlite_rpc_free'] = wasmExports['syntaqlite_rpc_free']
4731
4786
  var _syntaqlite_analyzer_statement_column_lineage = Module['_syntaqlite_analyzer_statement_column_lineage'] = wasmExports['syntaqlite_analyzer_statement_column_lineage']
4732
4787
  var _syntaqlite_analyzer_statement_column_lineage_count = Module['_syntaqlite_analyzer_statement_column_lineage_count'] = wasmExports['syntaqlite_analyzer_statement_column_lineage_count']
4733
4788
  var _syntaqlite_analyzer_statement_count = Module['_syntaqlite_analyzer_statement_count'] = wasmExports['syntaqlite_analyzer_statement_count']
@@ -4742,11 +4797,6 @@ var _syntaqlite_analyzer_statement_relations = Module['_syntaqlite_analyzer_stat
4742
4797
  var _syntaqlite_analyzer_statement_source = Module['_syntaqlite_analyzer_statement_source'] = wasmExports['syntaqlite_analyzer_statement_source']
4743
4798
  var _syntaqlite_analyzer_statement_unexpanded_view_count = Module['_syntaqlite_analyzer_statement_unexpanded_view_count'] = wasmExports['syntaqlite_analyzer_statement_unexpanded_view_count']
4744
4799
  var _syntaqlite_analyzer_statement_unexpanded_views = Module['_syntaqlite_analyzer_statement_unexpanded_views'] = wasmExports['syntaqlite_analyzer_statement_unexpanded_views']
4745
- var _syntaqlite_analyzer_create_sqlite = Module['_syntaqlite_analyzer_create_sqlite'] = wasmExports['syntaqlite_analyzer_create_sqlite']
4746
- var _syntaqlite_analyzer_create_with_dialect = Module['_syntaqlite_analyzer_create_with_dialect'] = wasmExports['syntaqlite_analyzer_create_with_dialect']
4747
- var _syntaqlite_analyzer_destroy = Module['_syntaqlite_analyzer_destroy'] = wasmExports['syntaqlite_analyzer_destroy']
4748
- var _syntaqlite_string_destroy = Module['_syntaqlite_string_destroy'] = wasmExports['syntaqlite_string_destroy']
4749
- var _syntaqlite_analyzer_analyze = Module['_syntaqlite_analyzer_analyze'] = wasmExports['syntaqlite_analyzer_analyze']
4750
4800
  var _syntaqlite_analyzer_column_lineage = Module['_syntaqlite_analyzer_column_lineage'] = wasmExports['syntaqlite_analyzer_column_lineage']
4751
4801
  var _syntaqlite_analyzer_column_lineage_count = Module['_syntaqlite_analyzer_column_lineage_count'] = wasmExports['syntaqlite_analyzer_column_lineage_count']
4752
4802
  var _syntaqlite_analyzer_diagnostic_count = Module['_syntaqlite_analyzer_diagnostic_count'] = wasmExports['syntaqlite_analyzer_diagnostic_count']
@@ -4759,6 +4809,15 @@ var _syntaqlite_analyzer_relations = Module['_syntaqlite_analyzer_relations'] =
4759
4809
  var _syntaqlite_analyzer_render_diagnostics = Module['_syntaqlite_analyzer_render_diagnostics'] = wasmExports['syntaqlite_analyzer_render_diagnostics']
4760
4810
  var _syntaqlite_analyzer_unexpanded_view_count = Module['_syntaqlite_analyzer_unexpanded_view_count'] = wasmExports['syntaqlite_analyzer_unexpanded_view_count']
4761
4811
  var _syntaqlite_analyzer_unexpanded_views = Module['_syntaqlite_analyzer_unexpanded_views'] = wasmExports['syntaqlite_analyzer_unexpanded_views']
4812
+ var _syntaqlite_analyzer_create_sqlite = Module['_syntaqlite_analyzer_create_sqlite'] = wasmExports['syntaqlite_analyzer_create_sqlite']
4813
+ var _syntaqlite_analyzer_create_with_dialect = Module['_syntaqlite_analyzer_create_with_dialect'] = wasmExports['syntaqlite_analyzer_create_with_dialect']
4814
+ var _syntaqlite_analyzer_destroy = Module['_syntaqlite_analyzer_destroy'] = wasmExports['syntaqlite_analyzer_destroy']
4815
+ var _syntaqlite_analyzer_set_check_level = Module['_syntaqlite_analyzer_set_check_level'] = wasmExports['syntaqlite_analyzer_set_check_level']
4816
+ var _syntaqlite_analyzer_set_mode = Module['_syntaqlite_analyzer_set_mode'] = wasmExports['syntaqlite_analyzer_set_mode']
4817
+ var _syntaqlite_analyzer_set_module_resolver = Module['_syntaqlite_analyzer_set_module_resolver'] = wasmExports['syntaqlite_analyzer_set_module_resolver']
4818
+ var _syntaqlite_analyzer_set_strict_schema = Module['_syntaqlite_analyzer_set_strict_schema'] = wasmExports['syntaqlite_analyzer_set_strict_schema']
4819
+ var _syntaqlite_analyzer_set_suggestion_threshold = Module['_syntaqlite_analyzer_set_suggestion_threshold'] = wasmExports['syntaqlite_analyzer_set_suggestion_threshold']
4820
+ var _syntaqlite_string_destroy = Module['_syntaqlite_string_destroy'] = wasmExports['syntaqlite_string_destroy']
4762
4821
  var _syntaqlite_analyzer_add_function_overload = Module['_syntaqlite_analyzer_add_function_overload'] = wasmExports['syntaqlite_analyzer_add_function_overload']
4763
4822
  var _syntaqlite_analyzer_add_table_function = Module['_syntaqlite_analyzer_add_table_function'] = wasmExports['syntaqlite_analyzer_add_table_function']
4764
4823
  var _syntaqlite_analyzer_add_tables = Module['_syntaqlite_analyzer_add_tables'] = wasmExports['syntaqlite_analyzer_add_tables']
@@ -4768,6 +4827,7 @@ var _syntaqlite_analyzer_reset_catalog = Module['_syntaqlite_analyzer_reset_cata
4768
4827
  var _malloc = wasmExports['malloc']
4769
4828
  var _synq_extent_on_shift = Module['_synq_extent_on_shift'] = wasmExports['synq_extent_on_shift']
4770
4829
  var _synq_extent_on_reduce = Module['_synq_extent_on_reduce'] = wasmExports['synq_extent_on_reduce']
4830
+ var _synq_extent_fold_below_into_top = Module['_synq_extent_fold_below_into_top'] = wasmExports['synq_extent_fold_below_into_top']
4771
4831
  var _calloc = wasmExports['calloc']
4772
4832
  var ___dl_seterr = wasmExports['__dl_seterr']
4773
4833
  var __emscripten_find_dylib = wasmExports['_emscripten_find_dylib']
Binary file
Binary file