flowquery 1.0.45 → 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 (418) hide show
  1. package/dist/flowquery.min.js +1 -1
  2. package/dist/index.d.ts +0 -7
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/parsing/operations/unwind.d.ts +1 -1
  7. package/dist/parsing/operations/unwind.d.ts.map +1 -1
  8. package/dist/parsing/operations/unwind.js +9 -5
  9. package/dist/parsing/operations/unwind.js.map +1 -1
  10. package/package.json +4 -1
  11. package/.editorconfig +0 -21
  12. package/.gitattributes +0 -3
  13. package/.github/workflows/npm-publish.yml +0 -32
  14. package/.github/workflows/python-publish.yml +0 -143
  15. package/.github/workflows/release.yml +0 -107
  16. package/.husky/pre-commit +0 -28
  17. package/.prettierrc +0 -22
  18. package/CODE_OF_CONDUCT.md +0 -10
  19. package/FlowQueryLogoIcon.png +0 -0
  20. package/SECURITY.md +0 -14
  21. package/SUPPORT.md +0 -13
  22. package/docs/flowquery.min.js +0 -1
  23. package/docs/index.html +0 -105
  24. package/flowquery-py/CONTRIBUTING.md +0 -127
  25. package/flowquery-py/README.md +0 -67
  26. package/flowquery-py/misc/data/test.json +0 -10
  27. package/flowquery-py/misc/data/users.json +0 -242
  28. package/flowquery-py/notebooks/TestFlowQuery.ipynb +0 -440
  29. package/flowquery-py/pyproject.toml +0 -121
  30. package/flowquery-py/setup_env.ps1 +0 -92
  31. package/flowquery-py/setup_env.sh +0 -87
  32. package/flowquery-py/src/__init__.py +0 -38
  33. package/flowquery-py/src/__main__.py +0 -10
  34. package/flowquery-py/src/compute/__init__.py +0 -6
  35. package/flowquery-py/src/compute/flowquery.py +0 -68
  36. package/flowquery-py/src/compute/runner.py +0 -64
  37. package/flowquery-py/src/extensibility.py +0 -52
  38. package/flowquery-py/src/graph/__init__.py +0 -31
  39. package/flowquery-py/src/graph/data.py +0 -136
  40. package/flowquery-py/src/graph/database.py +0 -141
  41. package/flowquery-py/src/graph/hops.py +0 -43
  42. package/flowquery-py/src/graph/node.py +0 -143
  43. package/flowquery-py/src/graph/node_data.py +0 -26
  44. package/flowquery-py/src/graph/node_reference.py +0 -50
  45. package/flowquery-py/src/graph/pattern.py +0 -115
  46. package/flowquery-py/src/graph/pattern_expression.py +0 -67
  47. package/flowquery-py/src/graph/patterns.py +0 -42
  48. package/flowquery-py/src/graph/physical_node.py +0 -41
  49. package/flowquery-py/src/graph/physical_relationship.py +0 -36
  50. package/flowquery-py/src/graph/relationship.py +0 -193
  51. package/flowquery-py/src/graph/relationship_data.py +0 -36
  52. package/flowquery-py/src/graph/relationship_match_collector.py +0 -85
  53. package/flowquery-py/src/graph/relationship_reference.py +0 -21
  54. package/flowquery-py/src/io/__init__.py +0 -5
  55. package/flowquery-py/src/io/command_line.py +0 -108
  56. package/flowquery-py/src/parsing/__init__.py +0 -17
  57. package/flowquery-py/src/parsing/alias.py +0 -20
  58. package/flowquery-py/src/parsing/alias_option.py +0 -11
  59. package/flowquery-py/src/parsing/ast_node.py +0 -147
  60. package/flowquery-py/src/parsing/base_parser.py +0 -84
  61. package/flowquery-py/src/parsing/components/__init__.py +0 -19
  62. package/flowquery-py/src/parsing/components/csv.py +0 -8
  63. package/flowquery-py/src/parsing/components/from_.py +0 -12
  64. package/flowquery-py/src/parsing/components/headers.py +0 -12
  65. package/flowquery-py/src/parsing/components/json.py +0 -8
  66. package/flowquery-py/src/parsing/components/null.py +0 -10
  67. package/flowquery-py/src/parsing/components/post.py +0 -8
  68. package/flowquery-py/src/parsing/components/text.py +0 -8
  69. package/flowquery-py/src/parsing/context.py +0 -50
  70. package/flowquery-py/src/parsing/data_structures/__init__.py +0 -15
  71. package/flowquery-py/src/parsing/data_structures/associative_array.py +0 -41
  72. package/flowquery-py/src/parsing/data_structures/json_array.py +0 -30
  73. package/flowquery-py/src/parsing/data_structures/key_value_pair.py +0 -38
  74. package/flowquery-py/src/parsing/data_structures/lookup.py +0 -51
  75. package/flowquery-py/src/parsing/data_structures/range_lookup.py +0 -42
  76. package/flowquery-py/src/parsing/expressions/__init__.py +0 -61
  77. package/flowquery-py/src/parsing/expressions/boolean.py +0 -20
  78. package/flowquery-py/src/parsing/expressions/expression.py +0 -141
  79. package/flowquery-py/src/parsing/expressions/expression_map.py +0 -26
  80. package/flowquery-py/src/parsing/expressions/f_string.py +0 -27
  81. package/flowquery-py/src/parsing/expressions/identifier.py +0 -21
  82. package/flowquery-py/src/parsing/expressions/number.py +0 -32
  83. package/flowquery-py/src/parsing/expressions/operator.py +0 -271
  84. package/flowquery-py/src/parsing/expressions/reference.py +0 -47
  85. package/flowquery-py/src/parsing/expressions/string.py +0 -27
  86. package/flowquery-py/src/parsing/functions/__init__.py +0 -127
  87. package/flowquery-py/src/parsing/functions/aggregate_function.py +0 -60
  88. package/flowquery-py/src/parsing/functions/async_function.py +0 -65
  89. package/flowquery-py/src/parsing/functions/avg.py +0 -55
  90. package/flowquery-py/src/parsing/functions/coalesce.py +0 -43
  91. package/flowquery-py/src/parsing/functions/collect.py +0 -75
  92. package/flowquery-py/src/parsing/functions/count.py +0 -79
  93. package/flowquery-py/src/parsing/functions/date_.py +0 -61
  94. package/flowquery-py/src/parsing/functions/datetime_.py +0 -62
  95. package/flowquery-py/src/parsing/functions/duration.py +0 -159
  96. package/flowquery-py/src/parsing/functions/element_id.py +0 -50
  97. package/flowquery-py/src/parsing/functions/function.py +0 -68
  98. package/flowquery-py/src/parsing/functions/function_factory.py +0 -170
  99. package/flowquery-py/src/parsing/functions/function_metadata.py +0 -148
  100. package/flowquery-py/src/parsing/functions/functions.py +0 -67
  101. package/flowquery-py/src/parsing/functions/head.py +0 -39
  102. package/flowquery-py/src/parsing/functions/id_.py +0 -49
  103. package/flowquery-py/src/parsing/functions/join.py +0 -49
  104. package/flowquery-py/src/parsing/functions/keys.py +0 -34
  105. package/flowquery-py/src/parsing/functions/last.py +0 -39
  106. package/flowquery-py/src/parsing/functions/localdatetime.py +0 -60
  107. package/flowquery-py/src/parsing/functions/localtime.py +0 -57
  108. package/flowquery-py/src/parsing/functions/max_.py +0 -49
  109. package/flowquery-py/src/parsing/functions/min_.py +0 -49
  110. package/flowquery-py/src/parsing/functions/nodes.py +0 -48
  111. package/flowquery-py/src/parsing/functions/predicate_function.py +0 -47
  112. package/flowquery-py/src/parsing/functions/predicate_sum.py +0 -49
  113. package/flowquery-py/src/parsing/functions/properties.py +0 -50
  114. package/flowquery-py/src/parsing/functions/rand.py +0 -28
  115. package/flowquery-py/src/parsing/functions/range_.py +0 -41
  116. package/flowquery-py/src/parsing/functions/reducer_element.py +0 -15
  117. package/flowquery-py/src/parsing/functions/relationships.py +0 -46
  118. package/flowquery-py/src/parsing/functions/replace.py +0 -39
  119. package/flowquery-py/src/parsing/functions/round_.py +0 -34
  120. package/flowquery-py/src/parsing/functions/schema.py +0 -40
  121. package/flowquery-py/src/parsing/functions/size.py +0 -34
  122. package/flowquery-py/src/parsing/functions/split.py +0 -54
  123. package/flowquery-py/src/parsing/functions/string_distance.py +0 -92
  124. package/flowquery-py/src/parsing/functions/stringify.py +0 -49
  125. package/flowquery-py/src/parsing/functions/substring.py +0 -76
  126. package/flowquery-py/src/parsing/functions/sum.py +0 -51
  127. package/flowquery-py/src/parsing/functions/tail.py +0 -37
  128. package/flowquery-py/src/parsing/functions/temporal_utils.py +0 -186
  129. package/flowquery-py/src/parsing/functions/time_.py +0 -57
  130. package/flowquery-py/src/parsing/functions/timestamp.py +0 -37
  131. package/flowquery-py/src/parsing/functions/to_float.py +0 -46
  132. package/flowquery-py/src/parsing/functions/to_integer.py +0 -46
  133. package/flowquery-py/src/parsing/functions/to_json.py +0 -35
  134. package/flowquery-py/src/parsing/functions/to_lower.py +0 -37
  135. package/flowquery-py/src/parsing/functions/to_string.py +0 -41
  136. package/flowquery-py/src/parsing/functions/trim.py +0 -37
  137. package/flowquery-py/src/parsing/functions/type_.py +0 -47
  138. package/flowquery-py/src/parsing/functions/value_holder.py +0 -24
  139. package/flowquery-py/src/parsing/logic/__init__.py +0 -15
  140. package/flowquery-py/src/parsing/logic/case.py +0 -28
  141. package/flowquery-py/src/parsing/logic/else_.py +0 -12
  142. package/flowquery-py/src/parsing/logic/end.py +0 -8
  143. package/flowquery-py/src/parsing/logic/then.py +0 -12
  144. package/flowquery-py/src/parsing/logic/when.py +0 -12
  145. package/flowquery-py/src/parsing/operations/__init__.py +0 -46
  146. package/flowquery-py/src/parsing/operations/aggregated_return.py +0 -25
  147. package/flowquery-py/src/parsing/operations/aggregated_with.py +0 -22
  148. package/flowquery-py/src/parsing/operations/call.py +0 -73
  149. package/flowquery-py/src/parsing/operations/create_node.py +0 -35
  150. package/flowquery-py/src/parsing/operations/create_relationship.py +0 -35
  151. package/flowquery-py/src/parsing/operations/delete_node.py +0 -29
  152. package/flowquery-py/src/parsing/operations/delete_relationship.py +0 -29
  153. package/flowquery-py/src/parsing/operations/group_by.py +0 -148
  154. package/flowquery-py/src/parsing/operations/limit.py +0 -33
  155. package/flowquery-py/src/parsing/operations/load.py +0 -148
  156. package/flowquery-py/src/parsing/operations/match.py +0 -52
  157. package/flowquery-py/src/parsing/operations/operation.py +0 -69
  158. package/flowquery-py/src/parsing/operations/order_by.py +0 -114
  159. package/flowquery-py/src/parsing/operations/projection.py +0 -21
  160. package/flowquery-py/src/parsing/operations/return_op.py +0 -88
  161. package/flowquery-py/src/parsing/operations/union.py +0 -115
  162. package/flowquery-py/src/parsing/operations/union_all.py +0 -17
  163. package/flowquery-py/src/parsing/operations/unwind.py +0 -38
  164. package/flowquery-py/src/parsing/operations/where.py +0 -43
  165. package/flowquery-py/src/parsing/operations/with_op.py +0 -18
  166. package/flowquery-py/src/parsing/parser.py +0 -1384
  167. package/flowquery-py/src/parsing/parser_state.py +0 -26
  168. package/flowquery-py/src/parsing/token_to_node.py +0 -109
  169. package/flowquery-py/src/tokenization/__init__.py +0 -23
  170. package/flowquery-py/src/tokenization/keyword.py +0 -54
  171. package/flowquery-py/src/tokenization/operator.py +0 -29
  172. package/flowquery-py/src/tokenization/string_walker.py +0 -158
  173. package/flowquery-py/src/tokenization/symbol.py +0 -19
  174. package/flowquery-py/src/tokenization/token.py +0 -693
  175. package/flowquery-py/src/tokenization/token_mapper.py +0 -53
  176. package/flowquery-py/src/tokenization/token_type.py +0 -21
  177. package/flowquery-py/src/tokenization/tokenizer.py +0 -214
  178. package/flowquery-py/src/tokenization/trie.py +0 -125
  179. package/flowquery-py/src/utils/__init__.py +0 -6
  180. package/flowquery-py/src/utils/object_utils.py +0 -20
  181. package/flowquery-py/src/utils/string_utils.py +0 -113
  182. package/flowquery-py/tests/__init__.py +0 -1
  183. package/flowquery-py/tests/compute/__init__.py +0 -1
  184. package/flowquery-py/tests/compute/test_runner.py +0 -4879
  185. package/flowquery-py/tests/graph/__init__.py +0 -1
  186. package/flowquery-py/tests/graph/test_create.py +0 -56
  187. package/flowquery-py/tests/graph/test_data.py +0 -73
  188. package/flowquery-py/tests/graph/test_match.py +0 -40
  189. package/flowquery-py/tests/parsing/__init__.py +0 -1
  190. package/flowquery-py/tests/parsing/test_context.py +0 -34
  191. package/flowquery-py/tests/parsing/test_expression.py +0 -248
  192. package/flowquery-py/tests/parsing/test_parser.py +0 -1237
  193. package/flowquery-py/tests/test_extensibility.py +0 -611
  194. package/flowquery-py/tests/tokenization/__init__.py +0 -1
  195. package/flowquery-py/tests/tokenization/test_token_mapper.py +0 -60
  196. package/flowquery-py/tests/tokenization/test_tokenizer.py +0 -198
  197. package/flowquery-py/tests/tokenization/test_trie.py +0 -30
  198. package/flowquery-vscode/.vscode-test.mjs +0 -5
  199. package/flowquery-vscode/.vscodeignore +0 -13
  200. package/flowquery-vscode/LICENSE +0 -21
  201. package/flowquery-vscode/README.md +0 -11
  202. package/flowquery-vscode/demo/FlowQueryVSCodeDemo.gif +0 -0
  203. package/flowquery-vscode/eslint.config.mjs +0 -25
  204. package/flowquery-vscode/extension.js +0 -508
  205. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +0 -1
  206. package/flowquery-vscode/flowquery-worker.js +0 -66
  207. package/flowquery-vscode/images/FlowQueryLogoIcon.png +0 -0
  208. package/flowquery-vscode/jsconfig.json +0 -13
  209. package/flowquery-vscode/libs/page.css +0 -53
  210. package/flowquery-vscode/libs/table.css +0 -13
  211. package/flowquery-vscode/libs/tabs.css +0 -66
  212. package/flowquery-vscode/package-lock.json +0 -2917
  213. package/flowquery-vscode/package.json +0 -51
  214. package/flowquery-vscode/test/extension.test.js +0 -196
  215. package/flowquery-vscode/test/worker.test.js +0 -25
  216. package/flowquery-vscode/vsc-extension-quickstart.md +0 -42
  217. package/jest.config.js +0 -8
  218. package/misc/apps/RAG/README.md +0 -29
  219. package/misc/apps/RAG/data/chats.json +0 -302
  220. package/misc/apps/RAG/data/emails.json +0 -182
  221. package/misc/apps/RAG/data/events.json +0 -226
  222. package/misc/apps/RAG/data/files.json +0 -172
  223. package/misc/apps/RAG/data/users.json +0 -158
  224. package/misc/apps/RAG/jest.config.js +0 -21
  225. package/misc/apps/RAG/package.json +0 -48
  226. package/misc/apps/RAG/public/index.html +0 -18
  227. package/misc/apps/RAG/src/App.css +0 -42
  228. package/misc/apps/RAG/src/App.tsx +0 -50
  229. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.css +0 -172
  230. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.tsx +0 -380
  231. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +0 -245
  232. package/misc/apps/RAG/src/components/ChatContainer.css +0 -67
  233. package/misc/apps/RAG/src/components/ChatContainer.tsx +0 -242
  234. package/misc/apps/RAG/src/components/ChatInput.css +0 -23
  235. package/misc/apps/RAG/src/components/ChatInput.tsx +0 -76
  236. package/misc/apps/RAG/src/components/ChatMessage.css +0 -160
  237. package/misc/apps/RAG/src/components/ChatMessage.tsx +0 -286
  238. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +0 -708
  239. package/misc/apps/RAG/src/components/FlowQueryRunner.css +0 -113
  240. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +0 -371
  241. package/misc/apps/RAG/src/components/index.ts +0 -28
  242. package/misc/apps/RAG/src/graph/index.ts +0 -19
  243. package/misc/apps/RAG/src/graph/initializeGraph.ts +0 -254
  244. package/misc/apps/RAG/src/index.tsx +0 -29
  245. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +0 -327
  246. package/misc/apps/RAG/src/prompts/index.ts +0 -10
  247. package/misc/apps/RAG/src/tests/graph.test.ts +0 -35
  248. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +0 -130
  249. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +0 -208
  250. package/misc/apps/RAG/src/utils/Llm.ts +0 -248
  251. package/misc/apps/RAG/src/utils/index.ts +0 -12
  252. package/misc/apps/RAG/tsconfig.json +0 -22
  253. package/misc/apps/RAG/webpack.config.js +0 -43
  254. package/misc/apps/README.md +0 -1
  255. package/misc/queries/analyze_catfacts.cql +0 -75
  256. package/misc/queries/azure_openai_completions.cql +0 -13
  257. package/misc/queries/azure_openai_models.cql +0 -9
  258. package/misc/queries/mock_pipeline.cql +0 -84
  259. package/misc/queries/openai_completions.cql +0 -15
  260. package/misc/queries/openai_models.cql +0 -13
  261. package/misc/queries/test.cql +0 -6
  262. package/misc/queries/tool_inference.cql +0 -24
  263. package/misc/queries/wisdom.cql +0 -6
  264. package/misc/queries/wisdom_letter_histogram.cql +0 -8
  265. package/src/compute/flowquery.ts +0 -46
  266. package/src/compute/runner.ts +0 -66
  267. package/src/extensibility.ts +0 -45
  268. package/src/graph/data.ts +0 -130
  269. package/src/graph/database.ts +0 -143
  270. package/src/graph/hops.ts +0 -22
  271. package/src/graph/node.ts +0 -122
  272. package/src/graph/node_data.ts +0 -18
  273. package/src/graph/node_reference.ts +0 -38
  274. package/src/graph/pattern.ts +0 -110
  275. package/src/graph/pattern_expression.ts +0 -48
  276. package/src/graph/patterns.ts +0 -36
  277. package/src/graph/physical_node.ts +0 -23
  278. package/src/graph/physical_relationship.ts +0 -23
  279. package/src/graph/relationship.ts +0 -167
  280. package/src/graph/relationship_data.ts +0 -31
  281. package/src/graph/relationship_match_collector.ts +0 -64
  282. package/src/graph/relationship_reference.ts +0 -25
  283. package/src/index.browser.ts +0 -46
  284. package/src/index.node.ts +0 -55
  285. package/src/index.ts +0 -12
  286. package/src/io/command_line.ts +0 -74
  287. package/src/parsing/alias.ts +0 -23
  288. package/src/parsing/alias_option.ts +0 -5
  289. package/src/parsing/ast_node.ts +0 -153
  290. package/src/parsing/base_parser.ts +0 -98
  291. package/src/parsing/components/csv.ts +0 -9
  292. package/src/parsing/components/from.ts +0 -12
  293. package/src/parsing/components/headers.ts +0 -12
  294. package/src/parsing/components/json.ts +0 -9
  295. package/src/parsing/components/null.ts +0 -9
  296. package/src/parsing/components/post.ts +0 -9
  297. package/src/parsing/components/text.ts +0 -9
  298. package/src/parsing/context.ts +0 -54
  299. package/src/parsing/data_structures/associative_array.ts +0 -43
  300. package/src/parsing/data_structures/json_array.ts +0 -31
  301. package/src/parsing/data_structures/key_value_pair.ts +0 -37
  302. package/src/parsing/data_structures/lookup.ts +0 -44
  303. package/src/parsing/data_structures/range_lookup.ts +0 -36
  304. package/src/parsing/expressions/boolean.ts +0 -21
  305. package/src/parsing/expressions/expression.ts +0 -150
  306. package/src/parsing/expressions/expression_map.ts +0 -22
  307. package/src/parsing/expressions/f_string.ts +0 -26
  308. package/src/parsing/expressions/identifier.ts +0 -22
  309. package/src/parsing/expressions/number.ts +0 -40
  310. package/src/parsing/expressions/operator.ts +0 -354
  311. package/src/parsing/expressions/reference.ts +0 -45
  312. package/src/parsing/expressions/string.ts +0 -34
  313. package/src/parsing/functions/aggregate_function.ts +0 -58
  314. package/src/parsing/functions/async_function.ts +0 -64
  315. package/src/parsing/functions/avg.ts +0 -47
  316. package/src/parsing/functions/coalesce.ts +0 -49
  317. package/src/parsing/functions/collect.ts +0 -54
  318. package/src/parsing/functions/count.ts +0 -54
  319. package/src/parsing/functions/date.ts +0 -63
  320. package/src/parsing/functions/datetime.ts +0 -63
  321. package/src/parsing/functions/duration.ts +0 -143
  322. package/src/parsing/functions/element_id.ts +0 -51
  323. package/src/parsing/functions/function.ts +0 -60
  324. package/src/parsing/functions/function_factory.ts +0 -195
  325. package/src/parsing/functions/function_metadata.ts +0 -217
  326. package/src/parsing/functions/functions.ts +0 -70
  327. package/src/parsing/functions/head.ts +0 -42
  328. package/src/parsing/functions/id.ts +0 -51
  329. package/src/parsing/functions/join.ts +0 -40
  330. package/src/parsing/functions/keys.ts +0 -29
  331. package/src/parsing/functions/last.ts +0 -42
  332. package/src/parsing/functions/localdatetime.ts +0 -63
  333. package/src/parsing/functions/localtime.ts +0 -58
  334. package/src/parsing/functions/max.ts +0 -37
  335. package/src/parsing/functions/min.ts +0 -37
  336. package/src/parsing/functions/nodes.ts +0 -54
  337. package/src/parsing/functions/predicate_function.ts +0 -48
  338. package/src/parsing/functions/predicate_sum.ts +0 -47
  339. package/src/parsing/functions/properties.ts +0 -56
  340. package/src/parsing/functions/rand.ts +0 -21
  341. package/src/parsing/functions/range.ts +0 -37
  342. package/src/parsing/functions/reducer_element.ts +0 -10
  343. package/src/parsing/functions/relationships.ts +0 -52
  344. package/src/parsing/functions/replace.ts +0 -38
  345. package/src/parsing/functions/round.ts +0 -28
  346. package/src/parsing/functions/schema.ts +0 -39
  347. package/src/parsing/functions/size.ts +0 -28
  348. package/src/parsing/functions/split.ts +0 -45
  349. package/src/parsing/functions/string_distance.ts +0 -83
  350. package/src/parsing/functions/stringify.ts +0 -37
  351. package/src/parsing/functions/substring.ts +0 -68
  352. package/src/parsing/functions/sum.ts +0 -41
  353. package/src/parsing/functions/tail.ts +0 -39
  354. package/src/parsing/functions/temporal_utils.ts +0 -180
  355. package/src/parsing/functions/time.ts +0 -58
  356. package/src/parsing/functions/timestamp.ts +0 -37
  357. package/src/parsing/functions/to_float.ts +0 -50
  358. package/src/parsing/functions/to_integer.ts +0 -50
  359. package/src/parsing/functions/to_json.ts +0 -28
  360. package/src/parsing/functions/to_lower.ts +0 -28
  361. package/src/parsing/functions/to_string.ts +0 -32
  362. package/src/parsing/functions/trim.ts +0 -28
  363. package/src/parsing/functions/type.ts +0 -39
  364. package/src/parsing/functions/value_holder.ts +0 -13
  365. package/src/parsing/logic/case.ts +0 -26
  366. package/src/parsing/logic/else.ts +0 -12
  367. package/src/parsing/logic/end.ts +0 -9
  368. package/src/parsing/logic/then.ts +0 -12
  369. package/src/parsing/logic/when.ts +0 -12
  370. package/src/parsing/operations/aggregated_return.ts +0 -22
  371. package/src/parsing/operations/aggregated_with.ts +0 -18
  372. package/src/parsing/operations/call.ts +0 -69
  373. package/src/parsing/operations/create_node.ts +0 -39
  374. package/src/parsing/operations/create_relationship.ts +0 -38
  375. package/src/parsing/operations/delete_node.ts +0 -33
  376. package/src/parsing/operations/delete_relationship.ts +0 -32
  377. package/src/parsing/operations/group_by.ts +0 -137
  378. package/src/parsing/operations/limit.ts +0 -31
  379. package/src/parsing/operations/load.ts +0 -146
  380. package/src/parsing/operations/match.ts +0 -54
  381. package/src/parsing/operations/operation.ts +0 -69
  382. package/src/parsing/operations/order_by.ts +0 -126
  383. package/src/parsing/operations/projection.ts +0 -18
  384. package/src/parsing/operations/return.ts +0 -76
  385. package/src/parsing/operations/union.ts +0 -114
  386. package/src/parsing/operations/union_all.ts +0 -16
  387. package/src/parsing/operations/unwind.ts +0 -32
  388. package/src/parsing/operations/where.ts +0 -42
  389. package/src/parsing/operations/with.ts +0 -20
  390. package/src/parsing/parser.ts +0 -1641
  391. package/src/parsing/parser_state.ts +0 -25
  392. package/src/parsing/token_to_node.ts +0 -114
  393. package/src/tokenization/keyword.ts +0 -50
  394. package/src/tokenization/operator.ts +0 -25
  395. package/src/tokenization/string_walker.ts +0 -197
  396. package/src/tokenization/symbol.ts +0 -15
  397. package/src/tokenization/token.ts +0 -764
  398. package/src/tokenization/token_mapper.ts +0 -53
  399. package/src/tokenization/token_type.ts +0 -16
  400. package/src/tokenization/tokenizer.ts +0 -250
  401. package/src/tokenization/trie.ts +0 -117
  402. package/src/utils/object_utils.ts +0 -17
  403. package/src/utils/string_utils.ts +0 -114
  404. package/tests/compute/runner.test.ts +0 -4538
  405. package/tests/extensibility.test.ts +0 -643
  406. package/tests/graph/create.test.ts +0 -36
  407. package/tests/graph/data.test.ts +0 -58
  408. package/tests/graph/match.test.ts +0 -29
  409. package/tests/parsing/context.test.ts +0 -27
  410. package/tests/parsing/expression.test.ts +0 -303
  411. package/tests/parsing/parser.test.ts +0 -1327
  412. package/tests/tokenization/token_mapper.test.ts +0 -47
  413. package/tests/tokenization/tokenizer.test.ts +0 -191
  414. package/tests/tokenization/trie.test.ts +0 -20
  415. package/tsconfig.json +0 -18
  416. package/typedoc.json +0 -16
  417. package/vscode-settings.json.recommended +0 -16
  418. 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,32 +0,0 @@
1
- import Operation from "./operation";
2
- import Expression from "../expressions/expression";
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(!(Array.isArray(expression))) {
19
- throw new Error('Expected array');
20
- }
21
- for(let i = 0; i < expression.length; i++) {
22
- this._value = expression[i];
23
- await this.next?.run();
24
- }
25
- this.next?.reset();
26
- }
27
- public value(): any {
28
- return this._value;
29
- }
30
- }
31
-
32
- 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;