@jaepil/uqa 0.1.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.
Files changed (233) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +788 -0
  3. package/dist/types/src/analysis/analyzer.d.ts +27 -0
  4. package/dist/types/src/analysis/analyzer.d.ts.map +1 -0
  5. package/dist/types/src/analysis/char-filter.d.ts +27 -0
  6. package/dist/types/src/analysis/char-filter.d.ts.map +1 -0
  7. package/dist/types/src/analysis/token-filter.d.ts +73 -0
  8. package/dist/types/src/analysis/token-filter.d.ts.map +1 -0
  9. package/dist/types/src/analysis/tokenizer.d.ts +42 -0
  10. package/dist/types/src/analysis/tokenizer.d.ts.map +1 -0
  11. package/dist/types/src/api/query-builder.d.ts +103 -0
  12. package/dist/types/src/api/query-builder.d.ts.map +1 -0
  13. package/dist/types/src/cli/repl.d.ts +42 -0
  14. package/dist/types/src/cli/repl.d.ts.map +1 -0
  15. package/dist/types/src/core/functor.d.ts +38 -0
  16. package/dist/types/src/core/functor.d.ts.map +1 -0
  17. package/dist/types/src/core/hierarchical.d.ts +24 -0
  18. package/dist/types/src/core/hierarchical.d.ts.map +1 -0
  19. package/dist/types/src/core/posting-list.d.ts +43 -0
  20. package/dist/types/src/core/posting-list.d.ts.map +1 -0
  21. package/dist/types/src/core/types.d.ts +116 -0
  22. package/dist/types/src/core/types.d.ts.map +1 -0
  23. package/dist/types/src/engine.d.ts +130 -0
  24. package/dist/types/src/engine.d.ts.map +1 -0
  25. package/dist/types/src/execution/batch.d.ts +144 -0
  26. package/dist/types/src/execution/batch.d.ts.map +1 -0
  27. package/dist/types/src/execution/physical.d.ts +18 -0
  28. package/dist/types/src/execution/physical.d.ts.map +1 -0
  29. package/dist/types/src/execution/relational.d.ts +174 -0
  30. package/dist/types/src/execution/relational.d.ts.map +1 -0
  31. package/dist/types/src/execution/scan.d.ts +41 -0
  32. package/dist/types/src/execution/scan.d.ts.map +1 -0
  33. package/dist/types/src/execution/spill.d.ts +39 -0
  34. package/dist/types/src/execution/spill.d.ts.map +1 -0
  35. package/dist/types/src/fdw/arrow-handler.d.ts +28 -0
  36. package/dist/types/src/fdw/arrow-handler.d.ts.map +1 -0
  37. package/dist/types/src/fdw/duckdb-handler.d.ts +32 -0
  38. package/dist/types/src/fdw/duckdb-handler.d.ts.map +1 -0
  39. package/dist/types/src/fdw/foreign-table.d.ts +47 -0
  40. package/dist/types/src/fdw/foreign-table.d.ts.map +1 -0
  41. package/dist/types/src/fdw/handler.d.ts +52 -0
  42. package/dist/types/src/fdw/handler.d.ts.map +1 -0
  43. package/dist/types/src/fusion/attention.d.ts +23 -0
  44. package/dist/types/src/fusion/attention.d.ts.map +1 -0
  45. package/dist/types/src/fusion/boolean.d.ts +6 -0
  46. package/dist/types/src/fusion/boolean.d.ts.map +1 -0
  47. package/dist/types/src/fusion/learned.d.ts +12 -0
  48. package/dist/types/src/fusion/learned.d.ts.map +1 -0
  49. package/dist/types/src/fusion/log-odds.d.ts +87 -0
  50. package/dist/types/src/fusion/log-odds.d.ts.map +1 -0
  51. package/dist/types/src/fusion/query-features.d.ts +8 -0
  52. package/dist/types/src/fusion/query-features.d.ts.map +1 -0
  53. package/dist/types/src/graph/centrality.d.ts +35 -0
  54. package/dist/types/src/graph/centrality.d.ts.map +1 -0
  55. package/dist/types/src/graph/cross-paradigm.d.ts +68 -0
  56. package/dist/types/src/graph/cross-paradigm.d.ts.map +1 -0
  57. package/dist/types/src/graph/cypher/ast.d.ts +175 -0
  58. package/dist/types/src/graph/cypher/ast.d.ts.map +1 -0
  59. package/dist/types/src/graph/cypher/compiler.d.ts +60 -0
  60. package/dist/types/src/graph/cypher/compiler.d.ts.map +1 -0
  61. package/dist/types/src/graph/cypher/lexer.d.ts +82 -0
  62. package/dist/types/src/graph/cypher/lexer.d.ts.map +1 -0
  63. package/dist/types/src/graph/cypher/parser.d.ts +50 -0
  64. package/dist/types/src/graph/cypher/parser.d.ts.map +1 -0
  65. package/dist/types/src/graph/delta.d.ts +31 -0
  66. package/dist/types/src/graph/delta.d.ts.map +1 -0
  67. package/dist/types/src/graph/graph-embedding.d.ts +13 -0
  68. package/dist/types/src/graph/graph-embedding.d.ts.map +1 -0
  69. package/dist/types/src/graph/incremental-match.d.ts +16 -0
  70. package/dist/types/src/graph/incremental-match.d.ts.map +1 -0
  71. package/dist/types/src/graph/index.d.ts +58 -0
  72. package/dist/types/src/graph/index.d.ts.map +1 -0
  73. package/dist/types/src/graph/join.d.ts +18 -0
  74. package/dist/types/src/graph/join.d.ts.map +1 -0
  75. package/dist/types/src/graph/message-passing.d.ts +17 -0
  76. package/dist/types/src/graph/message-passing.d.ts.map +1 -0
  77. package/dist/types/src/graph/operators.d.ts +81 -0
  78. package/dist/types/src/graph/operators.d.ts.map +1 -0
  79. package/dist/types/src/graph/pattern.d.ts +63 -0
  80. package/dist/types/src/graph/pattern.d.ts.map +1 -0
  81. package/dist/types/src/graph/posting-list.d.ts +24 -0
  82. package/dist/types/src/graph/posting-list.d.ts.map +1 -0
  83. package/dist/types/src/graph/rpq-optimizer.d.ts +25 -0
  84. package/dist/types/src/graph/rpq-optimizer.d.ts.map +1 -0
  85. package/dist/types/src/graph/store.d.ts +61 -0
  86. package/dist/types/src/graph/store.d.ts.map +1 -0
  87. package/dist/types/src/graph/temporal-filter.d.ts +12 -0
  88. package/dist/types/src/graph/temporal-filter.d.ts.map +1 -0
  89. package/dist/types/src/graph/temporal-pattern-match.d.ts +26 -0
  90. package/dist/types/src/graph/temporal-pattern-match.d.ts.map +1 -0
  91. package/dist/types/src/graph/temporal-traverse.d.ts +25 -0
  92. package/dist/types/src/graph/temporal-traverse.d.ts.map +1 -0
  93. package/dist/types/src/graph/versioned-store.d.ts +64 -0
  94. package/dist/types/src/graph/versioned-store.d.ts.map +1 -0
  95. package/dist/types/src/index.d.ts +20 -0
  96. package/dist/types/src/index.d.ts.map +1 -0
  97. package/dist/types/src/joins/base.d.ts +18 -0
  98. package/dist/types/src/joins/base.d.ts.map +1 -0
  99. package/dist/types/src/joins/cross-paradigm.d.ts +46 -0
  100. package/dist/types/src/joins/cross-paradigm.d.ts.map +1 -0
  101. package/dist/types/src/joins/cross.d.ts +9 -0
  102. package/dist/types/src/joins/cross.d.ts.map +1 -0
  103. package/dist/types/src/joins/index.d.ts +7 -0
  104. package/dist/types/src/joins/index.d.ts.map +1 -0
  105. package/dist/types/src/joins/inner.d.ts +7 -0
  106. package/dist/types/src/joins/inner.d.ts.map +1 -0
  107. package/dist/types/src/joins/outer.d.ts +16 -0
  108. package/dist/types/src/joins/outer.d.ts.map +1 -0
  109. package/dist/types/src/joins/semi.d.ts +22 -0
  110. package/dist/types/src/joins/semi.d.ts.map +1 -0
  111. package/dist/types/src/joins/sort-merge.d.ts +7 -0
  112. package/dist/types/src/joins/sort-merge.d.ts.map +1 -0
  113. package/dist/types/src/math/linalg.d.ts +27 -0
  114. package/dist/types/src/math/linalg.d.ts.map +1 -0
  115. package/dist/types/src/math/random.d.ts +15 -0
  116. package/dist/types/src/math/random.d.ts.map +1 -0
  117. package/dist/types/src/operators/aggregation.d.ts +65 -0
  118. package/dist/types/src/operators/aggregation.d.ts.map +1 -0
  119. package/dist/types/src/operators/attention.d.ts +16 -0
  120. package/dist/types/src/operators/attention.d.ts.map +1 -0
  121. package/dist/types/src/operators/backend.d.ts +52 -0
  122. package/dist/types/src/operators/backend.d.ts.map +1 -0
  123. package/dist/types/src/operators/base.d.ts +32 -0
  124. package/dist/types/src/operators/base.d.ts.map +1 -0
  125. package/dist/types/src/operators/boolean.d.ts +23 -0
  126. package/dist/types/src/operators/boolean.d.ts.map +1 -0
  127. package/dist/types/src/operators/calibrated-vector.d.ts +56 -0
  128. package/dist/types/src/operators/calibrated-vector.d.ts.map +1 -0
  129. package/dist/types/src/operators/deep-fusion.d.ts +104 -0
  130. package/dist/types/src/operators/deep-fusion.d.ts.map +1 -0
  131. package/dist/types/src/operators/deep-learn.d.ts +87 -0
  132. package/dist/types/src/operators/deep-learn.d.ts.map +1 -0
  133. package/dist/types/src/operators/hierarchical.d.ts +44 -0
  134. package/dist/types/src/operators/hierarchical.d.ts.map +1 -0
  135. package/dist/types/src/operators/hybrid.d.ts +75 -0
  136. package/dist/types/src/operators/hybrid.d.ts.map +1 -0
  137. package/dist/types/src/operators/learned-fusion.d.ts +15 -0
  138. package/dist/types/src/operators/learned-fusion.d.ts.map +1 -0
  139. package/dist/types/src/operators/multi-field.d.ts +13 -0
  140. package/dist/types/src/operators/multi-field.d.ts.map +1 -0
  141. package/dist/types/src/operators/multi-stage.d.ts +12 -0
  142. package/dist/types/src/operators/multi-stage.d.ts.map +1 -0
  143. package/dist/types/src/operators/primitive.d.ts +75 -0
  144. package/dist/types/src/operators/primitive.d.ts.map +1 -0
  145. package/dist/types/src/operators/progressive-fusion.d.ts +13 -0
  146. package/dist/types/src/operators/progressive-fusion.d.ts.map +1 -0
  147. package/dist/types/src/operators/sparse.d.ts +12 -0
  148. package/dist/types/src/operators/sparse.d.ts.map +1 -0
  149. package/dist/types/src/planner/cardinality.d.ts +110 -0
  150. package/dist/types/src/planner/cardinality.d.ts.map +1 -0
  151. package/dist/types/src/planner/cost-model.d.ts +16 -0
  152. package/dist/types/src/planner/cost-model.d.ts.map +1 -0
  153. package/dist/types/src/planner/executor.d.ts +48 -0
  154. package/dist/types/src/planner/executor.d.ts.map +1 -0
  155. package/dist/types/src/planner/join-enumerator.d.ts +76 -0
  156. package/dist/types/src/planner/join-enumerator.d.ts.map +1 -0
  157. package/dist/types/src/planner/join-graph.d.ts +61 -0
  158. package/dist/types/src/planner/join-graph.d.ts.map +1 -0
  159. package/dist/types/src/planner/join-order.d.ts +24 -0
  160. package/dist/types/src/planner/join-order.d.ts.map +1 -0
  161. package/dist/types/src/planner/optimizer.d.ts +62 -0
  162. package/dist/types/src/planner/optimizer.d.ts.map +1 -0
  163. package/dist/types/src/planner/parallel.d.ts +43 -0
  164. package/dist/types/src/planner/parallel.d.ts.map +1 -0
  165. package/dist/types/src/scoring/bayesian-bm25.d.ts +22 -0
  166. package/dist/types/src/scoring/bayesian-bm25.d.ts.map +1 -0
  167. package/dist/types/src/scoring/bm25.d.ts +20 -0
  168. package/dist/types/src/scoring/bm25.d.ts.map +1 -0
  169. package/dist/types/src/scoring/calibration.d.ts +68 -0
  170. package/dist/types/src/scoring/calibration.d.ts.map +1 -0
  171. package/dist/types/src/scoring/external-prior.d.ts +55 -0
  172. package/dist/types/src/scoring/external-prior.d.ts.map +1 -0
  173. package/dist/types/src/scoring/fusion-wand.d.ts +19 -0
  174. package/dist/types/src/scoring/fusion-wand.d.ts.map +1 -0
  175. package/dist/types/src/scoring/multi-field.d.ts +10 -0
  176. package/dist/types/src/scoring/multi-field.d.ts.map +1 -0
  177. package/dist/types/src/scoring/parameter-learner.d.ts +42 -0
  178. package/dist/types/src/scoring/parameter-learner.d.ts.map +1 -0
  179. package/dist/types/src/scoring/vector.d.ts +42 -0
  180. package/dist/types/src/scoring/vector.d.ts.map +1 -0
  181. package/dist/types/src/scoring/wand.d.ts +51 -0
  182. package/dist/types/src/scoring/wand.d.ts.map +1 -0
  183. package/dist/types/src/sql/compiler.d.ts +551 -0
  184. package/dist/types/src/sql/compiler.d.ts.map +1 -0
  185. package/dist/types/src/sql/expr-evaluator.d.ts +43 -0
  186. package/dist/types/src/sql/expr-evaluator.d.ts.map +1 -0
  187. package/dist/types/src/sql/fts-query.d.ts +60 -0
  188. package/dist/types/src/sql/fts-query.d.ts.map +1 -0
  189. package/dist/types/src/sql/table.d.ts +72 -0
  190. package/dist/types/src/sql/table.d.ts.map +1 -0
  191. package/dist/types/src/storage/abc/document-store.d.ts +44 -0
  192. package/dist/types/src/storage/abc/document-store.d.ts.map +1 -0
  193. package/dist/types/src/storage/abc/graph-store.d.ts +109 -0
  194. package/dist/types/src/storage/abc/graph-store.d.ts.map +1 -0
  195. package/dist/types/src/storage/abc/inverted-index.d.ts +118 -0
  196. package/dist/types/src/storage/abc/inverted-index.d.ts.map +1 -0
  197. package/dist/types/src/storage/block-max-index.d.ts +45 -0
  198. package/dist/types/src/storage/block-max-index.d.ts.map +1 -0
  199. package/dist/types/src/storage/btree-index.d.ts +18 -0
  200. package/dist/types/src/storage/btree-index.d.ts.map +1 -0
  201. package/dist/types/src/storage/catalog.d.ts +87 -0
  202. package/dist/types/src/storage/catalog.d.ts.map +1 -0
  203. package/dist/types/src/storage/document-store.d.ts +20 -0
  204. package/dist/types/src/storage/document-store.d.ts.map +1 -0
  205. package/dist/types/src/storage/index-abc.d.ts +16 -0
  206. package/dist/types/src/storage/index-abc.d.ts.map +1 -0
  207. package/dist/types/src/storage/index-manager.d.ts +19 -0
  208. package/dist/types/src/storage/index-manager.d.ts.map +1 -0
  209. package/dist/types/src/storage/index-types.d.ts +10 -0
  210. package/dist/types/src/storage/index-types.d.ts.map +1 -0
  211. package/dist/types/src/storage/inverted-index.d.ts +55 -0
  212. package/dist/types/src/storage/inverted-index.d.ts.map +1 -0
  213. package/dist/types/src/storage/ivf-index.d.ts +57 -0
  214. package/dist/types/src/storage/ivf-index.d.ts.map +1 -0
  215. package/dist/types/src/storage/managed-connection.d.ts +64 -0
  216. package/dist/types/src/storage/managed-connection.d.ts.map +1 -0
  217. package/dist/types/src/storage/spatial-index.d.ts +18 -0
  218. package/dist/types/src/storage/spatial-index.d.ts.map +1 -0
  219. package/dist/types/src/storage/sqlite-document-store.d.ts +54 -0
  220. package/dist/types/src/storage/sqlite-document-store.d.ts.map +1 -0
  221. package/dist/types/src/storage/sqlite-graph-store.d.ts +59 -0
  222. package/dist/types/src/storage/sqlite-graph-store.d.ts.map +1 -0
  223. package/dist/types/src/storage/sqlite-inverted-index.d.ts +75 -0
  224. package/dist/types/src/storage/sqlite-inverted-index.d.ts.map +1 -0
  225. package/dist/types/src/storage/transaction.d.ts +15 -0
  226. package/dist/types/src/storage/transaction.d.ts.map +1 -0
  227. package/dist/types/src/storage/vector-index.d.ts +23 -0
  228. package/dist/types/src/storage/vector-index.d.ts.map +1 -0
  229. package/dist/uqa.es.js +16156 -0
  230. package/dist/uqa.es.js.map +1 -0
  231. package/dist/uqa.umd.js +11 -0
  232. package/dist/uqa.umd.js.map +1 -0
  233. package/package.json +73 -0
@@ -0,0 +1,551 @@
1
+ import { Table } from "./table.js";
2
+ import { PostingList } from "../core/posting-list.js";
3
+ import type { IndexStats } from "../core/types.js";
4
+ import { Operator } from "../operators/base.js";
5
+ import type { ExecutionContext } from "../operators/base.js";
6
+ export interface SQLResult {
7
+ readonly columns: string[];
8
+ readonly rows: Record<string, unknown>[];
9
+ }
10
+ export declare class SQLCompiler {
11
+ private _tables;
12
+ private _views;
13
+ private _sequences;
14
+ private _engine;
15
+ private _transactionActive;
16
+ private _prepared;
17
+ private _params;
18
+ private _expandedViews;
19
+ private _shadowedTables;
20
+ private _inlinedCTEs;
21
+ private _correlatedOuterRow;
22
+ private _foreignServers;
23
+ private _foreignTables;
24
+ constructor(engine?: unknown);
25
+ /**
26
+ * Create a SubqueryExecutor callback that delegates to _compileSelect.
27
+ * Supports correlated subqueries by accepting an optional outer row.
28
+ */
29
+ private _makeSubqueryExecutor;
30
+ get tables(): Map<string, Table>;
31
+ get views(): Map<string, Record<string, unknown>>;
32
+ get engine(): unknown;
33
+ /**
34
+ * Parse and execute a SQL statement. Returns SQLResult for queries,
35
+ * null for DDL/DML statements.
36
+ */
37
+ execute(sql: string, params?: unknown[]): Promise<SQLResult | null>;
38
+ private _dispatchStatement;
39
+ private _compileCreateTable;
40
+ private _compileCreateTableAs;
41
+ private _compileCreateSequence;
42
+ private _compileAlterSequence;
43
+ private _parseColumnDef;
44
+ private _compileDrop;
45
+ private _compileDropTable;
46
+ private _compileDropView;
47
+ private _compileDropIndex;
48
+ private _compileCreateForeignServer;
49
+ private _compileCreateForeignTable;
50
+ private _compileDropForeignServer;
51
+ private _compileDropForeignTable;
52
+ private _compileCreateView;
53
+ private _compileCreateIndex;
54
+ private _compileAlterTable;
55
+ private _compileRename;
56
+ private _compileTruncate;
57
+ private _compileInsert;
58
+ private _doConflictUpdate;
59
+ private _compileUpdate;
60
+ private _compileUpdateFrom;
61
+ private _compileDelete;
62
+ private _compileDeleteUsing;
63
+ private _compileTransaction;
64
+ private _compilePrepare;
65
+ private _compileExecute;
66
+ private _compileDeallocate;
67
+ private _compileExplain;
68
+ private _compileAnalyze;
69
+ private _compileSelect;
70
+ private _compileSelectBody;
71
+ private _materializeCTEs;
72
+ private _materializeRecursiveCTE;
73
+ private _countCTERefs;
74
+ private _resultToTable;
75
+ private _compileSetOp;
76
+ private _setUnion;
77
+ private _setIntersect;
78
+ private _setExcept;
79
+ private _compileValues;
80
+ private _resolveFrom;
81
+ private _resolveFromItem;
82
+ private _applyAlias;
83
+ private _resolveLateralJoin;
84
+ private _compileFromFunction;
85
+ private _buildGenerateSeries;
86
+ private _buildUnnest;
87
+ private _buildJSONEach;
88
+ private _buildJSONArrayElements;
89
+ private _buildRegexpSplitToTable;
90
+ private _crossJoin;
91
+ private _resolveJoin;
92
+ private _buildInformationSchemaTable;
93
+ private _buildPgCatalogTable;
94
+ private _projectColumns;
95
+ private _deriveColumnName;
96
+ private _resolveSelectColumnNames;
97
+ private _hasAggregates;
98
+ private _containsAggregate;
99
+ private _applyGroupBy;
100
+ private _computeAggregates;
101
+ private _computeStatAgg;
102
+ /**
103
+ * Walk the HAVING expression tree and resolve any aggregate function calls
104
+ * (COUNT, SUM, AVG, etc.) by computing them from the group rows. The
105
+ * computed values are injected into the enriched row under a synthetic key
106
+ * so the normal expression evaluator can look them up.
107
+ */
108
+ private _resolveHavingAggregates;
109
+ private _collectHavingAggregates;
110
+ private _computeInlineAggregate;
111
+ private _hasWindowFunctions;
112
+ private _applyWindowFunctions;
113
+ private _applyDistinct;
114
+ private _applyOrderBy;
115
+ private _evaluateReturning;
116
+ private _extractReturningColumns;
117
+ /**
118
+ * Name of the current graph being queried (set from FROM-clause table).
119
+ */
120
+ private _currentGraphName;
121
+ /**
122
+ * Build an ExecutionContext for a given table (or null for no-table queries).
123
+ */
124
+ private _contextForTable;
125
+ /**
126
+ * Check if an AST subtree contains any UQA posting-list functions.
127
+ */
128
+ private static _containsUQAFunction;
129
+ /**
130
+ * Split a WHERE clause into UQA function conjuncts and scalar conjuncts.
131
+ * Returns [uqaNode, scalarNode] where either can be null.
132
+ */
133
+ private _splitUQAConjuncts;
134
+ /**
135
+ * Extract AND conjuncts from a WHERE clause node.
136
+ */
137
+ private _extractAndConjuncts;
138
+ /**
139
+ * Compile a WHERE AST node into an Operator tree.
140
+ * This handles UQA extension functions, boolean logic, comparisons,
141
+ * null tests, and sublink (IN/EXISTS) predicates.
142
+ */
143
+ private _compileWhere;
144
+ /**
145
+ * Compile a BoolExpr (AND/OR/NOT) into operators.
146
+ */
147
+ private _compileBoolExpr;
148
+ /**
149
+ * Compile AND: chain filters on top of scored retrievals.
150
+ */
151
+ private _compileAnd;
152
+ /**
153
+ * Compile a comparison expression (A_Expr) into an operator.
154
+ */
155
+ private _compileComparison;
156
+ /**
157
+ * Compile a NullTest into a FilterOperator.
158
+ */
159
+ private _compileNullTest;
160
+ /**
161
+ * Compile a SubLink (IN/EXISTS subquery) in WHERE position.
162
+ */
163
+ private _compileSublinkInWhere;
164
+ /**
165
+ * Compile a function call in WHERE position into the appropriate operator.
166
+ */
167
+ private _compileFuncInWhere;
168
+ /**
169
+ * Compile a signal function into an operator that produces calibrated
170
+ * probabilities in (0, 1). Used by fusion operators.
171
+ */
172
+ private _compileCalibratedSignal;
173
+ /**
174
+ * Build a text search operator (TermOperator + scorer).
175
+ * When bayesian=true, uses BayesianBM25Scorer; otherwise BM25Scorer.
176
+ */
177
+ private _makeTextSearchOp;
178
+ /**
179
+ * multi_field_match(field1, field2, ..., query [, weight1, weight2, ...])
180
+ */
181
+ private _makeMultiFieldMatchOp;
182
+ /**
183
+ * message_passing(k_layers, aggregation, property_name)
184
+ */
185
+ private _makeMessagePassingOp;
186
+ /**
187
+ * graph_embedding(dimensions, k_layers)
188
+ */
189
+ private _makeGraphEmbeddingOp;
190
+ /**
191
+ * bayesian_match_with_prior(field, query, prior_field, prior_mode)
192
+ */
193
+ private _makeBayesianWithPriorOp;
194
+ /**
195
+ * knn_match(field, vector, k)
196
+ */
197
+ private _makeKnnOp;
198
+ /**
199
+ * KNN search with calibrated probability scores.
200
+ * When force_calibrated is true or IVF background stats are available,
201
+ * uses CalibratedVectorOperator; otherwise falls back to
202
+ * CalibratedKNNOperator (linear rescaling P = (1 + cos) / 2).
203
+ */
204
+ private _makeCalibratedKnnOp;
205
+ /**
206
+ * spatial_within(field, POINT(x, y), distance)
207
+ */
208
+ private _makeSpatialWithinOp;
209
+ /**
210
+ * Extract (x, y) from a POINT(x, y) FuncCall or $N parameter.
211
+ */
212
+ private _extractPointArg;
213
+ /**
214
+ * traverse_match(start_id, 'label', max_hops) as WHERE signal.
215
+ */
216
+ private _makeTraverseMatchOp;
217
+ /**
218
+ * temporal_traverse(start, label, hops, timestamp) or
219
+ * temporal_traverse(start, label, hops, from_ts, to_ts)
220
+ */
221
+ private _makeTemporalTraverseOp;
222
+ /**
223
+ * path_filter('path', value) or path_filter('path', 'op', value)
224
+ */
225
+ private _makePathFilterOp;
226
+ /**
227
+ * vector_exclude(field, positive_vector, negative_vector, k, threshold)
228
+ */
229
+ private _makeVectorExcludeOp;
230
+ /**
231
+ * fuse_prob_not(signal) -- probabilistic complement.
232
+ */
233
+ private _makeProbNotOp;
234
+ /**
235
+ * sparse_threshold(signal, threshold)
236
+ */
237
+ private _makeSparseThresholdOp;
238
+ /**
239
+ * Build a fusion operator from nested function calls.
240
+ * fuse_log_odds(signal1, signal2, ...[, alpha[, 'gating']])
241
+ * fuse_prob_and(signal1, signal2, ...)
242
+ * fuse_prob_or(signal1, signal2, ...)
243
+ */
244
+ private _makeFusionOp;
245
+ /**
246
+ * staged_retrieval(signal1, k1, signal2, k2, ...)
247
+ */
248
+ private _makeStagedRetrievalOp;
249
+ /**
250
+ * Split centrality args into numeric args and graph name.
251
+ */
252
+ private _splitCentralityArgs;
253
+ /**
254
+ * pagerank([damping[, max_iter[, tolerance]]][, 'graph'])
255
+ */
256
+ private _makePageRankOp;
257
+ /**
258
+ * hits([max_iter[, tolerance]][, 'graph'])
259
+ */
260
+ private _makeHITSOp;
261
+ /**
262
+ * betweenness(['graph'])
263
+ */
264
+ private _makeBetweennessOp;
265
+ /**
266
+ * weighted_rpq('path_expr', start, 'weight_prop'[, 'agg_fn'[, threshold]])
267
+ */
268
+ private _makeWeightedRpqOp;
269
+ /**
270
+ * progressive_fusion(sig1, sig2, k1, sig3, k2[, alpha][, 'gating'])
271
+ */
272
+ private _makeProgressiveFusionOp;
273
+ /**
274
+ * deep_fusion(layer(...), propagate(...), ...[, named args])
275
+ *
276
+ * Builds a multi-layer deep fusion operator.
277
+ */
278
+ private _makeDeepFusionOp;
279
+ /**
280
+ * fuse_attention(signal1, signal2, ...[, named options])
281
+ */
282
+ private _makeAttentionFusionOp;
283
+ /**
284
+ * fuse_multihead(signal1, signal2, ...[, named options])
285
+ */
286
+ private _makeMultiheadFusionOp;
287
+ /**
288
+ * fuse_learned(signal1, signal2, ...[, named options])
289
+ */
290
+ private _makeLearnedFusionOp;
291
+ /**
292
+ * Extract query features from the first text signal in args.
293
+ */
294
+ private _extractQueryFeatures;
295
+ /**
296
+ * Return a new stmt with the WHERE clause constant-folded.
297
+ */
298
+ private _foldStmtWhere;
299
+ /**
300
+ * Bottom-up constant folding for AST expressions.
301
+ */
302
+ private _foldConstants;
303
+ /**
304
+ * Try to fold an A_Expr with constant operands.
305
+ */
306
+ private _foldAExpr;
307
+ /**
308
+ * Try to fold a BoolExpr, including partial evaluation.
309
+ */
310
+ private _foldBoolExpr;
311
+ /**
312
+ * Fold a FuncCall if all args are constant and function is pure.
313
+ */
314
+ private _foldFuncCall;
315
+ /**
316
+ * Run the operator tree through the QueryOptimizer.
317
+ */
318
+ private _optimize;
319
+ /**
320
+ * Execute an operator tree via PlanExecutor.
321
+ */
322
+ private _executePlan;
323
+ /**
324
+ * Format the optimized query plan as an EXPLAIN result.
325
+ */
326
+ private _explainPlan;
327
+ /**
328
+ * Scan all documents from a table into a PostingList.
329
+ */
330
+ private _scanAll;
331
+ /**
332
+ * Chain a WHERE operator on top of a source operator.
333
+ */
334
+ private _chainOnSource;
335
+ /**
336
+ * Check if a source operator is a graph operator.
337
+ */
338
+ private static _isGraphOperator;
339
+ /**
340
+ * Check if a source operator is a join operator.
341
+ */
342
+ private static _isJoinOperator;
343
+ /**
344
+ * Collect (alias, columns[]) pairs for all tables in a FROM clause.
345
+ * Used by SELECT * on joins to expand columns in correct order.
346
+ */
347
+ private _collectJoinTables;
348
+ private _walkFromForTables;
349
+ /**
350
+ * Apply deferred WHERE predicates as ExprEvaluator-based filter
351
+ * on already-joined/graph-sourced rows. For simple column-to-constant
352
+ * comparisons, uses direct predicate matching. For cross-table or
353
+ * complex expressions, delegates to ExprEvaluator.
354
+ */
355
+ private _applyDeferredWhere;
356
+ /**
357
+ * Recursively collect all table names from an AST node.
358
+ * Walks FROM, JOINs, subqueries, and CTEs.
359
+ * Virtual schemas (information_schema, pg_catalog) are excluded.
360
+ */
361
+ private static _collectAstTableRefs;
362
+ private static _walkAstForTables;
363
+ /**
364
+ * Partition WHERE conjuncts into per-alias pushable and remaining.
365
+ * Single-alias conjuncts are pushable; cross-table predicates remain.
366
+ * Returns [pushable_per_alias, remaining_node].
367
+ */
368
+ private _partitionWhereForJoins;
369
+ /**
370
+ * Collect table alias prefixes from ColumnRef nodes in an AST subtree.
371
+ */
372
+ private static _collectConjunctAliases;
373
+ private static _walkForColumnAliases;
374
+ /**
375
+ * Rebuild a BoolExpr AND node from a list of conjuncts.
376
+ */
377
+ private static _reconstructAnd;
378
+ /**
379
+ * Extract equijoin predicates from WHERE for implicit cross joins.
380
+ * Returns an array of {leftAlias, leftCol, rightAlias, rightCol} objects.
381
+ */
382
+ private _extractImplicitEquijoinPredicates;
383
+ /**
384
+ * Register foreign key validators (insert/update/delete hooks).
385
+ * Enforces referential integrity between child and parent tables.
386
+ */
387
+ private _registerFkValidators;
388
+ /**
389
+ * Check if a WHERE predicate is safe to push down into a view/subquery.
390
+ * Only simple column comparisons referencing subquery output columns qualify.
391
+ */
392
+ private _isPushablePredicate;
393
+ /**
394
+ * Push safe WHERE predicates into a view or derived table subquery.
395
+ * Only applies when FROM is a single view/derived table and
396
+ * WHERE references only the subquery's output columns.
397
+ */
398
+ private _tryPredicatePushdown;
399
+ /**
400
+ * Split a WHERE clause into pushable and remaining predicates.
401
+ */
402
+ private _splitPushable;
403
+ /**
404
+ * Return a copy of *query* with *predicate* AND-merged into WHERE.
405
+ */
406
+ private static _injectWhere;
407
+ /**
408
+ * Extract a numeric value from an AST constant node or parameter reference.
409
+ */
410
+ private _extractNumericValue;
411
+ /**
412
+ * Check if a target list contains SELECT *.
413
+ */
414
+ private static _isSelectStar;
415
+ /**
416
+ * Check if any SELECT target is a computed expression (not a simple column).
417
+ * This includes function calls, CASE, CAST, arithmetic, etc.
418
+ */
419
+ private static _hasComputedExpressions;
420
+ /**
421
+ * Infer the output column name for a single SELECT target.
422
+ * Follows PostgreSQL naming conventions.
423
+ */
424
+ private _inferTargetName;
425
+ /**
426
+ * Build (output_name, ast_node) pairs for SELECT targets.
427
+ * Text search functions are mapped to read _score from the row.
428
+ */
429
+ private _buildExprTargets;
430
+ /**
431
+ * Check if ORDER BY references columns not in the SELECT list.
432
+ */
433
+ private _sortNeedsExtraCols;
434
+ /**
435
+ * Build group column -> alias mapping for GROUP BY queries.
436
+ */
437
+ private _buildGroupAliases;
438
+ /**
439
+ * Build ExprProjectOp targets for non-aggregate computed expressions
440
+ * in a GROUP BY SELECT list. Returns null when no post-group computation needed.
441
+ */
442
+ private _buildPostGroupTargets;
443
+ /**
444
+ * Build pre-aggregation targets for GROUP BY computed expressions
445
+ * or aggregate expression args (e.g., SUM(CASE ...)).
446
+ */
447
+ private _buildPreAggTargets;
448
+ /**
449
+ * Resolve GROUP BY items: column names, aliases, or ordinals.
450
+ * Returns the list of group column names.
451
+ */
452
+ private _resolveGroupByCols;
453
+ /**
454
+ * Get a table by name, throwing if it doesn't exist.
455
+ */
456
+ private _getTable;
457
+ /**
458
+ * Substitute $N parameter references in an AST with A_Const values.
459
+ */
460
+ private _substituteParams;
461
+ /**
462
+ * Check whether an AST node has outer-row references (correlated subquery).
463
+ */
464
+ private _hasOuterRefs;
465
+ /**
466
+ * Build sort key specifications from an ORDER BY clause.
467
+ * Handles column names, aliases, ordinal references, and NULLS FIRST/LAST.
468
+ */
469
+ private _buildSortKeys;
470
+ }
471
+ /**
472
+ * Scans a specific table, eagerly loading document fields.
473
+ * Used by JOIN operators that need full document data for ON evaluation.
474
+ */
475
+ declare class TableScanOperator extends Operator {
476
+ readonly _table: Table;
477
+ readonly _alias: string | null;
478
+ constructor(table: Table, alias?: string | null);
479
+ execute(_context: ExecutionContext): PostingList;
480
+ costEstimate(_stats: {
481
+ totalDocs: number;
482
+ }): number;
483
+ }
484
+ /**
485
+ * Execute compiled UQA operators against a table for JOIN predicate pushdown.
486
+ */
487
+ export declare class CompiledWhereScanOperator extends Operator {
488
+ private readonly _table;
489
+ private readonly _uqaOp;
490
+ private readonly _ctx;
491
+ private readonly _alias;
492
+ private readonly _scalarFilter;
493
+ private readonly _subqueryExecutor;
494
+ private readonly _params;
495
+ constructor(table: Table, uqaOp: Operator, ctx: ExecutionContext, alias?: string | null, scalarFilter?: Record<string, unknown> | null, subqueryExecutor?: ((stmt: Record<string, unknown>, params: unknown[]) => SQLResult) | null, params?: unknown[]);
496
+ execute(_context: ExecutionContext): PostingList;
497
+ costEstimate(stats: IndexStats): number;
498
+ }
499
+ /**
500
+ * Wraps a scan operator and filters its output using a WHERE predicate.
501
+ */
502
+ export declare class FilteredScanOperator extends Operator {
503
+ private readonly _scan;
504
+ private readonly _whereNode;
505
+ private readonly _subqueryExecutor;
506
+ private readonly _params;
507
+ constructor(scan: TableScanOperator, whereNode: Record<string, unknown>, subqueryExecutor?: ((stmt: Record<string, unknown>, params: unknown[]) => SQLResult) | null, params?: unknown[]);
508
+ execute(context: ExecutionContext): PostingList;
509
+ costEstimate(stats: IndexStats): number;
510
+ }
511
+ /**
512
+ * Lazy semi-join filter for decorrelated EXISTS subqueries.
513
+ */
514
+ export declare class SemiJoinFilterOperator extends Operator {
515
+ private readonly _outerCol;
516
+ private readonly _innerCol;
517
+ private readonly _innerSubselect;
518
+ private readonly _subqueryExecutor;
519
+ constructor(outerCol: string, innerCol: string, innerSubselect: Record<string, unknown>, subqueryExecutor: (stmt: Record<string, unknown>, params?: unknown[]) => SQLResult);
520
+ execute(context: ExecutionContext): PostingList;
521
+ costEstimate(stats: IndexStats): number;
522
+ }
523
+ /**
524
+ * Nested-loop join with arbitrary ON expression evaluation.
525
+ */
526
+ export declare class ExprJoinOperator extends Operator {
527
+ private readonly _left;
528
+ private readonly _right;
529
+ private readonly _quals;
530
+ private readonly _joinType;
531
+ private readonly _params;
532
+ constructor(left: Operator, right: Operator, quals: Record<string, unknown>, joinType: number | string, params?: unknown[]);
533
+ execute(context: ExecutionContext): PostingList;
534
+ private static _inner;
535
+ private static _leftOuter;
536
+ private static _rightOuter;
537
+ private static _fullOuter;
538
+ }
539
+ /**
540
+ * LATERAL subquery join operator.
541
+ */
542
+ export declare class LateralJoinOperator extends Operator {
543
+ private readonly _left;
544
+ private readonly _subquery;
545
+ private readonly _alias;
546
+ private readonly _subqueryExecutor;
547
+ constructor(left: Operator, subquery: Record<string, unknown>, alias: string, subqueryExecutor: (stmt: Record<string, unknown>, params: unknown[], outerRow?: Record<string, unknown>) => SQLResult);
548
+ execute(context: ExecutionContext): PostingList;
549
+ }
550
+ export {};
551
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../src/sql/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Callback type for executing subqueries from within ExprEvaluator.
3
+ * Takes a SelectStmt AST node and an optional outer row (for correlated subqueries)
4
+ * and returns {columns, rows}.
5
+ */
6
+ export type SubqueryExecutor = (stmt: Record<string, unknown>, outerRow?: Record<string, unknown>) => {
7
+ columns: string[];
8
+ rows: Record<string, unknown>[];
9
+ };
10
+ export declare class ExprEvaluator {
11
+ private _params;
12
+ private _sequences;
13
+ private _outerRow;
14
+ private _subqueryExecutor;
15
+ constructor(opts?: {
16
+ params?: unknown[];
17
+ sequences?: Map<string, {
18
+ current: number;
19
+ increment: number;
20
+ }>;
21
+ outerRow?: Record<string, unknown>;
22
+ subqueryExecutor?: SubqueryExecutor;
23
+ });
24
+ evaluate(node: Record<string, unknown>, row: Record<string, unknown>): unknown;
25
+ private _evalColumnRef;
26
+ private _evalConst;
27
+ private _evalAExpr;
28
+ private _applyOp;
29
+ private _evalBoolExpr;
30
+ private _evalFuncCall;
31
+ private _evalNullTest;
32
+ private _evalSQLValueFunction;
33
+ private _evalCaseExpr;
34
+ private _evalTypeCast;
35
+ private _evalParamRef;
36
+ private _evalSubLink;
37
+ private _extractSubLinkOperator;
38
+ private _compareValues;
39
+ private _evalCoalesceExpr;
40
+ private _evalMinMaxExpr;
41
+ private _evalBooleanTest;
42
+ }
43
+ //# sourceMappingURL=expr-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expr-evaluator.d.ts","sourceRoot":"","sources":["../../../../src/sql/expr-evaluator.ts"],"names":[],"mappings":"AA24CA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAAE,CAAC;AAE5D,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,UAAU,CAA6D;IAC/E,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAA0B;gBAEvC,IAAI,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;QACnB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC;IAOD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IA4E9E,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,UAAU;IAuElB,OAAO,CAAC,UAAU;IAqMlB,OAAO,CAAC,QAAQ;IAuQhB,OAAO,CAAC,aAAa;IAuCrB,OAAO,CAAC,aAAa;IA0MrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,qBAAqB;IAyC7B,OAAO,CAAC,aAAa;IA0CrB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,YAAY;IA0DpB,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;CAiCzB"}
@@ -0,0 +1,60 @@
1
+ import type { Operator, ExecutionContext } from "../operators/base.js";
2
+ export type FTSTokenType = "TERM" | "PHRASE" | "VECTOR" | "AND" | "OR" | "NOT" | "LPAREN" | "RPAREN" | "COLON" | "EOF";
3
+ export interface FTSToken {
4
+ readonly type: FTSTokenType;
5
+ readonly value: string;
6
+ readonly pos: number;
7
+ }
8
+ export declare function tokenizeFts(source: string): FTSToken[];
9
+ export interface TermNode {
10
+ readonly type: "term";
11
+ readonly field: string | null;
12
+ readonly term: string;
13
+ }
14
+ export interface PhraseNode {
15
+ readonly type: "phrase";
16
+ readonly field: string | null;
17
+ readonly phrase: string;
18
+ }
19
+ export interface VectorNode {
20
+ readonly type: "vector";
21
+ readonly field: string | null;
22
+ readonly values: readonly number[];
23
+ }
24
+ export interface AndNode {
25
+ readonly type: "and";
26
+ readonly left: FTSNode;
27
+ readonly right: FTSNode;
28
+ }
29
+ export interface OrNode {
30
+ readonly type: "or";
31
+ readonly left: FTSNode;
32
+ readonly right: FTSNode;
33
+ }
34
+ export interface NotNode {
35
+ readonly type: "not";
36
+ readonly operand: FTSNode;
37
+ }
38
+ export type FTSNode = TermNode | PhraseNode | VectorNode | AndNode | OrNode | NotNode;
39
+ export declare class FTSParser {
40
+ private _tokens;
41
+ private _pos;
42
+ constructor(tokens: FTSToken[]);
43
+ parse(): FTSNode;
44
+ private _peek;
45
+ private _advance;
46
+ private _expect;
47
+ private _orExpr;
48
+ private _andExpr;
49
+ private _unary;
50
+ private _primary;
51
+ }
52
+ export declare function parseFtsQuery(source: string): FTSNode;
53
+ interface CompilerLike {
54
+ _makeTextSearchOp(field: string | null, query: string, ctx: ExecutionContext, opts?: {
55
+ bayesian?: boolean;
56
+ }): Operator;
57
+ }
58
+ export declare function compileFtsMatch(queryString: string, defaultField: string | null, ctx: ExecutionContext, compiler: CompilerLike): Operator;
59
+ export {};
60
+ //# sourceMappingURL=fts-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-query.d.ts","sourceRoot":"","sources":["../../../../src/sql/fts-query.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAiBvE,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AA0BD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CA2FtD;AAID,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAItF,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,IAAI,CAAS;gBAET,MAAM,EAAE,QAAQ,EAAE;IAK9B,KAAK,IAAI,OAAO;IAYhB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,QAAQ;IAyBhB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,QAAQ;CAqDjB;AAkBD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIrD;AAID,UAAU,YAAY;IACpB,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,gBAAgB,EACrB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,QAAQ,CAAC;CACb;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,YAAY,GACrB,QAAQ,CAIV"}