flowquery 1.0.46 → 1.0.47

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 (413) hide show
  1. package/dist/index.d.ts +0 -7
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -4
  4. package/dist/index.js.map +1 -1
  5. package/package.json +4 -1
  6. package/.editorconfig +0 -21
  7. package/.gitattributes +0 -3
  8. package/.github/workflows/npm-publish.yml +0 -32
  9. package/.github/workflows/python-publish.yml +0 -143
  10. package/.github/workflows/release.yml +0 -107
  11. package/.husky/pre-commit +0 -28
  12. package/.prettierrc +0 -22
  13. package/CODE_OF_CONDUCT.md +0 -10
  14. package/FlowQueryLogoIcon.png +0 -0
  15. package/SECURITY.md +0 -14
  16. package/SUPPORT.md +0 -13
  17. package/docs/flowquery.min.js +0 -1
  18. package/docs/index.html +0 -105
  19. package/flowquery-py/CONTRIBUTING.md +0 -127
  20. package/flowquery-py/README.md +0 -67
  21. package/flowquery-py/misc/data/test.json +0 -10
  22. package/flowquery-py/misc/data/users.json +0 -242
  23. package/flowquery-py/notebooks/TestFlowQuery.ipynb +0 -440
  24. package/flowquery-py/pyproject.toml +0 -121
  25. package/flowquery-py/setup_env.ps1 +0 -92
  26. package/flowquery-py/setup_env.sh +0 -87
  27. package/flowquery-py/src/__init__.py +0 -38
  28. package/flowquery-py/src/__main__.py +0 -10
  29. package/flowquery-py/src/compute/__init__.py +0 -6
  30. package/flowquery-py/src/compute/flowquery.py +0 -68
  31. package/flowquery-py/src/compute/runner.py +0 -64
  32. package/flowquery-py/src/extensibility.py +0 -52
  33. package/flowquery-py/src/graph/__init__.py +0 -31
  34. package/flowquery-py/src/graph/data.py +0 -136
  35. package/flowquery-py/src/graph/database.py +0 -141
  36. package/flowquery-py/src/graph/hops.py +0 -43
  37. package/flowquery-py/src/graph/node.py +0 -143
  38. package/flowquery-py/src/graph/node_data.py +0 -26
  39. package/flowquery-py/src/graph/node_reference.py +0 -50
  40. package/flowquery-py/src/graph/pattern.py +0 -115
  41. package/flowquery-py/src/graph/pattern_expression.py +0 -67
  42. package/flowquery-py/src/graph/patterns.py +0 -42
  43. package/flowquery-py/src/graph/physical_node.py +0 -41
  44. package/flowquery-py/src/graph/physical_relationship.py +0 -36
  45. package/flowquery-py/src/graph/relationship.py +0 -193
  46. package/flowquery-py/src/graph/relationship_data.py +0 -36
  47. package/flowquery-py/src/graph/relationship_match_collector.py +0 -85
  48. package/flowquery-py/src/graph/relationship_reference.py +0 -21
  49. package/flowquery-py/src/io/__init__.py +0 -5
  50. package/flowquery-py/src/io/command_line.py +0 -108
  51. package/flowquery-py/src/parsing/__init__.py +0 -17
  52. package/flowquery-py/src/parsing/alias.py +0 -20
  53. package/flowquery-py/src/parsing/alias_option.py +0 -11
  54. package/flowquery-py/src/parsing/ast_node.py +0 -147
  55. package/flowquery-py/src/parsing/base_parser.py +0 -84
  56. package/flowquery-py/src/parsing/components/__init__.py +0 -19
  57. package/flowquery-py/src/parsing/components/csv.py +0 -8
  58. package/flowquery-py/src/parsing/components/from_.py +0 -12
  59. package/flowquery-py/src/parsing/components/headers.py +0 -12
  60. package/flowquery-py/src/parsing/components/json.py +0 -8
  61. package/flowquery-py/src/parsing/components/null.py +0 -10
  62. package/flowquery-py/src/parsing/components/post.py +0 -8
  63. package/flowquery-py/src/parsing/components/text.py +0 -8
  64. package/flowquery-py/src/parsing/context.py +0 -50
  65. package/flowquery-py/src/parsing/data_structures/__init__.py +0 -15
  66. package/flowquery-py/src/parsing/data_structures/associative_array.py +0 -41
  67. package/flowquery-py/src/parsing/data_structures/json_array.py +0 -30
  68. package/flowquery-py/src/parsing/data_structures/key_value_pair.py +0 -38
  69. package/flowquery-py/src/parsing/data_structures/lookup.py +0 -51
  70. package/flowquery-py/src/parsing/data_structures/range_lookup.py +0 -42
  71. package/flowquery-py/src/parsing/expressions/__init__.py +0 -61
  72. package/flowquery-py/src/parsing/expressions/boolean.py +0 -20
  73. package/flowquery-py/src/parsing/expressions/expression.py +0 -141
  74. package/flowquery-py/src/parsing/expressions/expression_map.py +0 -26
  75. package/flowquery-py/src/parsing/expressions/f_string.py +0 -27
  76. package/flowquery-py/src/parsing/expressions/identifier.py +0 -21
  77. package/flowquery-py/src/parsing/expressions/number.py +0 -32
  78. package/flowquery-py/src/parsing/expressions/operator.py +0 -271
  79. package/flowquery-py/src/parsing/expressions/reference.py +0 -47
  80. package/flowquery-py/src/parsing/expressions/string.py +0 -27
  81. package/flowquery-py/src/parsing/functions/__init__.py +0 -127
  82. package/flowquery-py/src/parsing/functions/aggregate_function.py +0 -60
  83. package/flowquery-py/src/parsing/functions/async_function.py +0 -65
  84. package/flowquery-py/src/parsing/functions/avg.py +0 -55
  85. package/flowquery-py/src/parsing/functions/coalesce.py +0 -43
  86. package/flowquery-py/src/parsing/functions/collect.py +0 -75
  87. package/flowquery-py/src/parsing/functions/count.py +0 -79
  88. package/flowquery-py/src/parsing/functions/date_.py +0 -61
  89. package/flowquery-py/src/parsing/functions/datetime_.py +0 -62
  90. package/flowquery-py/src/parsing/functions/duration.py +0 -159
  91. package/flowquery-py/src/parsing/functions/element_id.py +0 -50
  92. package/flowquery-py/src/parsing/functions/function.py +0 -68
  93. package/flowquery-py/src/parsing/functions/function_factory.py +0 -170
  94. package/flowquery-py/src/parsing/functions/function_metadata.py +0 -148
  95. package/flowquery-py/src/parsing/functions/functions.py +0 -67
  96. package/flowquery-py/src/parsing/functions/head.py +0 -39
  97. package/flowquery-py/src/parsing/functions/id_.py +0 -49
  98. package/flowquery-py/src/parsing/functions/join.py +0 -49
  99. package/flowquery-py/src/parsing/functions/keys.py +0 -34
  100. package/flowquery-py/src/parsing/functions/last.py +0 -39
  101. package/flowquery-py/src/parsing/functions/localdatetime.py +0 -60
  102. package/flowquery-py/src/parsing/functions/localtime.py +0 -57
  103. package/flowquery-py/src/parsing/functions/max_.py +0 -49
  104. package/flowquery-py/src/parsing/functions/min_.py +0 -49
  105. package/flowquery-py/src/parsing/functions/nodes.py +0 -48
  106. package/flowquery-py/src/parsing/functions/predicate_function.py +0 -47
  107. package/flowquery-py/src/parsing/functions/predicate_sum.py +0 -49
  108. package/flowquery-py/src/parsing/functions/properties.py +0 -50
  109. package/flowquery-py/src/parsing/functions/rand.py +0 -28
  110. package/flowquery-py/src/parsing/functions/range_.py +0 -41
  111. package/flowquery-py/src/parsing/functions/reducer_element.py +0 -15
  112. package/flowquery-py/src/parsing/functions/relationships.py +0 -46
  113. package/flowquery-py/src/parsing/functions/replace.py +0 -39
  114. package/flowquery-py/src/parsing/functions/round_.py +0 -34
  115. package/flowquery-py/src/parsing/functions/schema.py +0 -40
  116. package/flowquery-py/src/parsing/functions/size.py +0 -34
  117. package/flowquery-py/src/parsing/functions/split.py +0 -54
  118. package/flowquery-py/src/parsing/functions/string_distance.py +0 -92
  119. package/flowquery-py/src/parsing/functions/stringify.py +0 -49
  120. package/flowquery-py/src/parsing/functions/substring.py +0 -76
  121. package/flowquery-py/src/parsing/functions/sum.py +0 -51
  122. package/flowquery-py/src/parsing/functions/tail.py +0 -37
  123. package/flowquery-py/src/parsing/functions/temporal_utils.py +0 -186
  124. package/flowquery-py/src/parsing/functions/time_.py +0 -57
  125. package/flowquery-py/src/parsing/functions/timestamp.py +0 -37
  126. package/flowquery-py/src/parsing/functions/to_float.py +0 -46
  127. package/flowquery-py/src/parsing/functions/to_integer.py +0 -46
  128. package/flowquery-py/src/parsing/functions/to_json.py +0 -35
  129. package/flowquery-py/src/parsing/functions/to_lower.py +0 -37
  130. package/flowquery-py/src/parsing/functions/to_string.py +0 -41
  131. package/flowquery-py/src/parsing/functions/trim.py +0 -37
  132. package/flowquery-py/src/parsing/functions/type_.py +0 -47
  133. package/flowquery-py/src/parsing/functions/value_holder.py +0 -24
  134. package/flowquery-py/src/parsing/logic/__init__.py +0 -15
  135. package/flowquery-py/src/parsing/logic/case.py +0 -28
  136. package/flowquery-py/src/parsing/logic/else_.py +0 -12
  137. package/flowquery-py/src/parsing/logic/end.py +0 -8
  138. package/flowquery-py/src/parsing/logic/then.py +0 -12
  139. package/flowquery-py/src/parsing/logic/when.py +0 -12
  140. package/flowquery-py/src/parsing/operations/__init__.py +0 -46
  141. package/flowquery-py/src/parsing/operations/aggregated_return.py +0 -25
  142. package/flowquery-py/src/parsing/operations/aggregated_with.py +0 -22
  143. package/flowquery-py/src/parsing/operations/call.py +0 -73
  144. package/flowquery-py/src/parsing/operations/create_node.py +0 -35
  145. package/flowquery-py/src/parsing/operations/create_relationship.py +0 -35
  146. package/flowquery-py/src/parsing/operations/delete_node.py +0 -29
  147. package/flowquery-py/src/parsing/operations/delete_relationship.py +0 -29
  148. package/flowquery-py/src/parsing/operations/group_by.py +0 -148
  149. package/flowquery-py/src/parsing/operations/limit.py +0 -33
  150. package/flowquery-py/src/parsing/operations/load.py +0 -148
  151. package/flowquery-py/src/parsing/operations/match.py +0 -52
  152. package/flowquery-py/src/parsing/operations/operation.py +0 -69
  153. package/flowquery-py/src/parsing/operations/order_by.py +0 -114
  154. package/flowquery-py/src/parsing/operations/projection.py +0 -21
  155. package/flowquery-py/src/parsing/operations/return_op.py +0 -88
  156. package/flowquery-py/src/parsing/operations/union.py +0 -115
  157. package/flowquery-py/src/parsing/operations/union_all.py +0 -17
  158. package/flowquery-py/src/parsing/operations/unwind.py +0 -42
  159. package/flowquery-py/src/parsing/operations/where.py +0 -43
  160. package/flowquery-py/src/parsing/operations/with_op.py +0 -18
  161. package/flowquery-py/src/parsing/parser.py +0 -1384
  162. package/flowquery-py/src/parsing/parser_state.py +0 -26
  163. package/flowquery-py/src/parsing/token_to_node.py +0 -109
  164. package/flowquery-py/src/tokenization/__init__.py +0 -23
  165. package/flowquery-py/src/tokenization/keyword.py +0 -54
  166. package/flowquery-py/src/tokenization/operator.py +0 -29
  167. package/flowquery-py/src/tokenization/string_walker.py +0 -158
  168. package/flowquery-py/src/tokenization/symbol.py +0 -19
  169. package/flowquery-py/src/tokenization/token.py +0 -693
  170. package/flowquery-py/src/tokenization/token_mapper.py +0 -53
  171. package/flowquery-py/src/tokenization/token_type.py +0 -21
  172. package/flowquery-py/src/tokenization/tokenizer.py +0 -214
  173. package/flowquery-py/src/tokenization/trie.py +0 -125
  174. package/flowquery-py/src/utils/__init__.py +0 -6
  175. package/flowquery-py/src/utils/object_utils.py +0 -20
  176. package/flowquery-py/src/utils/string_utils.py +0 -113
  177. package/flowquery-py/tests/__init__.py +0 -1
  178. package/flowquery-py/tests/compute/__init__.py +0 -1
  179. package/flowquery-py/tests/compute/test_runner.py +0 -4902
  180. package/flowquery-py/tests/graph/__init__.py +0 -1
  181. package/flowquery-py/tests/graph/test_create.py +0 -56
  182. package/flowquery-py/tests/graph/test_data.py +0 -73
  183. package/flowquery-py/tests/graph/test_match.py +0 -40
  184. package/flowquery-py/tests/parsing/__init__.py +0 -1
  185. package/flowquery-py/tests/parsing/test_context.py +0 -34
  186. package/flowquery-py/tests/parsing/test_expression.py +0 -248
  187. package/flowquery-py/tests/parsing/test_parser.py +0 -1237
  188. package/flowquery-py/tests/test_extensibility.py +0 -611
  189. package/flowquery-py/tests/tokenization/__init__.py +0 -1
  190. package/flowquery-py/tests/tokenization/test_token_mapper.py +0 -60
  191. package/flowquery-py/tests/tokenization/test_tokenizer.py +0 -198
  192. package/flowquery-py/tests/tokenization/test_trie.py +0 -30
  193. package/flowquery-vscode/.vscode-test.mjs +0 -5
  194. package/flowquery-vscode/.vscodeignore +0 -13
  195. package/flowquery-vscode/LICENSE +0 -21
  196. package/flowquery-vscode/README.md +0 -11
  197. package/flowquery-vscode/demo/FlowQueryVSCodeDemo.gif +0 -0
  198. package/flowquery-vscode/eslint.config.mjs +0 -25
  199. package/flowquery-vscode/extension.js +0 -508
  200. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +0 -1
  201. package/flowquery-vscode/flowquery-worker.js +0 -66
  202. package/flowquery-vscode/images/FlowQueryLogoIcon.png +0 -0
  203. package/flowquery-vscode/jsconfig.json +0 -13
  204. package/flowquery-vscode/libs/page.css +0 -53
  205. package/flowquery-vscode/libs/table.css +0 -13
  206. package/flowquery-vscode/libs/tabs.css +0 -66
  207. package/flowquery-vscode/package-lock.json +0 -2917
  208. package/flowquery-vscode/package.json +0 -51
  209. package/flowquery-vscode/test/extension.test.js +0 -196
  210. package/flowquery-vscode/test/worker.test.js +0 -25
  211. package/flowquery-vscode/vsc-extension-quickstart.md +0 -42
  212. package/jest.config.js +0 -14
  213. package/misc/apps/RAG/README.md +0 -29
  214. package/misc/apps/RAG/data/chats.json +0 -302
  215. package/misc/apps/RAG/data/emails.json +0 -182
  216. package/misc/apps/RAG/data/events.json +0 -226
  217. package/misc/apps/RAG/data/files.json +0 -172
  218. package/misc/apps/RAG/data/users.json +0 -158
  219. package/misc/apps/RAG/jest.config.js +0 -21
  220. package/misc/apps/RAG/package.json +0 -48
  221. package/misc/apps/RAG/public/index.html +0 -18
  222. package/misc/apps/RAG/src/App.css +0 -42
  223. package/misc/apps/RAG/src/App.tsx +0 -50
  224. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.css +0 -172
  225. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.tsx +0 -380
  226. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +0 -245
  227. package/misc/apps/RAG/src/components/ChatContainer.css +0 -67
  228. package/misc/apps/RAG/src/components/ChatContainer.tsx +0 -242
  229. package/misc/apps/RAG/src/components/ChatInput.css +0 -23
  230. package/misc/apps/RAG/src/components/ChatInput.tsx +0 -76
  231. package/misc/apps/RAG/src/components/ChatMessage.css +0 -160
  232. package/misc/apps/RAG/src/components/ChatMessage.tsx +0 -286
  233. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +0 -708
  234. package/misc/apps/RAG/src/components/FlowQueryRunner.css +0 -113
  235. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +0 -371
  236. package/misc/apps/RAG/src/components/index.ts +0 -28
  237. package/misc/apps/RAG/src/graph/index.ts +0 -19
  238. package/misc/apps/RAG/src/graph/initializeGraph.ts +0 -254
  239. package/misc/apps/RAG/src/index.tsx +0 -29
  240. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +0 -327
  241. package/misc/apps/RAG/src/prompts/index.ts +0 -10
  242. package/misc/apps/RAG/src/tests/graph.test.ts +0 -35
  243. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +0 -130
  244. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +0 -208
  245. package/misc/apps/RAG/src/utils/Llm.ts +0 -248
  246. package/misc/apps/RAG/src/utils/index.ts +0 -12
  247. package/misc/apps/RAG/tsconfig.json +0 -22
  248. package/misc/apps/RAG/webpack.config.js +0 -43
  249. package/misc/apps/README.md +0 -1
  250. package/misc/queries/analyze_catfacts.cql +0 -75
  251. package/misc/queries/azure_openai_completions.cql +0 -13
  252. package/misc/queries/azure_openai_models.cql +0 -9
  253. package/misc/queries/mock_pipeline.cql +0 -84
  254. package/misc/queries/openai_completions.cql +0 -15
  255. package/misc/queries/openai_models.cql +0 -13
  256. package/misc/queries/test.cql +0 -6
  257. package/misc/queries/tool_inference.cql +0 -24
  258. package/misc/queries/wisdom.cql +0 -6
  259. package/misc/queries/wisdom_letter_histogram.cql +0 -8
  260. package/src/compute/flowquery.ts +0 -46
  261. package/src/compute/runner.ts +0 -66
  262. package/src/extensibility.ts +0 -45
  263. package/src/graph/data.ts +0 -130
  264. package/src/graph/database.ts +0 -143
  265. package/src/graph/hops.ts +0 -22
  266. package/src/graph/node.ts +0 -122
  267. package/src/graph/node_data.ts +0 -18
  268. package/src/graph/node_reference.ts +0 -38
  269. package/src/graph/pattern.ts +0 -110
  270. package/src/graph/pattern_expression.ts +0 -48
  271. package/src/graph/patterns.ts +0 -36
  272. package/src/graph/physical_node.ts +0 -23
  273. package/src/graph/physical_relationship.ts +0 -23
  274. package/src/graph/relationship.ts +0 -167
  275. package/src/graph/relationship_data.ts +0 -31
  276. package/src/graph/relationship_match_collector.ts +0 -64
  277. package/src/graph/relationship_reference.ts +0 -25
  278. package/src/index.browser.ts +0 -46
  279. package/src/index.node.ts +0 -55
  280. package/src/index.ts +0 -12
  281. package/src/io/command_line.ts +0 -74
  282. package/src/parsing/alias.ts +0 -23
  283. package/src/parsing/alias_option.ts +0 -5
  284. package/src/parsing/ast_node.ts +0 -153
  285. package/src/parsing/base_parser.ts +0 -98
  286. package/src/parsing/components/csv.ts +0 -9
  287. package/src/parsing/components/from.ts +0 -12
  288. package/src/parsing/components/headers.ts +0 -12
  289. package/src/parsing/components/json.ts +0 -9
  290. package/src/parsing/components/null.ts +0 -9
  291. package/src/parsing/components/post.ts +0 -9
  292. package/src/parsing/components/text.ts +0 -9
  293. package/src/parsing/context.ts +0 -54
  294. package/src/parsing/data_structures/associative_array.ts +0 -43
  295. package/src/parsing/data_structures/json_array.ts +0 -31
  296. package/src/parsing/data_structures/key_value_pair.ts +0 -37
  297. package/src/parsing/data_structures/lookup.ts +0 -44
  298. package/src/parsing/data_structures/range_lookup.ts +0 -36
  299. package/src/parsing/expressions/boolean.ts +0 -21
  300. package/src/parsing/expressions/expression.ts +0 -150
  301. package/src/parsing/expressions/expression_map.ts +0 -22
  302. package/src/parsing/expressions/f_string.ts +0 -26
  303. package/src/parsing/expressions/identifier.ts +0 -22
  304. package/src/parsing/expressions/number.ts +0 -40
  305. package/src/parsing/expressions/operator.ts +0 -354
  306. package/src/parsing/expressions/reference.ts +0 -45
  307. package/src/parsing/expressions/string.ts +0 -34
  308. package/src/parsing/functions/aggregate_function.ts +0 -58
  309. package/src/parsing/functions/async_function.ts +0 -64
  310. package/src/parsing/functions/avg.ts +0 -47
  311. package/src/parsing/functions/coalesce.ts +0 -49
  312. package/src/parsing/functions/collect.ts +0 -54
  313. package/src/parsing/functions/count.ts +0 -54
  314. package/src/parsing/functions/date.ts +0 -63
  315. package/src/parsing/functions/datetime.ts +0 -63
  316. package/src/parsing/functions/duration.ts +0 -143
  317. package/src/parsing/functions/element_id.ts +0 -51
  318. package/src/parsing/functions/function.ts +0 -60
  319. package/src/parsing/functions/function_factory.ts +0 -195
  320. package/src/parsing/functions/function_metadata.ts +0 -217
  321. package/src/parsing/functions/functions.ts +0 -70
  322. package/src/parsing/functions/head.ts +0 -42
  323. package/src/parsing/functions/id.ts +0 -51
  324. package/src/parsing/functions/join.ts +0 -40
  325. package/src/parsing/functions/keys.ts +0 -29
  326. package/src/parsing/functions/last.ts +0 -42
  327. package/src/parsing/functions/localdatetime.ts +0 -63
  328. package/src/parsing/functions/localtime.ts +0 -58
  329. package/src/parsing/functions/max.ts +0 -37
  330. package/src/parsing/functions/min.ts +0 -37
  331. package/src/parsing/functions/nodes.ts +0 -54
  332. package/src/parsing/functions/predicate_function.ts +0 -48
  333. package/src/parsing/functions/predicate_sum.ts +0 -47
  334. package/src/parsing/functions/properties.ts +0 -56
  335. package/src/parsing/functions/rand.ts +0 -21
  336. package/src/parsing/functions/range.ts +0 -37
  337. package/src/parsing/functions/reducer_element.ts +0 -10
  338. package/src/parsing/functions/relationships.ts +0 -52
  339. package/src/parsing/functions/replace.ts +0 -38
  340. package/src/parsing/functions/round.ts +0 -28
  341. package/src/parsing/functions/schema.ts +0 -39
  342. package/src/parsing/functions/size.ts +0 -28
  343. package/src/parsing/functions/split.ts +0 -45
  344. package/src/parsing/functions/string_distance.ts +0 -83
  345. package/src/parsing/functions/stringify.ts +0 -37
  346. package/src/parsing/functions/substring.ts +0 -68
  347. package/src/parsing/functions/sum.ts +0 -41
  348. package/src/parsing/functions/tail.ts +0 -39
  349. package/src/parsing/functions/temporal_utils.ts +0 -180
  350. package/src/parsing/functions/time.ts +0 -58
  351. package/src/parsing/functions/timestamp.ts +0 -37
  352. package/src/parsing/functions/to_float.ts +0 -50
  353. package/src/parsing/functions/to_integer.ts +0 -50
  354. package/src/parsing/functions/to_json.ts +0 -28
  355. package/src/parsing/functions/to_lower.ts +0 -28
  356. package/src/parsing/functions/to_string.ts +0 -32
  357. package/src/parsing/functions/trim.ts +0 -28
  358. package/src/parsing/functions/type.ts +0 -39
  359. package/src/parsing/functions/value_holder.ts +0 -13
  360. package/src/parsing/logic/case.ts +0 -26
  361. package/src/parsing/logic/else.ts +0 -12
  362. package/src/parsing/logic/end.ts +0 -9
  363. package/src/parsing/logic/then.ts +0 -12
  364. package/src/parsing/logic/when.ts +0 -12
  365. package/src/parsing/operations/aggregated_return.ts +0 -22
  366. package/src/parsing/operations/aggregated_with.ts +0 -18
  367. package/src/parsing/operations/call.ts +0 -69
  368. package/src/parsing/operations/create_node.ts +0 -39
  369. package/src/parsing/operations/create_relationship.ts +0 -38
  370. package/src/parsing/operations/delete_node.ts +0 -33
  371. package/src/parsing/operations/delete_relationship.ts +0 -32
  372. package/src/parsing/operations/group_by.ts +0 -137
  373. package/src/parsing/operations/limit.ts +0 -31
  374. package/src/parsing/operations/load.ts +0 -146
  375. package/src/parsing/operations/match.ts +0 -54
  376. package/src/parsing/operations/operation.ts +0 -69
  377. package/src/parsing/operations/order_by.ts +0 -126
  378. package/src/parsing/operations/projection.ts +0 -18
  379. package/src/parsing/operations/return.ts +0 -76
  380. package/src/parsing/operations/union.ts +0 -114
  381. package/src/parsing/operations/union_all.ts +0 -16
  382. package/src/parsing/operations/unwind.ts +0 -36
  383. package/src/parsing/operations/where.ts +0 -42
  384. package/src/parsing/operations/with.ts +0 -20
  385. package/src/parsing/parser.ts +0 -1641
  386. package/src/parsing/parser_state.ts +0 -25
  387. package/src/parsing/token_to_node.ts +0 -114
  388. package/src/tokenization/keyword.ts +0 -50
  389. package/src/tokenization/operator.ts +0 -25
  390. package/src/tokenization/string_walker.ts +0 -197
  391. package/src/tokenization/symbol.ts +0 -15
  392. package/src/tokenization/token.ts +0 -764
  393. package/src/tokenization/token_mapper.ts +0 -53
  394. package/src/tokenization/token_type.ts +0 -16
  395. package/src/tokenization/tokenizer.ts +0 -250
  396. package/src/tokenization/trie.ts +0 -117
  397. package/src/utils/object_utils.ts +0 -17
  398. package/src/utils/string_utils.ts +0 -114
  399. package/tests/compute/runner.test.ts +0 -4559
  400. package/tests/extensibility.test.ts +0 -643
  401. package/tests/graph/create.test.ts +0 -36
  402. package/tests/graph/data.test.ts +0 -58
  403. package/tests/graph/match.test.ts +0 -29
  404. package/tests/parsing/context.test.ts +0 -27
  405. package/tests/parsing/expression.test.ts +0 -303
  406. package/tests/parsing/parser.test.ts +0 -1327
  407. package/tests/tokenization/token_mapper.test.ts +0 -47
  408. package/tests/tokenization/tokenizer.test.ts +0 -191
  409. package/tests/tokenization/trie.test.ts +0 -20
  410. package/tsconfig.json +0 -19
  411. package/typedoc.json +0 -16
  412. package/vscode-settings.json.recommended +0 -16
  413. package/webpack.config.js +0 -26
@@ -1,54 +0,0 @@
1
- import Node from "../../graph/node";
2
- import Pattern from "../../graph/pattern";
3
- import Patterns from "../../graph/patterns";
4
- import Operation from "./operation";
5
-
6
- class Match extends Operation {
7
- private _patterns: Patterns | null = null;
8
- private _optional: boolean = false;
9
-
10
- constructor(patterns: Pattern[] = [], optional: boolean = false) {
11
- super();
12
- this._patterns = new Patterns(patterns);
13
- this._optional = optional;
14
- }
15
- public get patterns(): Pattern[] {
16
- return this._patterns ? this._patterns.patterns : [];
17
- }
18
- public get optional(): boolean {
19
- return this._optional;
20
- }
21
- protected toString(): string {
22
- return this._optional ? "OptionalMatch" : "Match";
23
- }
24
- /**
25
- * Executes the match operation by chaining the patterns together.
26
- * After each pattern match, it continues to the next operation in the chain.
27
- * If optional and no match is found, continues with null values.
28
- * @return Promise<void>
29
- */
30
- public async run(): Promise<void> {
31
- await this._patterns!.initialize();
32
- let matched = false;
33
- this._patterns!.toDoNext = async () => {
34
- matched = true;
35
- // Continue to the next operation after all patterns are matched
36
- await this.next?.run();
37
- };
38
- // Kick off the graph pattern traversal
39
- await this._patterns!.traverse();
40
- // For OPTIONAL MATCH: if nothing matched, continue with null values
41
- if (!matched && this._optional) {
42
- for (const pattern of this._patterns!.patterns) {
43
- for (const element of pattern.chain) {
44
- if (element instanceof Node) {
45
- element.setValue(null!);
46
- }
47
- }
48
- }
49
- await this.next?.run();
50
- }
51
- }
52
- }
53
-
54
- export default Match;
@@ -1,69 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- /**
4
- * Base class for all FlowQuery operations.
5
- *
6
- * Operations represent the main statements in FlowQuery (WITH, UNWIND, RETURN, LOAD, WHERE).
7
- * They form a linked list structure and can be executed sequentially.
8
- *
9
- * @abstract
10
- */
11
- abstract class Operation extends ASTNode {
12
- private _previous: Operation | null = null;
13
- private _next: Operation | null = null;
14
-
15
- /**
16
- * Creates a new Operation instance.
17
- */
18
- constructor() {
19
- super();
20
- }
21
- public get previous(): Operation | null {
22
- return this._previous;
23
- }
24
- public set previous(value: Operation | null) {
25
- this._previous = value;
26
- }
27
- public get next(): Operation | null {
28
- return this._next;
29
- }
30
- public set next(value: Operation | null) {
31
- this._next = value;
32
- }
33
- public addSibling(operation: Operation): void {
34
- this._parent?.addChild(operation);
35
- operation.previous = this;
36
- this.next = operation;
37
- }
38
- public get isLast(): boolean {
39
- return this._next === null;
40
- }
41
-
42
- /**
43
- * Executes this operation. Must be implemented by subclasses.
44
- *
45
- * @returns A promise that resolves when the operation completes
46
- * @throws {Error} If not implemented by subclass
47
- */
48
- public async run(): Promise<void> {
49
- throw new Error("Not implemented");
50
- }
51
-
52
- /**
53
- * Finishes execution by calling finish on the next operation in the chain.
54
- *
55
- * @returns A promise that resolves when all operations finish
56
- */
57
- public async finish(): Promise<void> {
58
- await this.next?.finish();
59
- }
60
- public async initialize(): Promise<void> {
61
- await this.next?.initialize();
62
- }
63
- public reset(): void {}
64
- public get results(): Record<string, any>[] {
65
- throw new Error("Not implemented");
66
- }
67
- }
68
-
69
- export default Operation;
@@ -1,126 +0,0 @@
1
- import Expression from "../expressions/expression";
2
- import Reference from "../expressions/reference";
3
- import Operation from "./operation";
4
-
5
- export interface SortField {
6
- direction: "asc" | "desc";
7
- /** The parsed expression to evaluate for this sort field. */
8
- expression: Expression;
9
- }
10
-
11
- /**
12
- * Represents an ORDER BY operation that sorts results.
13
- *
14
- * Can be attached to a RETURN operation (sorting its results),
15
- * or used as a standalone accumulating operation after a non-aggregate WITH.
16
- *
17
- * Supports both simple field references and arbitrary expressions:
18
- * @example
19
- * ```
20
- * RETURN x ORDER BY x DESC
21
- * RETURN x ORDER BY toLower(x.name) ASC
22
- * RETURN x ORDER BY string_distance(toLower(x.name), toLower('Thomas')) ASC
23
- * ```
24
- */
25
- class OrderBy extends Operation {
26
- private _fields: SortField[];
27
- private _results: Record<string, any>[] = [];
28
- /**
29
- * Parallel array of pre-computed sort-key tuples, one entry per
30
- * accumulated result row. Each inner array has one value per sort
31
- * field, in the same order as `_fields`.
32
- */
33
- private _sortKeys: any[][] = [];
34
-
35
- constructor(fields: SortField[]) {
36
- super();
37
- this._fields = fields;
38
- }
39
-
40
- public get fields(): SortField[] {
41
- return this._fields;
42
- }
43
-
44
- /**
45
- * Evaluates every sort-field expression against the current runtime
46
- * context and stores the resulting values. Must be called once per
47
- * accumulated row (from `Return.run()`).
48
- */
49
- public captureSortKeys(): void {
50
- this._sortKeys.push(this._fields.map((f) => f.expression.value()));
51
- }
52
-
53
- /**
54
- * Sorts an array of records using the pre-computed sort keys captured
55
- * during accumulation. When no keys have been captured (e.g.
56
- * aggregated returns), falls back to looking up simple reference
57
- * identifiers in each record.
58
- */
59
- public sort(records: Record<string, any>[]): Record<string, any>[] {
60
- const useKeys = this._sortKeys.length === records.length;
61
- // Build an index array so we can sort records and keys together.
62
- const indices = records.map((_, i) => i);
63
- const keys = this._sortKeys;
64
-
65
- // Pre-compute fallback field names for when sort keys aren't
66
- // available (aggregated returns). Simple references like `x`
67
- // map to the column name; complex expressions have no fallback.
68
- const fallbackFields: (string | null)[] = this._fields.map((f) => {
69
- const root = f.expression.firstChild();
70
- if (root instanceof Reference && f.expression.childCount() === 1) {
71
- return (root as Reference).identifier;
72
- }
73
- return null;
74
- });
75
-
76
- indices.sort((ai, bi) => {
77
- for (let f = 0; f < this._fields.length; f++) {
78
- let aVal: any;
79
- let bVal: any;
80
- if (useKeys) {
81
- aVal = keys[ai][f];
82
- bVal = keys[bi][f];
83
- } else if (fallbackFields[f] !== null) {
84
- aVal = records[ai][fallbackFields[f]!];
85
- bVal = records[bi][fallbackFields[f]!];
86
- } else {
87
- continue;
88
- }
89
- let cmp = 0;
90
- if (aVal == null && bVal == null) cmp = 0;
91
- else if (aVal == null) cmp = -1;
92
- else if (bVal == null) cmp = 1;
93
- else if (aVal < bVal) cmp = -1;
94
- else if (aVal > bVal) cmp = 1;
95
- if (cmp !== 0) {
96
- return this._fields[f].direction === "desc" ? -cmp : cmp;
97
- }
98
- }
99
- return 0;
100
- });
101
- return indices.map((i) => records[i]);
102
- }
103
-
104
- /**
105
- * When used as a standalone operation (after non-aggregate WITH),
106
- * accumulates records to sort later.
107
- */
108
- public async run(): Promise<void> {
109
- const record: Record<string, any> = {};
110
- // Collect current variable values from the context
111
- // This gets called per-row, and then finish() sorts and emits
112
- await this.next?.run();
113
- }
114
-
115
- public async initialize(): Promise<void> {
116
- this._results = [];
117
- this._sortKeys = [];
118
- await this.next?.initialize();
119
- }
120
-
121
- public get results(): Record<string, any>[] {
122
- return this._results;
123
- }
124
- }
125
-
126
- export default OrderBy;
@@ -1,18 +0,0 @@
1
- import Expression from "../expressions/expression";
2
- import Operation from "./operation";
3
-
4
- class Projection extends Operation {
5
- constructor(expressions: Expression[]) {
6
- super();
7
- this.children = expressions;
8
- }
9
- protected *expressions(): Generator<[Expression, string]> {
10
- for (let i = 0; i < this.children.length; i++) {
11
- const expression: Expression = this.children[i] as Expression;
12
- const alias = expression.alias || `expr${i}`;
13
- yield [expression, alias];
14
- }
15
- }
16
- }
17
-
18
- export default Projection;
@@ -1,76 +0,0 @@
1
- import Limit from "./limit";
2
- import OrderBy from "./order_by";
3
- import Projection from "./projection";
4
- import Where from "./where";
5
-
6
- /**
7
- * Represents a RETURN operation that produces the final query results.
8
- *
9
- * The RETURN operation evaluates expressions and collects them into result records.
10
- * It can optionally have a WHERE clause to filter results.
11
- *
12
- * @example
13
- * ```typescript
14
- * // RETURN x, y WHERE x > 0
15
- * ```
16
- */
17
- class Return extends Projection {
18
- protected _where: Where | null = null;
19
- protected _results: Record<string, any>[] = [];
20
- private _limit: Limit | null = null;
21
- protected _orderBy: OrderBy | null = null;
22
- public set where(where: Where) {
23
- this._where = where;
24
- }
25
- public get where(): boolean {
26
- if (this._where === null) {
27
- return true;
28
- }
29
- return this._where.value();
30
- }
31
- public set limit(limit: Limit) {
32
- this._limit = limit;
33
- }
34
- public set orderBy(orderBy: OrderBy) {
35
- this._orderBy = orderBy;
36
- }
37
- public async run(): Promise<void> {
38
- if (!this.where) {
39
- return;
40
- }
41
- // When ORDER BY is present, skip limit during accumulation;
42
- // limit will be applied after sorting in get results()
43
- if (this._orderBy === null && this._limit !== null && this._limit.isLimitReached) {
44
- return;
45
- }
46
- const record: Map<string, any> = new Map();
47
- for (const [expression, alias] of this.expressions()) {
48
- const raw = expression.value();
49
- const value: any = typeof raw === "object" && raw !== null ? structuredClone(raw) : raw;
50
- record.set(alias, value);
51
- }
52
- // Capture sort-key values while expression bindings are still live.
53
- if (this._orderBy !== null) {
54
- this._orderBy.captureSortKeys();
55
- }
56
- this._results.push(Object.fromEntries(record));
57
- if (this._orderBy === null && this._limit !== null) {
58
- this._limit.increment();
59
- }
60
- }
61
- public async initialize(): Promise<void> {
62
- this._results = [];
63
- }
64
- public get results(): Record<string, any>[] {
65
- let results = this._results;
66
- if (this._orderBy !== null) {
67
- results = this._orderBy.sort(results);
68
- }
69
- if (this._orderBy !== null && this._limit !== null) {
70
- results = results.slice(0, this._limit.limitValue);
71
- }
72
- return results;
73
- }
74
- }
75
-
76
- export default Return;
@@ -1,114 +0,0 @@
1
- import Operation from "./operation";
2
-
3
- /**
4
- * Represents a UNION operation that combines results from two sub-queries.
5
- *
6
- * UNION merges the results of a left and right query pipeline, removing
7
- * duplicate rows. Both sides must return the same column names.
8
- *
9
- * @example
10
- * ```
11
- * WITH 1 AS x RETURN x
12
- * UNION
13
- * WITH 2 AS x RETURN x
14
- * // Results: [{x: 1}, {x: 2}]
15
- * ```
16
- */
17
- class Union extends Operation {
18
- protected _left: Operation | null = null;
19
- protected _right: Operation | null = null;
20
- protected _results: Record<string, any>[] = [];
21
-
22
- public set left(operation: Operation) {
23
- this._left = operation;
24
- }
25
- public get left(): Operation {
26
- if (!this._left) {
27
- throw new Error("Left operation is not set");
28
- }
29
- return this._left;
30
- }
31
- public set right(operation: Operation) {
32
- this._right = operation;
33
- }
34
- public get right(): Operation {
35
- if (!this._right) {
36
- throw new Error("Right operation is not set");
37
- }
38
- return this._right;
39
- }
40
-
41
- private lastInChain(operation: Operation): Operation {
42
- let current = operation;
43
- while (current.next) {
44
- current = current.next;
45
- }
46
- return current;
47
- }
48
-
49
- public async initialize(): Promise<void> {
50
- this._results = [];
51
- await this.next?.initialize();
52
- }
53
-
54
- public async run(): Promise<void> {
55
- // Execute left pipeline
56
- await this._left!.initialize();
57
- await this._left!.run();
58
- await this._left!.finish();
59
- const leftLast = this.lastInChain(this._left!);
60
- const leftResults: Record<string, any>[] = leftLast.results;
61
-
62
- // Execute right pipeline
63
- await this._right!.initialize();
64
- await this._right!.run();
65
- await this._right!.finish();
66
- const rightLast = this.lastInChain(this._right!);
67
- const rightResults: Record<string, any>[] = rightLast.results;
68
-
69
- // Validate column names match
70
- if (leftResults.length > 0 && rightResults.length > 0) {
71
- const leftKeys = Object.keys(leftResults[0]).sort().join(",");
72
- const rightKeys = Object.keys(rightResults[0]).sort().join(",");
73
- if (leftKeys !== rightKeys) {
74
- throw new Error(
75
- "All sub queries in a UNION must have the same return column names"
76
- );
77
- }
78
- }
79
-
80
- // Combine results
81
- this._results = this.combine(leftResults, rightResults);
82
- }
83
-
84
- /**
85
- * Combines results from left and right pipelines.
86
- * UNION removes duplicates; subclass UnionAll overrides to keep all rows.
87
- */
88
- protected combine(
89
- left: Record<string, any>[],
90
- right: Record<string, any>[]
91
- ): Record<string, any>[] {
92
- const combined = [...left];
93
- for (const row of right) {
94
- const serialized = JSON.stringify(row);
95
- const isDuplicate = combined.some(
96
- (existing) => JSON.stringify(existing) === serialized
97
- );
98
- if (!isDuplicate) {
99
- combined.push(row);
100
- }
101
- }
102
- return combined;
103
- }
104
-
105
- public async finish(): Promise<void> {
106
- await this.next?.finish();
107
- }
108
-
109
- public get results(): Record<string, any>[] {
110
- return this._results;
111
- }
112
- }
113
-
114
- export default Union;
@@ -1,16 +0,0 @@
1
- import Union from "./union";
2
-
3
- /**
4
- * Represents a UNION ALL operation that concatenates results from two sub-queries
5
- * without removing duplicates.
6
- */
7
- class UnionAll extends Union {
8
- protected combine(
9
- left: Record<string, any>[],
10
- right: Record<string, any>[]
11
- ): Record<string, any>[] {
12
- return [...left, ...right];
13
- }
14
- }
15
-
16
- export default UnionAll;
@@ -1,36 +0,0 @@
1
- import Expression from "../expressions/expression";
2
- import Operation from "./operation";
3
-
4
- class Unwind extends Operation {
5
- private _value: any;
6
- constructor(expression: Expression) {
7
- super();
8
- this.addChild(expression);
9
- }
10
- public get expression(): Expression {
11
- return this.children[0] as Expression;
12
- }
13
- public get as(): string {
14
- return this.children[1].value as unknown as string;
15
- }
16
- public async run(): Promise<void> {
17
- const expression = this.expression.value();
18
- if (expression === null || expression === undefined) {
19
- this.next?.reset();
20
- return;
21
- }
22
- if (!Array.isArray(expression)) {
23
- throw new Error("Expected array");
24
- }
25
- for (let i = 0; i < expression.length; i++) {
26
- this._value = expression[i];
27
- await this.next?.run();
28
- }
29
- this.next?.reset();
30
- }
31
- public value(): any {
32
- return this._value;
33
- }
34
- }
35
-
36
- export default Unwind;
@@ -1,42 +0,0 @@
1
- import Expression from "../expressions/expression";
2
- import Operation from "./operation";
3
-
4
- /**
5
- * Represents a WHERE operation that filters data based on a condition.
6
- *
7
- * The WHERE operation evaluates a boolean expression and only continues
8
- * execution to the next operation if the condition is true.
9
- *
10
- * @example
11
- * ```typescript
12
- * // RETURN x WHERE x > 0
13
- * ```
14
- */
15
- class Where extends Operation {
16
- /**
17
- * Creates a new WHERE operation with the given condition.
18
- *
19
- * @param expression - The boolean expression to evaluate
20
- */
21
- constructor(expression: Expression) {
22
- super();
23
- this.addChild(expression);
24
- }
25
- public get expression(): Expression {
26
- return this.children[0] as Expression;
27
- }
28
- public async run(): Promise<void> {
29
- for (const pattern of this.expression.patterns()) {
30
- await pattern.fetchData();
31
- await pattern.evaluate();
32
- }
33
- if (this.expression.value()) {
34
- await this.next?.run();
35
- }
36
- }
37
- public value(): any {
38
- return this.expression.value();
39
- }
40
- }
41
-
42
- export default Where;
@@ -1,20 +0,0 @@
1
- import Projection from "./projection";
2
-
3
- /**
4
- * Represents a WITH operation that defines variables or intermediate results.
5
- *
6
- * The WITH operation creates named expressions that can be referenced later in the query.
7
- * It passes control to the next operation in the chain.
8
- *
9
- * @example
10
- * ```typescript
11
- * // WITH x = 1, y = 2 RETURN x + y
12
- * ```
13
- */
14
- class With extends Projection {
15
- public async run(): Promise<void> {
16
- await this.next?.run();
17
- }
18
- }
19
-
20
- export default With;