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 +0,0 @@
1
- """Graph tests package."""
@@ -1,56 +0,0 @@
1
- """Tests for graph node and relationship creation."""
2
-
3
- import pytest
4
- from flowquery.graph.database import Database
5
- from flowquery.graph.physical_node import PhysicalNode
6
- from flowquery.graph.physical_relationship import PhysicalRelationship
7
- from flowquery.parsing.operations.create_node import CreateNode
8
- from flowquery.parsing.operations.create_relationship import CreateRelationship
9
- from flowquery.parsing.parser import Parser
10
-
11
-
12
- class TestCreateNode:
13
- """Test cases for CreateNode operation."""
14
-
15
- @pytest.mark.asyncio
16
- async def test_create_node_operation(self):
17
- """Test CreateNode operation."""
18
- node = PhysicalNode(None, "Person")
19
- assert node.label == "Person"
20
- assert node.statement is None
21
-
22
- parser = Parser()
23
- statement = parser.parse("WITH 1 as x RETURN x")
24
- op = CreateNode(node, statement)
25
- await op.run()
26
-
27
- db = Database.get_instance()
28
- found = db.get_node(node)
29
- assert found is not None
30
- assert found.label == node.label
31
-
32
- data = await found.data()
33
- assert data == [{"x": 1}]
34
-
35
-
36
- class TestCreateRelationship:
37
- """Test cases for CreateRelationship operation."""
38
-
39
- @pytest.mark.asyncio
40
- async def test_create_relationship_operation(self):
41
- """Test CreateRelationship operation."""
42
- relationship = PhysicalRelationship()
43
- relationship.type = "KNOWS"
44
- assert relationship.type == "KNOWS"
45
- assert relationship.statement is None
46
-
47
- parser = Parser()
48
- statement = parser.parse("WITH 1 as x RETURN x")
49
- op = CreateRelationship(relationship, statement)
50
- await op.run()
51
-
52
- db = Database.get_instance()
53
- found = db.get_relationship(relationship)
54
-
55
- data = await found.data()
56
- assert data == [{"x": 1}]
@@ -1,73 +0,0 @@
1
- """Tests for graph data iteration."""
2
-
3
- import pytest
4
- from flowquery.graph.data import Data
5
- from flowquery.graph.node_data import NodeData
6
- from flowquery.graph.relationship_data import RelationshipData
7
-
8
-
9
- class TestDataIteration:
10
- """Test cases for Data class iteration."""
11
-
12
- def test_data_iteration(self):
13
- """Test data iteration."""
14
- records = [
15
- {"id": "1", "name": "Alice"},
16
- {"id": "2", "name": "Bob"},
17
- {"id": "3", "name": "Charlie"},
18
- ]
19
- data = Data(records)
20
- assert data.next() is True
21
- assert data.next() is True
22
- assert data.next() is True
23
- assert data.next() is False
24
-
25
-
26
- class TestNodeDataFind:
27
- """Test cases for NodeData find operations."""
28
-
29
- def test_data_find(self):
30
- """Test data find."""
31
- records = [
32
- {"id": "1", "name": "Alice"},
33
- {"id": "2", "name": "Bob"},
34
- {"id": "3", "name": "Charlie"},
35
- {"id": "2", "name": "Bob Duplicate"},
36
- ]
37
- data = NodeData(records)
38
- data.find("2")
39
- assert data.current() == {"id": "2", "name": "Bob"}
40
- assert data.find("2") is True
41
- assert data.current() == {"id": "2", "name": "Bob Duplicate"}
42
- assert data.find("2") is False
43
-
44
- def test_data_find_non_existing(self):
45
- """Test data find non-existing."""
46
- records = [
47
- {"id": "1", "name": "Alice"},
48
- {"id": "2", "name": "Bob"},
49
- ]
50
- data = NodeData(records)
51
- assert data.find("3") is False
52
-
53
-
54
- class TestRelationshipDataFind:
55
- """Test cases for RelationshipData find operations."""
56
-
57
- def test_relationship_data_find(self):
58
- """Test RelationshipData find."""
59
- records = [
60
- {"left_id": "1", "right_id": "2", "type": "FRIEND", "id": "r1"},
61
- {"left_id": "2", "right_id": "3", "type": "COLLEAGUE", "id": "r2"},
62
- {"left_id": "1", "right_id": "3", "type": "FRIEND", "id": "r3"},
63
- ]
64
- data = RelationshipData(records)
65
- data.find("1")
66
- assert data.current() == {"left_id": "1", "right_id": "2", "type": "FRIEND", "id": "r1"}
67
- assert data.find("1") is True
68
- assert data.current() == {"left_id": "1", "right_id": "3", "type": "FRIEND", "id": "r3"}
69
- assert data.find("1") is False
70
- assert data.find("2") is True
71
- assert data.current() == {"left_id": "2", "right_id": "3", "type": "COLLEAGUE", "id": "r2"}
72
- assert data.find("2") is False
73
- assert data.find("4") is False
@@ -1,40 +0,0 @@
1
- """Tests for graph pattern matching."""
2
-
3
- import pytest
4
- from flowquery.compute.runner import Runner
5
- from flowquery.graph.physical_node import PhysicalNode
6
- from flowquery.parsing.operations.create_node import CreateNode
7
- from flowquery.parsing.parser import Parser
8
-
9
-
10
- class TestMatch:
11
- """Test cases for Match operation."""
12
-
13
- @pytest.mark.asyncio
14
- async def test_create_node_and_match_operations(self):
15
- """Test CreateNode and match operations."""
16
- node = PhysicalNode(None, "Person")
17
- assert node.label == "Person"
18
- assert node.statement is None
19
-
20
- parser = Parser()
21
- statement = parser.parse("""
22
- unwind [
23
- {id: 1, name: 'Person 1'},
24
- {id: 2, name: 'Person 2'}
25
- ] as record
26
- RETURN record.id as id, record.name as name
27
- """)
28
- op = CreateNode(node, statement)
29
- await op.run()
30
-
31
- runner = Runner("match (n:Person) RETURN n")
32
- await runner.run()
33
-
34
- assert len(runner.results) == 2
35
- assert runner.results[0]["n"] is not None
36
- assert runner.results[0]["n"]["id"] == 1
37
- assert runner.results[0]["n"]["name"] == "Person 1"
38
- assert runner.results[1]["n"] is not None
39
- assert runner.results[1]["n"]["id"] == 2
40
- assert runner.results[1]["n"]["name"] == "Person 2"
@@ -1 +0,0 @@
1
- """Parsing tests package."""
@@ -1,34 +0,0 @@
1
- """Tests for the parsing context."""
2
-
3
- import pytest
4
- from flowquery.parsing.context import Context
5
- from flowquery.parsing.functions.sum import Sum
6
- from flowquery.parsing.functions.aggregate_function import AggregateFunction
7
-
8
-
9
- class TestContext:
10
- """Test cases for the Context class."""
11
-
12
- def test_context_contains_type(self):
13
- """Test Context containsType."""
14
- context = Context()
15
- sum_func = Sum()
16
- context.push(sum_func)
17
- assert context.contains_type(AggregateFunction) is True
18
-
19
- def test_context_contains_type_false(self):
20
- """Test Context containsType false."""
21
- context = Context()
22
- assert context.contains_type(AggregateFunction) is False
23
-
24
- def test_context_push_and_pop(self):
25
- """Test Context push and pop."""
26
- context = Context()
27
- sum_func = Sum()
28
- context.push(sum_func)
29
- assert context.pop() is sum_func
30
-
31
- def test_context_pop_none(self):
32
- """Test Context pop returns None when empty."""
33
- context = Context()
34
- assert context.pop() is None
@@ -1,248 +0,0 @@
1
- """Tests for expression evaluation."""
2
-
3
- import pytest
4
- from flowquery.parsing.expressions.expression import Expression
5
- from flowquery.parsing.expressions.operator import (
6
- Add, Subtract, Multiply, Power, GreaterThan, And, Is, IsNot,
7
- Contains, NotContains, StartsWith, NotStartsWith, EndsWith, NotEndsWith,
8
- Equals, NotEquals,
9
- )
10
- from flowquery.parsing.expressions.number import Number
11
- from flowquery.parsing.expressions.string import String
12
- from flowquery.parsing.components.null import Null
13
- from flowquery.parsing.ast_node import ASTNode
14
-
15
-
16
- class ObjectValue(ASTNode):
17
- """Test helper that wraps an arbitrary value as an ASTNode operand."""
18
-
19
- def __init__(self, val):
20
- super().__init__()
21
- self._val = val
22
-
23
- def value(self):
24
- return self._val
25
-
26
-
27
- class TestExpression:
28
- """Test cases for the Expression class."""
29
-
30
- def test_expression_shunting_yard_algorithm(self):
31
- """Test Expression Shunting Yard algorithm."""
32
- expression = Expression()
33
- expression.add_node(Number("2"))
34
- expression.add_node(Add())
35
- expression.add_node(Number("3"))
36
- expression.add_node(Multiply())
37
- expression.add_node(Number("4"))
38
- expression.add_node(Subtract())
39
- expression.add_node(Number("2"))
40
- expression.add_node(Power())
41
- expression.add_node(Number("2"))
42
- expression.finish()
43
- assert expression.value() == 10
44
-
45
- def test_expression_with_and_operator(self):
46
- """Test Expression with and operator."""
47
- expression = Expression()
48
- expression.add_node(Number("2"))
49
- expression.add_node(And())
50
- expression.add_node(Number("3"))
51
- expression.finish()
52
- assert expression.value() == 1
53
-
54
- def test_comparison_with_and(self):
55
- """Test 1 > 0 and 2 > 1."""
56
- expression = Expression()
57
- expression.add_node(Number("1"))
58
- expression.add_node(GreaterThan())
59
- expression.add_node(Number("0"))
60
- expression.add_node(And())
61
- expression.add_node(Number("2"))
62
- expression.add_node(GreaterThan())
63
- expression.add_node(Number("1"))
64
- expression.finish()
65
- assert expression.value() == 1
66
-
67
- def test_is_null_with_null_value(self):
68
- """Test IS NULL with null value."""
69
- expression = Expression()
70
- expression.add_node(Null())
71
- expression.add_node(Is())
72
- expression.add_node(Null())
73
- expression.finish()
74
- assert expression.value() == 1
75
-
76
- def test_is_null_with_non_null_value(self):
77
- """Test IS NULL with non-null value."""
78
- expression = Expression()
79
- expression.add_node(Number("42"))
80
- expression.add_node(Is())
81
- expression.add_node(Null())
82
- expression.finish()
83
- assert expression.value() == 0
84
-
85
- def test_is_not_null_with_non_null_value(self):
86
- """Test IS NOT NULL with non-null value."""
87
- expression = Expression()
88
- expression.add_node(Number("42"))
89
- expression.add_node(IsNot())
90
- expression.add_node(Null())
91
- expression.finish()
92
- assert expression.value() == 1
93
-
94
- def test_is_not_null_with_null_value(self):
95
- """Test IS NOT NULL with null value."""
96
- expression = Expression()
97
- expression.add_node(Null())
98
- expression.add_node(IsNot())
99
- expression.add_node(Null())
100
- expression.finish()
101
- assert expression.value() == 0
102
-
103
- def test_contains_with_matching_substring(self):
104
- """Test CONTAINS with matching substring."""
105
- expression = Expression()
106
- expression.add_node(String("pineapple"))
107
- expression.add_node(Contains())
108
- expression.add_node(String("apple"))
109
- expression.finish()
110
- assert expression.value() == 1
111
-
112
- def test_contains_with_non_matching_substring(self):
113
- """Test CONTAINS with non-matching substring."""
114
- expression = Expression()
115
- expression.add_node(String("banana"))
116
- expression.add_node(Contains())
117
- expression.add_node(String("apple"))
118
- expression.finish()
119
- assert expression.value() == 0
120
-
121
- def test_not_contains(self):
122
- """Test NOT CONTAINS."""
123
- expression = Expression()
124
- expression.add_node(String("banana"))
125
- expression.add_node(NotContains())
126
- expression.add_node(String("apple"))
127
- expression.finish()
128
- assert expression.value() == 1
129
-
130
- def test_starts_with_matching_prefix(self):
131
- """Test STARTS WITH matching prefix."""
132
- expression = Expression()
133
- expression.add_node(String("pineapple"))
134
- expression.add_node(StartsWith())
135
- expression.add_node(String("pine"))
136
- expression.finish()
137
- assert expression.value() == 1
138
-
139
- def test_starts_with_non_matching_prefix(self):
140
- """Test STARTS WITH non-matching prefix."""
141
- expression = Expression()
142
- expression.add_node(String("pineapple"))
143
- expression.add_node(StartsWith())
144
- expression.add_node(String("apple"))
145
- expression.finish()
146
- assert expression.value() == 0
147
-
148
- def test_not_starts_with(self):
149
- """Test NOT STARTS WITH."""
150
- expression = Expression()
151
- expression.add_node(String("pineapple"))
152
- expression.add_node(NotStartsWith())
153
- expression.add_node(String("apple"))
154
- expression.finish()
155
- assert expression.value() == 1
156
-
157
- def test_ends_with_matching_suffix(self):
158
- """Test ENDS WITH matching suffix."""
159
- expression = Expression()
160
- expression.add_node(String("pineapple"))
161
- expression.add_node(EndsWith())
162
- expression.add_node(String("apple"))
163
- expression.finish()
164
- assert expression.value() == 1
165
-
166
- def test_ends_with_non_matching_suffix(self):
167
- """Test ENDS WITH non-matching suffix."""
168
- expression = Expression()
169
- expression.add_node(String("pineapple"))
170
- expression.add_node(EndsWith())
171
- expression.add_node(String("banana"))
172
- expression.finish()
173
- assert expression.value() == 0
174
-
175
- def test_not_ends_with(self):
176
- """Test NOT ENDS WITH."""
177
- expression = Expression()
178
- expression.add_node(String("pineapple"))
179
- expression.add_node(NotEndsWith())
180
- expression.add_node(String("banana"))
181
- expression.finish()
182
- assert expression.value() == 1
183
-
184
- # Equals / NotEquals tests
185
-
186
- def test_equals_with_equal_numbers(self):
187
- """Test Equals with equal numbers."""
188
- expression = Expression()
189
- expression.add_node(Number("42"))
190
- expression.add_node(Equals())
191
- expression.add_node(Number("42"))
192
- expression.finish()
193
- assert expression.value() == 1
194
-
195
- def test_equals_with_different_numbers(self):
196
- """Test Equals with different numbers."""
197
- expression = Expression()
198
- expression.add_node(Number("42"))
199
- expression.add_node(Equals())
200
- expression.add_node(Number("99"))
201
- expression.finish()
202
- assert expression.value() == 0
203
-
204
- def test_equals_with_structurally_equal_objects(self):
205
- """Test Equals with structurally equal objects (different references)."""
206
- expression = Expression()
207
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
208
- expression.add_node(Equals())
209
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
210
- expression.finish()
211
- assert expression.value() == 1
212
-
213
- def test_equals_with_different_objects(self):
214
- """Test Equals with different objects."""
215
- expression = Expression()
216
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
217
- expression.add_node(Equals())
218
- expression.add_node(ObjectValue({"id": "2", "name": "Bob"}))
219
- expression.finish()
220
- assert expression.value() == 0
221
-
222
- def test_not_equals_with_structurally_equal_objects(self):
223
- """Test NotEquals with structurally equal objects."""
224
- expression = Expression()
225
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
226
- expression.add_node(NotEquals())
227
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
228
- expression.finish()
229
- assert expression.value() == 0
230
-
231
- def test_not_equals_with_different_objects(self):
232
- """Test NotEquals with different objects."""
233
- expression = Expression()
234
- expression.add_node(ObjectValue({"id": "1", "name": "Alice"}))
235
- expression.add_node(NotEquals())
236
- expression.add_node(ObjectValue({"id": "2", "name": "Bob"}))
237
- expression.finish()
238
- assert expression.value() == 1
239
-
240
- def test_equals_with_same_reference_object(self):
241
- """Test Equals with the same reference object."""
242
- obj = {"id": "1", "name": "Alice"}
243
- expression = Expression()
244
- expression.add_node(ObjectValue(obj))
245
- expression.add_node(Equals())
246
- expression.add_node(ObjectValue(obj))
247
- expression.finish()
248
- assert expression.value() == 1