flowquery 1.0.46 → 1.0.48

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 (422) 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/data_structures/list_comprehension.d.ts +56 -0
  7. package/dist/parsing/data_structures/list_comprehension.d.ts.map +1 -0
  8. package/dist/parsing/data_structures/list_comprehension.js +102 -0
  9. package/dist/parsing/data_structures/list_comprehension.js.map +1 -0
  10. package/dist/parsing/parser.d.ts +18 -0
  11. package/dist/parsing/parser.d.ts.map +1 -1
  12. package/dist/parsing/parser.js +92 -0
  13. package/dist/parsing/parser.js.map +1 -1
  14. package/package.json +4 -1
  15. package/.editorconfig +0 -21
  16. package/.gitattributes +0 -3
  17. package/.github/workflows/npm-publish.yml +0 -32
  18. package/.github/workflows/python-publish.yml +0 -143
  19. package/.github/workflows/release.yml +0 -107
  20. package/.husky/pre-commit +0 -28
  21. package/.prettierrc +0 -22
  22. package/CODE_OF_CONDUCT.md +0 -10
  23. package/FlowQueryLogoIcon.png +0 -0
  24. package/SECURITY.md +0 -14
  25. package/SUPPORT.md +0 -13
  26. package/docs/flowquery.min.js +0 -1
  27. package/docs/index.html +0 -105
  28. package/flowquery-py/CONTRIBUTING.md +0 -127
  29. package/flowquery-py/README.md +0 -67
  30. package/flowquery-py/misc/data/test.json +0 -10
  31. package/flowquery-py/misc/data/users.json +0 -242
  32. package/flowquery-py/notebooks/TestFlowQuery.ipynb +0 -440
  33. package/flowquery-py/pyproject.toml +0 -121
  34. package/flowquery-py/setup_env.ps1 +0 -92
  35. package/flowquery-py/setup_env.sh +0 -87
  36. package/flowquery-py/src/__init__.py +0 -38
  37. package/flowquery-py/src/__main__.py +0 -10
  38. package/flowquery-py/src/compute/__init__.py +0 -6
  39. package/flowquery-py/src/compute/flowquery.py +0 -68
  40. package/flowquery-py/src/compute/runner.py +0 -64
  41. package/flowquery-py/src/extensibility.py +0 -52
  42. package/flowquery-py/src/graph/__init__.py +0 -31
  43. package/flowquery-py/src/graph/data.py +0 -136
  44. package/flowquery-py/src/graph/database.py +0 -141
  45. package/flowquery-py/src/graph/hops.py +0 -43
  46. package/flowquery-py/src/graph/node.py +0 -143
  47. package/flowquery-py/src/graph/node_data.py +0 -26
  48. package/flowquery-py/src/graph/node_reference.py +0 -50
  49. package/flowquery-py/src/graph/pattern.py +0 -115
  50. package/flowquery-py/src/graph/pattern_expression.py +0 -67
  51. package/flowquery-py/src/graph/patterns.py +0 -42
  52. package/flowquery-py/src/graph/physical_node.py +0 -41
  53. package/flowquery-py/src/graph/physical_relationship.py +0 -36
  54. package/flowquery-py/src/graph/relationship.py +0 -193
  55. package/flowquery-py/src/graph/relationship_data.py +0 -36
  56. package/flowquery-py/src/graph/relationship_match_collector.py +0 -85
  57. package/flowquery-py/src/graph/relationship_reference.py +0 -21
  58. package/flowquery-py/src/io/__init__.py +0 -5
  59. package/flowquery-py/src/io/command_line.py +0 -108
  60. package/flowquery-py/src/parsing/__init__.py +0 -17
  61. package/flowquery-py/src/parsing/alias.py +0 -20
  62. package/flowquery-py/src/parsing/alias_option.py +0 -11
  63. package/flowquery-py/src/parsing/ast_node.py +0 -147
  64. package/flowquery-py/src/parsing/base_parser.py +0 -84
  65. package/flowquery-py/src/parsing/components/__init__.py +0 -19
  66. package/flowquery-py/src/parsing/components/csv.py +0 -8
  67. package/flowquery-py/src/parsing/components/from_.py +0 -12
  68. package/flowquery-py/src/parsing/components/headers.py +0 -12
  69. package/flowquery-py/src/parsing/components/json.py +0 -8
  70. package/flowquery-py/src/parsing/components/null.py +0 -10
  71. package/flowquery-py/src/parsing/components/post.py +0 -8
  72. package/flowquery-py/src/parsing/components/text.py +0 -8
  73. package/flowquery-py/src/parsing/context.py +0 -50
  74. package/flowquery-py/src/parsing/data_structures/__init__.py +0 -15
  75. package/flowquery-py/src/parsing/data_structures/associative_array.py +0 -41
  76. package/flowquery-py/src/parsing/data_structures/json_array.py +0 -30
  77. package/flowquery-py/src/parsing/data_structures/key_value_pair.py +0 -38
  78. package/flowquery-py/src/parsing/data_structures/lookup.py +0 -51
  79. package/flowquery-py/src/parsing/data_structures/range_lookup.py +0 -42
  80. package/flowquery-py/src/parsing/expressions/__init__.py +0 -61
  81. package/flowquery-py/src/parsing/expressions/boolean.py +0 -20
  82. package/flowquery-py/src/parsing/expressions/expression.py +0 -141
  83. package/flowquery-py/src/parsing/expressions/expression_map.py +0 -26
  84. package/flowquery-py/src/parsing/expressions/f_string.py +0 -27
  85. package/flowquery-py/src/parsing/expressions/identifier.py +0 -21
  86. package/flowquery-py/src/parsing/expressions/number.py +0 -32
  87. package/flowquery-py/src/parsing/expressions/operator.py +0 -271
  88. package/flowquery-py/src/parsing/expressions/reference.py +0 -47
  89. package/flowquery-py/src/parsing/expressions/string.py +0 -27
  90. package/flowquery-py/src/parsing/functions/__init__.py +0 -127
  91. package/flowquery-py/src/parsing/functions/aggregate_function.py +0 -60
  92. package/flowquery-py/src/parsing/functions/async_function.py +0 -65
  93. package/flowquery-py/src/parsing/functions/avg.py +0 -55
  94. package/flowquery-py/src/parsing/functions/coalesce.py +0 -43
  95. package/flowquery-py/src/parsing/functions/collect.py +0 -75
  96. package/flowquery-py/src/parsing/functions/count.py +0 -79
  97. package/flowquery-py/src/parsing/functions/date_.py +0 -61
  98. package/flowquery-py/src/parsing/functions/datetime_.py +0 -62
  99. package/flowquery-py/src/parsing/functions/duration.py +0 -159
  100. package/flowquery-py/src/parsing/functions/element_id.py +0 -50
  101. package/flowquery-py/src/parsing/functions/function.py +0 -68
  102. package/flowquery-py/src/parsing/functions/function_factory.py +0 -170
  103. package/flowquery-py/src/parsing/functions/function_metadata.py +0 -148
  104. package/flowquery-py/src/parsing/functions/functions.py +0 -67
  105. package/flowquery-py/src/parsing/functions/head.py +0 -39
  106. package/flowquery-py/src/parsing/functions/id_.py +0 -49
  107. package/flowquery-py/src/parsing/functions/join.py +0 -49
  108. package/flowquery-py/src/parsing/functions/keys.py +0 -34
  109. package/flowquery-py/src/parsing/functions/last.py +0 -39
  110. package/flowquery-py/src/parsing/functions/localdatetime.py +0 -60
  111. package/flowquery-py/src/parsing/functions/localtime.py +0 -57
  112. package/flowquery-py/src/parsing/functions/max_.py +0 -49
  113. package/flowquery-py/src/parsing/functions/min_.py +0 -49
  114. package/flowquery-py/src/parsing/functions/nodes.py +0 -48
  115. package/flowquery-py/src/parsing/functions/predicate_function.py +0 -47
  116. package/flowquery-py/src/parsing/functions/predicate_sum.py +0 -49
  117. package/flowquery-py/src/parsing/functions/properties.py +0 -50
  118. package/flowquery-py/src/parsing/functions/rand.py +0 -28
  119. package/flowquery-py/src/parsing/functions/range_.py +0 -41
  120. package/flowquery-py/src/parsing/functions/reducer_element.py +0 -15
  121. package/flowquery-py/src/parsing/functions/relationships.py +0 -46
  122. package/flowquery-py/src/parsing/functions/replace.py +0 -39
  123. package/flowquery-py/src/parsing/functions/round_.py +0 -34
  124. package/flowquery-py/src/parsing/functions/schema.py +0 -40
  125. package/flowquery-py/src/parsing/functions/size.py +0 -34
  126. package/flowquery-py/src/parsing/functions/split.py +0 -54
  127. package/flowquery-py/src/parsing/functions/string_distance.py +0 -92
  128. package/flowquery-py/src/parsing/functions/stringify.py +0 -49
  129. package/flowquery-py/src/parsing/functions/substring.py +0 -76
  130. package/flowquery-py/src/parsing/functions/sum.py +0 -51
  131. package/flowquery-py/src/parsing/functions/tail.py +0 -37
  132. package/flowquery-py/src/parsing/functions/temporal_utils.py +0 -186
  133. package/flowquery-py/src/parsing/functions/time_.py +0 -57
  134. package/flowquery-py/src/parsing/functions/timestamp.py +0 -37
  135. package/flowquery-py/src/parsing/functions/to_float.py +0 -46
  136. package/flowquery-py/src/parsing/functions/to_integer.py +0 -46
  137. package/flowquery-py/src/parsing/functions/to_json.py +0 -35
  138. package/flowquery-py/src/parsing/functions/to_lower.py +0 -37
  139. package/flowquery-py/src/parsing/functions/to_string.py +0 -41
  140. package/flowquery-py/src/parsing/functions/trim.py +0 -37
  141. package/flowquery-py/src/parsing/functions/type_.py +0 -47
  142. package/flowquery-py/src/parsing/functions/value_holder.py +0 -24
  143. package/flowquery-py/src/parsing/logic/__init__.py +0 -15
  144. package/flowquery-py/src/parsing/logic/case.py +0 -28
  145. package/flowquery-py/src/parsing/logic/else_.py +0 -12
  146. package/flowquery-py/src/parsing/logic/end.py +0 -8
  147. package/flowquery-py/src/parsing/logic/then.py +0 -12
  148. package/flowquery-py/src/parsing/logic/when.py +0 -12
  149. package/flowquery-py/src/parsing/operations/__init__.py +0 -46
  150. package/flowquery-py/src/parsing/operations/aggregated_return.py +0 -25
  151. package/flowquery-py/src/parsing/operations/aggregated_with.py +0 -22
  152. package/flowquery-py/src/parsing/operations/call.py +0 -73
  153. package/flowquery-py/src/parsing/operations/create_node.py +0 -35
  154. package/flowquery-py/src/parsing/operations/create_relationship.py +0 -35
  155. package/flowquery-py/src/parsing/operations/delete_node.py +0 -29
  156. package/flowquery-py/src/parsing/operations/delete_relationship.py +0 -29
  157. package/flowquery-py/src/parsing/operations/group_by.py +0 -148
  158. package/flowquery-py/src/parsing/operations/limit.py +0 -33
  159. package/flowquery-py/src/parsing/operations/load.py +0 -148
  160. package/flowquery-py/src/parsing/operations/match.py +0 -52
  161. package/flowquery-py/src/parsing/operations/operation.py +0 -69
  162. package/flowquery-py/src/parsing/operations/order_by.py +0 -114
  163. package/flowquery-py/src/parsing/operations/projection.py +0 -21
  164. package/flowquery-py/src/parsing/operations/return_op.py +0 -88
  165. package/flowquery-py/src/parsing/operations/union.py +0 -115
  166. package/flowquery-py/src/parsing/operations/union_all.py +0 -17
  167. package/flowquery-py/src/parsing/operations/unwind.py +0 -42
  168. package/flowquery-py/src/parsing/operations/where.py +0 -43
  169. package/flowquery-py/src/parsing/operations/with_op.py +0 -18
  170. package/flowquery-py/src/parsing/parser.py +0 -1384
  171. package/flowquery-py/src/parsing/parser_state.py +0 -26
  172. package/flowquery-py/src/parsing/token_to_node.py +0 -109
  173. package/flowquery-py/src/tokenization/__init__.py +0 -23
  174. package/flowquery-py/src/tokenization/keyword.py +0 -54
  175. package/flowquery-py/src/tokenization/operator.py +0 -29
  176. package/flowquery-py/src/tokenization/string_walker.py +0 -158
  177. package/flowquery-py/src/tokenization/symbol.py +0 -19
  178. package/flowquery-py/src/tokenization/token.py +0 -693
  179. package/flowquery-py/src/tokenization/token_mapper.py +0 -53
  180. package/flowquery-py/src/tokenization/token_type.py +0 -21
  181. package/flowquery-py/src/tokenization/tokenizer.py +0 -214
  182. package/flowquery-py/src/tokenization/trie.py +0 -125
  183. package/flowquery-py/src/utils/__init__.py +0 -6
  184. package/flowquery-py/src/utils/object_utils.py +0 -20
  185. package/flowquery-py/src/utils/string_utils.py +0 -113
  186. package/flowquery-py/tests/__init__.py +0 -1
  187. package/flowquery-py/tests/compute/__init__.py +0 -1
  188. package/flowquery-py/tests/compute/test_runner.py +0 -4902
  189. package/flowquery-py/tests/graph/__init__.py +0 -1
  190. package/flowquery-py/tests/graph/test_create.py +0 -56
  191. package/flowquery-py/tests/graph/test_data.py +0 -73
  192. package/flowquery-py/tests/graph/test_match.py +0 -40
  193. package/flowquery-py/tests/parsing/__init__.py +0 -1
  194. package/flowquery-py/tests/parsing/test_context.py +0 -34
  195. package/flowquery-py/tests/parsing/test_expression.py +0 -248
  196. package/flowquery-py/tests/parsing/test_parser.py +0 -1237
  197. package/flowquery-py/tests/test_extensibility.py +0 -611
  198. package/flowquery-py/tests/tokenization/__init__.py +0 -1
  199. package/flowquery-py/tests/tokenization/test_token_mapper.py +0 -60
  200. package/flowquery-py/tests/tokenization/test_tokenizer.py +0 -198
  201. package/flowquery-py/tests/tokenization/test_trie.py +0 -30
  202. package/flowquery-vscode/.vscode-test.mjs +0 -5
  203. package/flowquery-vscode/.vscodeignore +0 -13
  204. package/flowquery-vscode/LICENSE +0 -21
  205. package/flowquery-vscode/README.md +0 -11
  206. package/flowquery-vscode/demo/FlowQueryVSCodeDemo.gif +0 -0
  207. package/flowquery-vscode/eslint.config.mjs +0 -25
  208. package/flowquery-vscode/extension.js +0 -508
  209. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +0 -1
  210. package/flowquery-vscode/flowquery-worker.js +0 -66
  211. package/flowquery-vscode/images/FlowQueryLogoIcon.png +0 -0
  212. package/flowquery-vscode/jsconfig.json +0 -13
  213. package/flowquery-vscode/libs/page.css +0 -53
  214. package/flowquery-vscode/libs/table.css +0 -13
  215. package/flowquery-vscode/libs/tabs.css +0 -66
  216. package/flowquery-vscode/package-lock.json +0 -2917
  217. package/flowquery-vscode/package.json +0 -51
  218. package/flowquery-vscode/test/extension.test.js +0 -196
  219. package/flowquery-vscode/test/worker.test.js +0 -25
  220. package/flowquery-vscode/vsc-extension-quickstart.md +0 -42
  221. package/jest.config.js +0 -14
  222. package/misc/apps/RAG/README.md +0 -29
  223. package/misc/apps/RAG/data/chats.json +0 -302
  224. package/misc/apps/RAG/data/emails.json +0 -182
  225. package/misc/apps/RAG/data/events.json +0 -226
  226. package/misc/apps/RAG/data/files.json +0 -172
  227. package/misc/apps/RAG/data/users.json +0 -158
  228. package/misc/apps/RAG/jest.config.js +0 -21
  229. package/misc/apps/RAG/package.json +0 -48
  230. package/misc/apps/RAG/public/index.html +0 -18
  231. package/misc/apps/RAG/src/App.css +0 -42
  232. package/misc/apps/RAG/src/App.tsx +0 -50
  233. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.css +0 -172
  234. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.tsx +0 -380
  235. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +0 -245
  236. package/misc/apps/RAG/src/components/ChatContainer.css +0 -67
  237. package/misc/apps/RAG/src/components/ChatContainer.tsx +0 -242
  238. package/misc/apps/RAG/src/components/ChatInput.css +0 -23
  239. package/misc/apps/RAG/src/components/ChatInput.tsx +0 -76
  240. package/misc/apps/RAG/src/components/ChatMessage.css +0 -160
  241. package/misc/apps/RAG/src/components/ChatMessage.tsx +0 -286
  242. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +0 -708
  243. package/misc/apps/RAG/src/components/FlowQueryRunner.css +0 -113
  244. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +0 -371
  245. package/misc/apps/RAG/src/components/index.ts +0 -28
  246. package/misc/apps/RAG/src/graph/index.ts +0 -19
  247. package/misc/apps/RAG/src/graph/initializeGraph.ts +0 -254
  248. package/misc/apps/RAG/src/index.tsx +0 -29
  249. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +0 -327
  250. package/misc/apps/RAG/src/prompts/index.ts +0 -10
  251. package/misc/apps/RAG/src/tests/graph.test.ts +0 -35
  252. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +0 -130
  253. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +0 -208
  254. package/misc/apps/RAG/src/utils/Llm.ts +0 -248
  255. package/misc/apps/RAG/src/utils/index.ts +0 -12
  256. package/misc/apps/RAG/tsconfig.json +0 -22
  257. package/misc/apps/RAG/webpack.config.js +0 -43
  258. package/misc/apps/README.md +0 -1
  259. package/misc/queries/analyze_catfacts.cql +0 -75
  260. package/misc/queries/azure_openai_completions.cql +0 -13
  261. package/misc/queries/azure_openai_models.cql +0 -9
  262. package/misc/queries/mock_pipeline.cql +0 -84
  263. package/misc/queries/openai_completions.cql +0 -15
  264. package/misc/queries/openai_models.cql +0 -13
  265. package/misc/queries/test.cql +0 -6
  266. package/misc/queries/tool_inference.cql +0 -24
  267. package/misc/queries/wisdom.cql +0 -6
  268. package/misc/queries/wisdom_letter_histogram.cql +0 -8
  269. package/src/compute/flowquery.ts +0 -46
  270. package/src/compute/runner.ts +0 -66
  271. package/src/extensibility.ts +0 -45
  272. package/src/graph/data.ts +0 -130
  273. package/src/graph/database.ts +0 -143
  274. package/src/graph/hops.ts +0 -22
  275. package/src/graph/node.ts +0 -122
  276. package/src/graph/node_data.ts +0 -18
  277. package/src/graph/node_reference.ts +0 -38
  278. package/src/graph/pattern.ts +0 -110
  279. package/src/graph/pattern_expression.ts +0 -48
  280. package/src/graph/patterns.ts +0 -36
  281. package/src/graph/physical_node.ts +0 -23
  282. package/src/graph/physical_relationship.ts +0 -23
  283. package/src/graph/relationship.ts +0 -167
  284. package/src/graph/relationship_data.ts +0 -31
  285. package/src/graph/relationship_match_collector.ts +0 -64
  286. package/src/graph/relationship_reference.ts +0 -25
  287. package/src/index.browser.ts +0 -46
  288. package/src/index.node.ts +0 -55
  289. package/src/index.ts +0 -12
  290. package/src/io/command_line.ts +0 -74
  291. package/src/parsing/alias.ts +0 -23
  292. package/src/parsing/alias_option.ts +0 -5
  293. package/src/parsing/ast_node.ts +0 -153
  294. package/src/parsing/base_parser.ts +0 -98
  295. package/src/parsing/components/csv.ts +0 -9
  296. package/src/parsing/components/from.ts +0 -12
  297. package/src/parsing/components/headers.ts +0 -12
  298. package/src/parsing/components/json.ts +0 -9
  299. package/src/parsing/components/null.ts +0 -9
  300. package/src/parsing/components/post.ts +0 -9
  301. package/src/parsing/components/text.ts +0 -9
  302. package/src/parsing/context.ts +0 -54
  303. package/src/parsing/data_structures/associative_array.ts +0 -43
  304. package/src/parsing/data_structures/json_array.ts +0 -31
  305. package/src/parsing/data_structures/key_value_pair.ts +0 -37
  306. package/src/parsing/data_structures/lookup.ts +0 -44
  307. package/src/parsing/data_structures/range_lookup.ts +0 -36
  308. package/src/parsing/expressions/boolean.ts +0 -21
  309. package/src/parsing/expressions/expression.ts +0 -150
  310. package/src/parsing/expressions/expression_map.ts +0 -22
  311. package/src/parsing/expressions/f_string.ts +0 -26
  312. package/src/parsing/expressions/identifier.ts +0 -22
  313. package/src/parsing/expressions/number.ts +0 -40
  314. package/src/parsing/expressions/operator.ts +0 -354
  315. package/src/parsing/expressions/reference.ts +0 -45
  316. package/src/parsing/expressions/string.ts +0 -34
  317. package/src/parsing/functions/aggregate_function.ts +0 -58
  318. package/src/parsing/functions/async_function.ts +0 -64
  319. package/src/parsing/functions/avg.ts +0 -47
  320. package/src/parsing/functions/coalesce.ts +0 -49
  321. package/src/parsing/functions/collect.ts +0 -54
  322. package/src/parsing/functions/count.ts +0 -54
  323. package/src/parsing/functions/date.ts +0 -63
  324. package/src/parsing/functions/datetime.ts +0 -63
  325. package/src/parsing/functions/duration.ts +0 -143
  326. package/src/parsing/functions/element_id.ts +0 -51
  327. package/src/parsing/functions/function.ts +0 -60
  328. package/src/parsing/functions/function_factory.ts +0 -195
  329. package/src/parsing/functions/function_metadata.ts +0 -217
  330. package/src/parsing/functions/functions.ts +0 -70
  331. package/src/parsing/functions/head.ts +0 -42
  332. package/src/parsing/functions/id.ts +0 -51
  333. package/src/parsing/functions/join.ts +0 -40
  334. package/src/parsing/functions/keys.ts +0 -29
  335. package/src/parsing/functions/last.ts +0 -42
  336. package/src/parsing/functions/localdatetime.ts +0 -63
  337. package/src/parsing/functions/localtime.ts +0 -58
  338. package/src/parsing/functions/max.ts +0 -37
  339. package/src/parsing/functions/min.ts +0 -37
  340. package/src/parsing/functions/nodes.ts +0 -54
  341. package/src/parsing/functions/predicate_function.ts +0 -48
  342. package/src/parsing/functions/predicate_sum.ts +0 -47
  343. package/src/parsing/functions/properties.ts +0 -56
  344. package/src/parsing/functions/rand.ts +0 -21
  345. package/src/parsing/functions/range.ts +0 -37
  346. package/src/parsing/functions/reducer_element.ts +0 -10
  347. package/src/parsing/functions/relationships.ts +0 -52
  348. package/src/parsing/functions/replace.ts +0 -38
  349. package/src/parsing/functions/round.ts +0 -28
  350. package/src/parsing/functions/schema.ts +0 -39
  351. package/src/parsing/functions/size.ts +0 -28
  352. package/src/parsing/functions/split.ts +0 -45
  353. package/src/parsing/functions/string_distance.ts +0 -83
  354. package/src/parsing/functions/stringify.ts +0 -37
  355. package/src/parsing/functions/substring.ts +0 -68
  356. package/src/parsing/functions/sum.ts +0 -41
  357. package/src/parsing/functions/tail.ts +0 -39
  358. package/src/parsing/functions/temporal_utils.ts +0 -180
  359. package/src/parsing/functions/time.ts +0 -58
  360. package/src/parsing/functions/timestamp.ts +0 -37
  361. package/src/parsing/functions/to_float.ts +0 -50
  362. package/src/parsing/functions/to_integer.ts +0 -50
  363. package/src/parsing/functions/to_json.ts +0 -28
  364. package/src/parsing/functions/to_lower.ts +0 -28
  365. package/src/parsing/functions/to_string.ts +0 -32
  366. package/src/parsing/functions/trim.ts +0 -28
  367. package/src/parsing/functions/type.ts +0 -39
  368. package/src/parsing/functions/value_holder.ts +0 -13
  369. package/src/parsing/logic/case.ts +0 -26
  370. package/src/parsing/logic/else.ts +0 -12
  371. package/src/parsing/logic/end.ts +0 -9
  372. package/src/parsing/logic/then.ts +0 -12
  373. package/src/parsing/logic/when.ts +0 -12
  374. package/src/parsing/operations/aggregated_return.ts +0 -22
  375. package/src/parsing/operations/aggregated_with.ts +0 -18
  376. package/src/parsing/operations/call.ts +0 -69
  377. package/src/parsing/operations/create_node.ts +0 -39
  378. package/src/parsing/operations/create_relationship.ts +0 -38
  379. package/src/parsing/operations/delete_node.ts +0 -33
  380. package/src/parsing/operations/delete_relationship.ts +0 -32
  381. package/src/parsing/operations/group_by.ts +0 -137
  382. package/src/parsing/operations/limit.ts +0 -31
  383. package/src/parsing/operations/load.ts +0 -146
  384. package/src/parsing/operations/match.ts +0 -54
  385. package/src/parsing/operations/operation.ts +0 -69
  386. package/src/parsing/operations/order_by.ts +0 -126
  387. package/src/parsing/operations/projection.ts +0 -18
  388. package/src/parsing/operations/return.ts +0 -76
  389. package/src/parsing/operations/union.ts +0 -114
  390. package/src/parsing/operations/union_all.ts +0 -16
  391. package/src/parsing/operations/unwind.ts +0 -36
  392. package/src/parsing/operations/where.ts +0 -42
  393. package/src/parsing/operations/with.ts +0 -20
  394. package/src/parsing/parser.ts +0 -1641
  395. package/src/parsing/parser_state.ts +0 -25
  396. package/src/parsing/token_to_node.ts +0 -114
  397. package/src/tokenization/keyword.ts +0 -50
  398. package/src/tokenization/operator.ts +0 -25
  399. package/src/tokenization/string_walker.ts +0 -197
  400. package/src/tokenization/symbol.ts +0 -15
  401. package/src/tokenization/token.ts +0 -764
  402. package/src/tokenization/token_mapper.ts +0 -53
  403. package/src/tokenization/token_type.ts +0 -16
  404. package/src/tokenization/tokenizer.ts +0 -250
  405. package/src/tokenization/trie.ts +0 -117
  406. package/src/utils/object_utils.ts +0 -17
  407. package/src/utils/string_utils.ts +0 -114
  408. package/tests/compute/runner.test.ts +0 -4559
  409. package/tests/extensibility.test.ts +0 -643
  410. package/tests/graph/create.test.ts +0 -36
  411. package/tests/graph/data.test.ts +0 -58
  412. package/tests/graph/match.test.ts +0 -29
  413. package/tests/parsing/context.test.ts +0 -27
  414. package/tests/parsing/expression.test.ts +0 -303
  415. package/tests/parsing/parser.test.ts +0 -1327
  416. package/tests/tokenization/token_mapper.test.ts +0 -47
  417. package/tests/tokenization/tokenizer.test.ts +0 -191
  418. package/tests/tokenization/trie.test.ts +0 -20
  419. package/tsconfig.json +0 -19
  420. package/typedoc.json +0 -16
  421. package/vscode-settings.json.recommended +0 -16
  422. package/webpack.config.js +0 -26
@@ -1,98 +0,0 @@
1
- import Token from "../tokenization/token";
2
- import Tokenizer from "../tokenization/tokenizer";
3
-
4
- /**
5
- * Base class for parsers providing common token manipulation functionality.
6
- *
7
- * This class handles tokenization and provides utility methods for navigating
8
- * through tokens, peeking ahead, and checking token sequences.
9
- */
10
- class BaseParser {
11
- private tokens: Token[] = <Token[]>[];
12
- protected tokenIndex: number = 0;
13
-
14
- constructor(tokens: Token[] | null = null) {
15
- if (tokens !== null) {
16
- this.tokens = tokens;
17
- }
18
- }
19
-
20
- /**
21
- * Tokenizes a statement and initializes the token array.
22
- *
23
- * @param statement - The input statement to tokenize
24
- */
25
- protected tokenize(statement: string): void {
26
- this.tokens = new Tokenizer(statement).tokenize();
27
- this.tokenIndex = 0;
28
- }
29
-
30
- /**
31
- * Advances to the next token in the sequence.
32
- */
33
- protected setNextToken(): void {
34
- this.tokenIndex++;
35
- }
36
-
37
- /**
38
- * Peeks at the next token without advancing the current position.
39
- *
40
- * @returns The next token, or null if at the end of the token stream
41
- */
42
- protected peek(): Token | null {
43
- if (this.tokenIndex + 1 >= this.tokens.length) {
44
- return null;
45
- }
46
- return this.tokens[this.tokenIndex + 1];
47
- }
48
-
49
- /**
50
- * Checks if a sequence of tokens appears ahead in the token stream.
51
- *
52
- * @param tokens - The sequence of tokens to look for
53
- * @param skipWhitespaceAndComments - Whether to skip whitespace and comments when matching
54
- * @returns True if the token sequence is found ahead, false otherwise
55
- */
56
- protected ahead(tokens: Token[], skipWhitespaceAndComments: boolean = true): boolean {
57
- let j = 0;
58
- for (let i = this.tokenIndex; i < this.tokens.length; i++) {
59
- if (skipWhitespaceAndComments && this.tokens[i].isWhitespaceOrComment()) {
60
- continue;
61
- }
62
- if (!this.tokens[i].equals(tokens[j])) {
63
- return false;
64
- }
65
- j++;
66
- if (j === tokens.length) {
67
- break;
68
- }
69
- }
70
- return j === tokens.length;
71
- }
72
-
73
- /**
74
- * Gets the current token.
75
- *
76
- * @returns The current token, or EOF if at the end
77
- */
78
- protected get token(): Token {
79
- if (this.tokenIndex >= this.tokens.length) {
80
- return Token.EOF;
81
- }
82
- return this.tokens[this.tokenIndex];
83
- }
84
-
85
- /**
86
- * Gets the previous token.
87
- *
88
- * @returns The previous token, or EOF if at the beginning
89
- */
90
- protected get previousToken(): Token {
91
- if (this.tokenIndex - 1 < 0) {
92
- return Token.EOF;
93
- }
94
- return this.tokens[this.tokenIndex - 1];
95
- }
96
- }
97
-
98
- export default BaseParser;
@@ -1,9 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class CSV extends ASTNode {
4
- constructor() {
5
- super();
6
- }
7
- }
8
-
9
- export default CSV;
@@ -1,12 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class From extends ASTNode {
4
- constructor() {
5
- super()
6
- }
7
- public value(): string {
8
- return this.children[0].value();
9
- }
10
- }
11
-
12
- export default From;
@@ -1,12 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class Headers extends ASTNode {
4
- constructor() {
5
- super()
6
- }
7
- public value(): object {
8
- return this.firstChild().value() as object || {};
9
- }
10
- }
11
-
12
- export default Headers;
@@ -1,9 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class JSON extends ASTNode {
4
- constructor() {
5
- super();
6
- }
7
- }
8
-
9
- export default JSON;
@@ -1,9 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class Null extends ASTNode {
4
- constructor() {
5
- super();
6
- }
7
- }
8
-
9
- export default Null;
@@ -1,9 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class Post extends ASTNode {
4
- constructor() {
5
- super()
6
- }
7
- }
8
-
9
- export default Post;
@@ -1,9 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class Text extends ASTNode {
4
- constructor() {
5
- super();
6
- }
7
- }
8
-
9
- export default Text;
@@ -1,54 +0,0 @@
1
- import ASTNode from "./ast_node";
2
-
3
- /**
4
- * Maintains a stack of AST nodes to track parsing context.
5
- *
6
- * Used during parsing to maintain the current context and check for specific node types
7
- * in the parsing hierarchy, which helps with context-sensitive parsing decisions.
8
- *
9
- * @example
10
- * ```typescript
11
- * const context = new Context();
12
- * context.push(node);
13
- * const hasReturn = context.containsType(Return);
14
- * ```
15
- */
16
- class Context {
17
- private nodes: ASTNode[] = [];
18
-
19
- /**
20
- * Pushes a node onto the context stack.
21
- *
22
- * @param node - The AST node to push
23
- */
24
- public push(node: ASTNode): void {
25
- this.nodes.push(node);
26
- }
27
-
28
- /**
29
- * Pops the top node from the context stack.
30
- *
31
- * @returns The popped node, or undefined if the stack is empty
32
- */
33
- public pop(): ASTNode | undefined {
34
- return this.nodes.pop();
35
- }
36
-
37
- /**
38
- * Checks if the nodes stack contains a node of the specified type.
39
- *
40
- * @param type - The constructor of the node type to search for
41
- * @returns True if a node of the specified type is found in the stack, false otherwise
42
- */
43
- public containsType(type: new (...args: any[]) => ASTNode): boolean {
44
- return this.nodes.some((v) => v instanceof type);
45
- }
46
-
47
- public clone(): Context {
48
- const newContext = new Context();
49
- newContext.nodes = [...this.nodes];
50
- return newContext;
51
- }
52
- }
53
-
54
- export default Context;
@@ -1,43 +0,0 @@
1
- import ASTNode from "../ast_node";
2
- import KeyValuePair from "./key_value_pair";
3
-
4
- /**
5
- * Represents an associative array (object/dictionary) in the AST.
6
- *
7
- * Associative arrays map string keys to values, similar to JSON objects.
8
- *
9
- * @example
10
- * ```typescript
11
- * // For { name: "Alice", age: 30 }
12
- * const obj = new AssociativeArray();
13
- * obj.addKeyValue(new KeyValuePair("name", nameExpr));
14
- * obj.addKeyValue(new KeyValuePair("age", ageExpr));
15
- * ```
16
- */
17
- class AssociativeArray extends ASTNode {
18
- /**
19
- * Adds a key-value pair to the associative array.
20
- *
21
- * @param keyValuePair - The key-value pair to add
22
- */
23
- public addKeyValue(keyValuePair: KeyValuePair): void {
24
- this.addChild(keyValuePair);
25
- }
26
-
27
- public toString(): string {
28
- return 'AssociativeArray';
29
- }
30
- private *_value(): Iterable<Record<PropertyKey, any>> {
31
- for(const child of this.children) {
32
- const key_value = child as KeyValuePair;
33
- yield {
34
- [key_value.key]: key_value._value
35
- };
36
- }
37
- }
38
- public value(): Record<string, any> {
39
- return Object.assign({}, ...this._value());
40
- }
41
- }
42
-
43
- export default AssociativeArray;
@@ -1,31 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- /**
4
- * Represents a JSON array in the AST.
5
- *
6
- * JSON arrays are ordered collections of values.
7
- *
8
- * @example
9
- * ```typescript
10
- * // For [1, 2, 3]
11
- * const arr = new JSONArray();
12
- * arr.addValue(new Number("1"));
13
- * arr.addValue(new Number("2"));
14
- * arr.addValue(new Number("3"));
15
- * ```
16
- */
17
- class JSONArray extends ASTNode {
18
- /**
19
- * Adds a value to the array.
20
- *
21
- * @param value - The AST node representing the value to add
22
- */
23
- public addValue(value: ASTNode): void {
24
- this.addChild(value);
25
- }
26
- public value(): any[] {
27
- return this.children.map(child => child.value());
28
- }
29
- }
30
-
31
- export default JSONArray;
@@ -1,37 +0,0 @@
1
- import ASTNode from "../ast_node";
2
- import String from "../expressions/string";
3
-
4
- /**
5
- * Represents a key-value pair in an associative array.
6
- *
7
- * Used to build object literals in FlowQuery.
8
- *
9
- * @example
10
- * ```typescript
11
- * const kvp = new KeyValuePair("name", new String("Alice"));
12
- * ```
13
- */
14
- class KeyValuePair extends ASTNode {
15
- /**
16
- * Creates a new key-value pair.
17
- *
18
- * @param key - The key string
19
- * @param value - The AST node representing the value
20
- */
21
- constructor(key: string, value: ASTNode) {
22
- super();
23
- this.addChild(new String(key));
24
- this.addChild(value);
25
- }
26
- public get key(): string {
27
- return this.children[0].value();
28
- }
29
- public get _value(): any {
30
- return this.children[1].value();
31
- }
32
- public toString(): string {
33
- return `KeyValuePair`;
34
- }
35
- }
36
-
37
- export default KeyValuePair;
@@ -1,44 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- /**
4
- * Represents a lookup operation (array/object indexing) in the AST.
5
- *
6
- * Lookups access elements from arrays or properties from objects using an index or key.
7
- *
8
- * @example
9
- * ```typescript
10
- * // For array[0] or obj.property or obj["key"]
11
- * const lookup = new Lookup();
12
- * lookup.variable = arrayOrObjNode;
13
- * lookup.index = indexNode;
14
- * ```
15
- */
16
- class Lookup extends ASTNode {
17
- constructor() {
18
- super();
19
- }
20
- public set index(index: ASTNode) {
21
- this.addChild(index);
22
- }
23
- public get index(): ASTNode {
24
- return this.children[0];
25
- }
26
- public set variable(variable: ASTNode) {
27
- this.addChild(variable);
28
- }
29
- public get variable(): ASTNode {
30
- return this.children[1];
31
- }
32
- public isOperand(): boolean {
33
- return true;
34
- }
35
- public value(): any {
36
- const obj = this.variable.value();
37
- if (obj === null || obj === undefined) {
38
- return null;
39
- }
40
- return obj[this.index.value()];
41
- }
42
- }
43
-
44
- export default Lookup;
@@ -1,36 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class RangeLookup extends ASTNode {
4
- constructor() {
5
- super();
6
- }
7
- public set from(from: ASTNode) {
8
- this.addChild(from);
9
- }
10
- public get from(): ASTNode {
11
- return this.children[0];
12
- }
13
- public set to(to: ASTNode) {
14
- this.addChild(to);
15
- }
16
- public get to(): ASTNode {
17
- return this.children[1];
18
- }
19
- public set variable(variable: ASTNode) {
20
- this.addChild(variable);
21
- }
22
- public get variable(): ASTNode {
23
- return this.children[2];
24
- }
25
- public isOperand(): boolean {
26
- return true;
27
- }
28
- public value(): any {
29
- const array: any[] = this.variable.value();
30
- const from = this.from.value() || 0;
31
- const to = this.to.value() || array.length;
32
- return this.variable.value().slice(from, to);
33
- }
34
- }
35
-
36
- export default RangeLookup;
@@ -1,21 +0,0 @@
1
- import ASTNode from "../ast_node";
2
-
3
- class Boolean extends ASTNode {
4
- private _value: boolean;
5
- constructor(value: string) {
6
- super();
7
- const _value = value.toUpperCase();
8
- if (_value === "TRUE") {
9
- this._value = true;
10
- } else if (_value === "FALSE") {
11
- this._value = false;
12
- } else {
13
- throw new Error(`Invalid boolean value: ${value}`);
14
- }
15
- }
16
- public value(): boolean {
17
- return this._value;
18
- }
19
- }
20
-
21
- export default Boolean;
@@ -1,150 +0,0 @@
1
- import PatternExpression from "../../graph/pattern_expression";
2
- import ASTNode from "../ast_node";
3
- import AggregateFunction from "../functions/aggregate_function";
4
- import Reference from "./reference";
5
-
6
- /**
7
- * Represents an expression in the FlowQuery AST.
8
- *
9
- * Expressions are built using the Shunting Yard algorithm to handle operator
10
- * precedence and associativity. They can contain operands (numbers, strings, identifiers)
11
- * and operators (arithmetic, logical, comparison).
12
- *
13
- * @example
14
- * ```typescript
15
- * const expr = new Expression();
16
- * expr.addNode(numberNode);
17
- * expr.addNode(plusOperator);
18
- * expr.addNode(anotherNumberNode);
19
- * expr.finish();
20
- * ```
21
- */
22
- class Expression extends ASTNode {
23
- private operators: ASTNode[] = <ASTNode[]>[];
24
- private output: ASTNode[] = <ASTNode[]>[];
25
- private _alias: string | null = null;
26
- private _overridden: any | null = null;
27
- private _reducers: AggregateFunction[] | null = null;
28
- private _patterns: PatternExpression[] | null = null;
29
-
30
- /**
31
- * Adds a node (operand or operator) to the expression.
32
- *
33
- * Uses the Shunting Yard algorithm to maintain correct operator precedence.
34
- *
35
- * @param node - The AST node to add (operand or operator)
36
- */
37
- public addNode(node: ASTNode): void {
38
- /* Implements the Shunting Yard algorithm */
39
- if (node.isOperand()) {
40
- this.output.push(node);
41
- } else if (node.isOperator()) {
42
- const operator1: ASTNode = node;
43
- while (this.operators.length > 0) {
44
- let operator2 = this.operators[this.operators.length - 1];
45
- if (
46
- operator2.precedence > operator1.precedence ||
47
- (operator2.precedence === operator1.precedence && operator1.leftAssociative)
48
- ) {
49
- this.output.push(operator2);
50
- this.operators.pop();
51
- } else {
52
- break;
53
- }
54
- }
55
- this.operators.push(operator1);
56
- }
57
- }
58
-
59
- /**
60
- * Finalizes the expression by converting it to a tree structure.
61
- *
62
- * Should be called after all nodes have been added.
63
- */
64
- public finish(): void {
65
- let last: ASTNode | undefined;
66
- while ((last = this.operators.pop())) {
67
- this.output.push(last);
68
- }
69
- this.addChild(this.toTree());
70
- }
71
-
72
- private toTree(): ASTNode {
73
- const node = this.output.pop() || new ASTNode();
74
- if (node.isOperator()) {
75
- const rhs = this.toTree();
76
- const lhs = this.toTree();
77
- node.addChild(lhs);
78
- node.addChild(rhs);
79
- }
80
- return node;
81
- }
82
-
83
- public nodesAdded(): boolean {
84
- return this.operators.length > 0 || this.output.length > 0;
85
- }
86
-
87
- public value(): any {
88
- if (this._overridden !== null) {
89
- return this._overridden;
90
- }
91
- if (this.childCount() !== 1) {
92
- throw new Error("Expected one child");
93
- }
94
- return this.children[0].value();
95
- }
96
-
97
- public setAlias(alias: string): void {
98
- this._alias = alias;
99
- }
100
-
101
- public set alias(alias: string) {
102
- this._alias = alias;
103
- }
104
-
105
- public get alias(): string | null {
106
- if (this.firstChild() instanceof Reference && this._alias === null) {
107
- return (<Reference>this.firstChild()).identifier;
108
- }
109
- return this._alias;
110
- }
111
-
112
- public toString(): string {
113
- if (this._alias !== null) {
114
- return `Expression (${this._alias})`;
115
- } else {
116
- return "Expression";
117
- }
118
- }
119
- public reducers(): AggregateFunction[] {
120
- if (this._reducers === null) {
121
- this._reducers = [...this._extract(this, AggregateFunction)];
122
- }
123
- return this._reducers;
124
- }
125
- public patterns(): PatternExpression[] {
126
- if (this._patterns === null) {
127
- this._patterns = [...this._extract(this, PatternExpression)];
128
- }
129
- return this._patterns;
130
- }
131
- private *_extract(node: ASTNode = this, of_type: any): Generator<any> {
132
- if (node instanceof of_type) {
133
- yield node;
134
- }
135
- for (const child of node.getChildren()) {
136
- yield* this._extract(child, of_type);
137
- }
138
- }
139
- public mappable(): boolean {
140
- return this.reducers().length === 0;
141
- }
142
- public has_reducers(): boolean {
143
- return this.reducers().length > 0;
144
- }
145
- public set overridden(value: any) {
146
- this._overridden = value;
147
- }
148
- }
149
-
150
- export default Expression;
@@ -1,22 +0,0 @@
1
- import Expression from "./expression";
2
-
3
- class ExpressionMap {
4
- private _map: Map<string, Expression> = new Map();
5
- public get(alias: string): Expression | undefined {
6
- return this._map.get(alias);
7
- }
8
- public has(alias: string): boolean {
9
- return this._map.has(alias);
10
- }
11
- public set map(expressions: Expression[]) {
12
- this._map.clear();
13
- for (const expr of expressions) {
14
- if (expr.alias == undefined) {
15
- continue;
16
- }
17
- this._map.set(expr.alias, expr);
18
- }
19
- }
20
- }
21
-
22
- export default ExpressionMap;
@@ -1,26 +0,0 @@
1
- import ASTNode from "../ast_node";
2
- import Expression from "./expression";
3
-
4
- /**
5
- * Represents a formatted string (f-string) in the AST.
6
- *
7
- * F-strings allow embedding expressions within string literals.
8
- * Child nodes represent the parts of the f-string (literal strings and expressions).
9
- *
10
- * @example
11
- * ```typescript
12
- * // For f"Hello {name}!"
13
- * const fstr = new FString();
14
- * fstr.addChild(new String("Hello "));
15
- * fstr.addChild(nameExpression);
16
- * fstr.addChild(new String("!"));
17
- * ```
18
- */
19
- class FString extends ASTNode {
20
- public value(): string {
21
- const parts: Expression[] = this.getChildren() as Array<Expression>;
22
- return parts.map((part) => part.value()).join("");
23
- }
24
- }
25
-
26
- export default FString;
@@ -1,22 +0,0 @@
1
- import String from "./string";
2
-
3
- /**
4
- * Represents an identifier in the AST.
5
- *
6
- * Identifiers are used for variable names, property names, and similar constructs.
7
- *
8
- * @example
9
- * ```typescript
10
- * const id = new Identifier("myVariable");
11
- * ```
12
- */
13
- class Identifier extends String {
14
- public toString(): string {
15
- return `Identifier (${this._value})`;
16
- }
17
- public value(): any {
18
- return super.value();
19
- }
20
- }
21
-
22
- export default Identifier;