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,167 +0,0 @@
1
- import ASTNode from "../parsing/ast_node";
2
- import Expression from "../parsing/expressions/expression";
3
- import Hops from "./hops";
4
- import Node from "./node";
5
- import RelationshipData, { RelationshipRecord } from "./relationship_data";
6
- import RelationshipMatchCollector, {
7
- RelationshipMatchRecord,
8
- } from "./relationship_match_collector";
9
-
10
- class Relationship extends ASTNode {
11
- protected _identifier: string | null = null;
12
- protected _types: string[] = [];
13
- protected _properties: Map<string, Expression> = new Map();
14
- protected _hops: Hops = new Hops();
15
-
16
- protected _value: RelationshipMatchRecord | RelationshipMatchRecord[] | null = null;
17
- protected _matches: RelationshipMatchCollector = new RelationshipMatchCollector();
18
-
19
- protected _source: Node | null = null;
20
- protected _target: Node | null = null;
21
- protected _direction: "left" | "right" = "right";
22
-
23
- private _data: RelationshipData | null = null;
24
-
25
- constructor(identifier: string | null = null, type: string | null = null) {
26
- super();
27
- this._identifier = identifier;
28
- if (type !== null) {
29
- this._types = [type];
30
- }
31
- }
32
- public set identifier(identifier: string) {
33
- this._identifier = identifier;
34
- }
35
- public get identifier(): string | null {
36
- return this._identifier;
37
- }
38
- public set type(type: string) {
39
- this._types = [type];
40
- }
41
- public get type(): string | null {
42
- return this._types.length > 0 ? this._types[0] : null;
43
- }
44
- public set types(types: string[]) {
45
- this._types = types;
46
- }
47
- public get types(): string[] {
48
- return this._types;
49
- }
50
- public get properties(): Map<string, Expression> {
51
- return this._properties;
52
- }
53
- public set properties(properties: Map<string, Expression>) {
54
- this._properties = properties;
55
- }
56
- private _matchesProperties(hop: number = 0): boolean {
57
- const data: RelationshipData = this._data!;
58
- for (const [key, expression] of this._properties) {
59
- const record: RelationshipRecord = data.current(hop)!;
60
- if (record === null) {
61
- throw new Error("No current relationship data available");
62
- }
63
- if (!(key in record)) {
64
- throw new Error("Relationship does not have property");
65
- }
66
- return record[key] === expression.value();
67
- }
68
- return true;
69
- }
70
- public setProperty(key: string, value: Expression): void {
71
- this._properties.set(key, value);
72
- }
73
- public getProperty(key: string): Expression | null {
74
- return this._properties.get(key) || null;
75
- }
76
- public set hops(hops: Hops) {
77
- this._hops = hops;
78
- }
79
- public get hops(): Hops | null {
80
- return this._hops;
81
- }
82
- public setValue(relationship: Relationship, traversalId: string = ""): void {
83
- const match: RelationshipMatchRecord = this._matches.push(relationship, traversalId);
84
- this._value = this._matches.value();
85
- }
86
- public set source(node: Node | null) {
87
- this._source = node;
88
- }
89
- public get source(): Node | null {
90
- return this._source;
91
- }
92
- public set target(node: Node | null) {
93
- this._target = node;
94
- }
95
- public get target(): Node | null {
96
- return this._target;
97
- }
98
- public set direction(direction: "left" | "right") {
99
- this._direction = direction;
100
- }
101
- public get direction(): "left" | "right" {
102
- return this._direction;
103
- }
104
- public value(): RelationshipMatchRecord | RelationshipMatchRecord[] | null {
105
- return this._value;
106
- }
107
- public get matches(): RelationshipMatchRecord[] {
108
- return this._matches.matches;
109
- }
110
- public setData(data: RelationshipData | null): void {
111
- this._data = data;
112
- }
113
- public getData(): RelationshipData | null {
114
- return this._data;
115
- }
116
- public setEndNode(node: Node): void {
117
- this._matches.endNode = node;
118
- }
119
- public _left_id_or_right_id(): string {
120
- return this._direction === "left" ? "left_id" : "right_id";
121
- }
122
- public async find(left_id: string, hop: number = 0): Promise<void> {
123
- // Save original source node
124
- const original = this._source;
125
- if (hop > 0) {
126
- // For hops greater than 0, the source becomes the target of the previous hop
127
- this._source = this._target;
128
- }
129
- if (hop === 0) {
130
- this._data?.reset();
131
-
132
- // Handle zero-hop case: when min is 0 on a variable-length relationship,
133
- // match source node as target (no traversal)
134
- if (this.hops?.multi() && this.hops.min === 0 && this._target) {
135
- // For zero-hop, target finds the same node as source (left_id)
136
- // No relationship match is pushed since no edge is traversed
137
- await this._target.find(left_id, hop);
138
- }
139
- }
140
- while (this._data!.find(left_id, hop, this._direction)) {
141
- const data: RelationshipRecord = this._data?.current(hop) as RelationshipRecord;
142
- const id = data[this._left_id_or_right_id()];
143
- if (hop + 1 >= this.hops!.min) {
144
- this.setValue(this, left_id);
145
- if (!this._matchesProperties(hop)) {
146
- continue;
147
- }
148
- await this._target?.find(id, hop);
149
- if (hop + 1 < this.hops!.max) {
150
- if (this._matches.isCircular(id)) {
151
- this._matches.pop();
152
- continue;
153
- }
154
- await this.find(id, hop + 1);
155
- }
156
- this._matches.pop();
157
- } else {
158
- // Below minimum hops: traverse the edge without yielding a match
159
- await this.find(id, hop + 1);
160
- }
161
- }
162
- // Restore original source node
163
- this._source = original;
164
- }
165
- }
166
-
167
- export default Relationship;
@@ -1,31 +0,0 @@
1
- import Data from "./data";
2
-
3
- export type RelationshipRecord = { left_id: string; right_id: string } & Record<string, any>;
4
-
5
- class RelationshipData extends Data {
6
- constructor(records: RelationshipRecord[] = []) {
7
- super(records);
8
- super._buildIndex("left_id");
9
- super._buildIndex("right_id");
10
- }
11
- public find(id: string, hop: number = 0, direction: "left" | "right" = "right"): boolean {
12
- return super._find(id, hop, direction === "left" ? "right_id" : "left_id");
13
- }
14
- /*
15
- ** Get the properties of the current relationship record
16
- '' excluding the left_id and right_id fields
17
- */
18
- public properties(): Record<string, any> | null {
19
- const current = this.current();
20
- if (current) {
21
- const { left_id, right_id, _type, ...props } = current;
22
- return props;
23
- }
24
- return null;
25
- }
26
- public current(hop: number = 0): RelationshipRecord | null {
27
- return super.current(hop) as RelationshipRecord | null;
28
- }
29
- }
30
-
31
- export default RelationshipData;
@@ -1,64 +0,0 @@
1
- import Relationship from "./relationship";
2
-
3
- export type RelationshipMatchRecord = {
4
- type: string;
5
- startNode: Record<string, any>;
6
- endNode: Record<string, any> | null;
7
- properties: Record<string, any>;
8
- [key: string]: any;
9
- };
10
-
11
- class RelationshipMatchCollector {
12
- private _matches: RelationshipMatchRecord[] = [];
13
- private _nodeIds: Array<string> = [];
14
-
15
- public push(relationship: Relationship, traversalId: string): RelationshipMatchRecord {
16
- const data = relationship.getData();
17
- const currentRecord = data?.current();
18
- const actualType =
19
- currentRecord && "_type" in currentRecord ? currentRecord["_type"] : relationship.type!;
20
- const relProperties = data?.properties() as Record<string, any>;
21
- const match: RelationshipMatchRecord = {
22
- ...(relProperties || {}),
23
- type: actualType,
24
- startNode: relationship.source?.value() || {},
25
- endNode: null,
26
- properties: relProperties,
27
- };
28
- this._matches.push(match);
29
- this._nodeIds.push(traversalId);
30
- return match;
31
- }
32
- public set endNode(node: any) {
33
- if (this._matches.length > 0) {
34
- this._matches[this._matches.length - 1].endNode = node.value();
35
- }
36
- }
37
- public pop(): RelationshipMatchRecord | undefined {
38
- this._nodeIds.pop();
39
- return this._matches.pop();
40
- }
41
- public value(): RelationshipMatchRecord | RelationshipMatchRecord[] | null {
42
- if (this._matches.length === 0) {
43
- return null;
44
- } else if (this._matches.length === 1) {
45
- const _match = this._matches[0];
46
- return _match;
47
- } else {
48
- const _matches = this._matches;
49
- return _matches;
50
- }
51
- }
52
- public get matches(): RelationshipMatchRecord[] {
53
- return this._matches;
54
- }
55
- /*
56
- ** Checks if traversing to the given node id would form a cycle
57
- ** in the current traversal path
58
- */
59
- public isCircular(nextId: string): boolean {
60
- return this._nodeIds.includes(nextId);
61
- }
62
- }
63
-
64
- export default RelationshipMatchCollector;
@@ -1,25 +0,0 @@
1
- import Relationship from "./relationship";
2
- import { RelationshipRecord } from "./relationship_data";
3
-
4
- class RelationshipReference extends Relationship {
5
- private _reference: Relationship | null = null;
6
- constructor(base: Relationship, reference: Relationship) {
7
- super();
8
- this._identifier = base.identifier;
9
- this._types = base.types;
10
- this._hops = base.hops!;
11
- this._source = base.source;
12
- this._target = base.target;
13
- this._reference = reference;
14
- }
15
- public async find(left_id: string, hop: number = 0): Promise<void> {
16
- this.setValue(this._reference!);
17
- const data: RelationshipRecord = this._reference!.getData()?.current(
18
- hop
19
- ) as RelationshipRecord;
20
- const followId = this._direction === "left" ? "left_id" : "right_id";
21
- await this._target?.find(data[followId], hop);
22
- }
23
- }
24
-
25
- export default RelationshipReference;
@@ -1,46 +0,0 @@
1
- /**
2
- * FlowQuery - A declarative query language for data processing pipelines.
3
- *
4
- * This is the main entry point for the FlowQuery in-browser usage.
5
- *
6
- * @packageDocumentation
7
- */
8
- import { default as FlowQuery } from "./compute/flowquery";
9
- import Function from "./parsing/functions/function";
10
- import FunctionFactory from "./parsing/functions/function_factory";
11
- import {
12
- FunctionMetadata,
13
- OutputSchema,
14
- ParameterSchema,
15
- } from "./parsing/functions/function_metadata";
16
-
17
- /**
18
- * List all registered functions with their metadata.
19
- *
20
- * @param options - Optional filter options
21
- * @returns Array of function metadata
22
- */
23
- FlowQuery.listFunctions = function (options?: {
24
- category?: string;
25
- asyncOnly?: boolean;
26
- syncOnly?: boolean;
27
- }): FunctionMetadata[] {
28
- return FunctionFactory.listFunctions(options);
29
- };
30
-
31
- /**
32
- * Get metadata for a specific function.
33
- *
34
- * @param name - The function name
35
- * @returns Function metadata or undefined
36
- */
37
- FlowQuery.getFunctionMetadata = function (name: string): FunctionMetadata | undefined {
38
- return FunctionFactory.getMetadata(name);
39
- };
40
-
41
- /**
42
- * Base Function class for creating custom plugin functions.
43
- */
44
- FlowQuery.Function = Function;
45
-
46
- export default FlowQuery;
package/src/index.node.ts DELETED
@@ -1,55 +0,0 @@
1
- /**
2
- * FlowQuery - A declarative query language for data processing pipelines.
3
- *
4
- * This is the main entry point for the FlowQuery Node.js library usage.
5
- *
6
- * @packageDocumentation
7
- */
8
- import { default as FlowQuery } from "./compute/flowquery";
9
- import Function from "./parsing/functions/function";
10
- import FunctionFactory, { AsyncDataProvider } from "./parsing/functions/function_factory";
11
- import {
12
- FunctionMetadata,
13
- OutputSchema,
14
- ParameterSchema,
15
- } from "./parsing/functions/function_metadata";
16
-
17
- /**
18
- * List all registered functions with their metadata.
19
- *
20
- * @param options - Optional filter options
21
- * @returns Array of function metadata
22
- */
23
- FlowQuery.listFunctions = function (options?: {
24
- category?: string;
25
- asyncOnly?: boolean;
26
- syncOnly?: boolean;
27
- }): FunctionMetadata[] {
28
- return FunctionFactory.listFunctions(options);
29
- };
30
-
31
- /**
32
- * Get metadata for a specific function.
33
- *
34
- * @param name - The function name
35
- * @returns Function metadata or undefined
36
- */
37
- FlowQuery.getFunctionMetadata = function (name: string): FunctionMetadata | undefined {
38
- return FunctionFactory.getMetadata(name);
39
- };
40
-
41
- /**
42
- * Base Function class for creating custom plugin functions.
43
- */
44
- FlowQuery.Function = Function;
45
-
46
- export default FlowQuery;
47
- export {
48
- FlowQuery,
49
- Function,
50
- FunctionFactory,
51
- AsyncDataProvider,
52
- FunctionMetadata,
53
- ParameterSchema,
54
- OutputSchema,
55
- };
package/src/index.ts DELETED
@@ -1,12 +0,0 @@
1
- /**
2
- * FlowQuery - A declarative query language for data processing pipelines.
3
- *
4
- * Main entry point for the FlowQuery command-line interface.
5
- *
6
- * @packageDocumentation
7
- */
8
-
9
- import CommandLine from "./io/command_line";
10
-
11
- const commandLine = new CommandLine();
12
- commandLine.loop();
@@ -1,74 +0,0 @@
1
- import Runner from '../compute/runner';
2
- import * as readline from 'readline';
3
-
4
- /**
5
- * Interactive command-line interface for FlowQuery.
6
- *
7
- * Provides a REPL (Read-Eval-Print Loop) for executing FlowQuery statements
8
- * and displaying results.
9
- *
10
- * @example
11
- * ```typescript
12
- * const cli = new CommandLine();
13
- * cli.loop(); // Starts interactive mode
14
- * ```
15
- */
16
- class CommandLine {
17
- private rl: readline.Interface;
18
-
19
- /**
20
- * Creates a new CommandLine interface.
21
- */
22
- constructor() {
23
- this.rl = readline.createInterface({
24
- input: process.stdin,
25
- output: process.stdout
26
- });
27
- }
28
-
29
- /**
30
- * Starts the interactive command loop.
31
- *
32
- * Prompts the user for FlowQuery statements, executes them, and displays results.
33
- * Type "exit" to quit the loop.
34
- */
35
- public loop() {
36
- console.log('Welcome to FlowQuery! Type "exit" to quit.');
37
- this.rl.setPrompt('> ');
38
- this.rl.prompt();
39
-
40
- this.rl.on('line', (input: string) => {
41
- if (input === 'exit') {
42
- this.rl.close();
43
- return;
44
- }
45
- if(input.trim() === '') {
46
- this.rl.prompt();
47
- return;
48
- }
49
- try {
50
- const runner = new Runner(input);
51
- const promise = runner.run();
52
- promise.then(
53
- () => {
54
- console.log(runner.results);
55
- }
56
- );
57
- promise.catch(
58
- (e) => console.error(e)
59
- );
60
- promise.finally(
61
- () => this.rl.prompt()
62
- );
63
- } catch (e) {
64
- console.error(e);
65
- this.rl.prompt();
66
- }
67
- }).on('close', () => {
68
- console.log('Exiting FlowQuery.');
69
- process.exit(0);
70
- });
71
- }
72
- }
73
-
74
- export default CommandLine;
@@ -1,23 +0,0 @@
1
- import ASTNode from "./ast_node";
2
-
3
- class Alias extends ASTNode {
4
- private alias: string;
5
- constructor(alias: string) {
6
- super();
7
- this.alias = alias;
8
- }
9
-
10
- public toString(): string {
11
- return `Alias (${this.alias})`;
12
- }
13
-
14
- public getAlias(): string {
15
- return this.alias;
16
- }
17
-
18
- public value(): string {
19
- return this.alias;
20
- }
21
- }
22
-
23
- export default Alias;
@@ -1,5 +0,0 @@
1
- export enum AliasOption {
2
- NOT_ALLOWED = 0,
3
- OPTIONAL = 1,
4
- REQUIRED = 2,
5
- };
@@ -1,153 +0,0 @@
1
- /**
2
- * Represents a node in the Abstract Syntax Tree (AST).
3
- *
4
- * The AST is a tree representation of the parsed FlowQuery statement structure.
5
- * Each node can have children and maintains a reference to its parent.
6
- *
7
- * @example
8
- * ```typescript
9
- * const root = new ASTNode();
10
- * const child = new ASTNode();
11
- * root.addChild(child);
12
- * ```
13
- */
14
- class ASTNode {
15
- protected _parent: ASTNode | null = null;
16
- protected children: ASTNode[] = [];
17
-
18
- /**
19
- * Adds a child node to this node and sets the child's parent reference.
20
- *
21
- * @param child - The child node to add
22
- */
23
- public addChild(child: ASTNode): void {
24
- child._parent = this;
25
- this.children.push(child);
26
- }
27
-
28
- /**
29
- * Returns the first child node.
30
- *
31
- * @returns The first child node
32
- * @throws {Error} If the node has no children
33
- */
34
- public firstChild(): ASTNode {
35
- if(this.children.length === 0) {
36
- throw new Error('Expected child');
37
- }
38
- return this.children[0];
39
- }
40
-
41
- /**
42
- * Returns the last child node.
43
- *
44
- * @returns The last child node
45
- * @throws {Error} If the node has no children
46
- */
47
- public lastChild(): ASTNode {
48
- if(this.children.length === 0) {
49
- throw new Error('Expected child');
50
- }
51
- return this.children[this.children.length - 1];
52
- }
53
-
54
- /**
55
- * Returns all child nodes.
56
- *
57
- * @returns Array of child nodes
58
- */
59
- public getChildren(): ASTNode[] {
60
- return this.children;
61
- }
62
-
63
- /**
64
- * Returns the number of child nodes.
65
- *
66
- * @returns The count of children
67
- */
68
- public childCount(): number {
69
- return this.children.length;
70
- }
71
-
72
- /**
73
- * Returns the value of this node. Override in subclasses to provide specific values.
74
- *
75
- * @returns The node's value, or null if not applicable
76
- */
77
- public value(): any {
78
- return null;
79
- }
80
-
81
- /**
82
- * Checks if this node represents an operator.
83
- *
84
- * @returns True if this is an operator node, false otherwise
85
- */
86
- public isOperator(): boolean {
87
- return false;
88
- }
89
-
90
- /**
91
- * Checks if this node represents an operand (the opposite of an operator).
92
- *
93
- * @returns True if this is an operand node, false otherwise
94
- */
95
- public isOperand(): boolean {
96
- return !this.isOperator();
97
- }
98
-
99
- /**
100
- * Gets the operator precedence for this node. Higher values indicate higher precedence.
101
- *
102
- * @returns The precedence value (0 for non-operators)
103
- */
104
- public get precedence(): number {
105
- return 0;
106
- }
107
-
108
- /**
109
- * Indicates whether this operator is left-associative.
110
- *
111
- * @returns True if left-associative, false otherwise
112
- */
113
- public get leftAssociative(): boolean {
114
- return false;
115
- }
116
-
117
- /**
118
- * Prints a string representation of the AST tree starting from this node.
119
- *
120
- * @returns A formatted string showing the tree structure
121
- */
122
- public print(): string {
123
- return Array.from(this._print(0)).join('\n');
124
- }
125
-
126
- /**
127
- * Generator function for recursively printing the tree structure.
128
- *
129
- * @param indent - The current indentation level
130
- * @yields Lines representing each node in the tree
131
- */
132
- private *_print(indent: number): Generator<string> {
133
- if(indent === 0) {
134
- yield this.constructor.name;
135
- } else if(indent > 0) {
136
- yield '-'.repeat(indent) + ` ${this.toString()}`;
137
- }
138
- for(const child of this.children) {
139
- yield* child._print(indent + 1);
140
- }
141
- }
142
-
143
- /**
144
- * Returns a string representation of this node. Override in subclasses for custom formatting.
145
- *
146
- * @returns The string representation
147
- */
148
- protected toString(): string {
149
- return this.constructor.name;
150
- }
151
- }
152
-
153
- export default ASTNode;