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,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;