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,26 +0,0 @@
1
- """Expression map for managing named expressions."""
2
-
3
- from __future__ import annotations
4
-
5
- from typing import Any, List, Optional
6
-
7
-
8
- class ExpressionMap:
9
- """Maps expression aliases to their corresponding Expression objects."""
10
-
11
- def __init__(self) -> None:
12
- self._map: dict[str, Any] = {}
13
-
14
- def get(self, alias: str) -> Optional[Any]:
15
- return self._map.get(alias)
16
-
17
- def has(self, alias: str) -> bool:
18
- return alias in self._map
19
-
20
- def set_map(self, expressions: List[Any]) -> None:
21
- self._map.clear()
22
- for expr in expressions:
23
- alias = getattr(expr, 'alias', None)
24
- if alias is None:
25
- continue
26
- self._map[alias] = expr
@@ -1,27 +0,0 @@
1
- """Represents a formatted string (f-string) in the AST."""
2
-
3
- from typing import TYPE_CHECKING
4
-
5
- from ..ast_node import ASTNode
6
-
7
- if TYPE_CHECKING:
8
- pass
9
-
10
-
11
- class FString(ASTNode):
12
- """Represents a formatted string (f-string) in the AST.
13
-
14
- F-strings allow embedding expressions within string literals.
15
- Child nodes represent the parts of the f-string (literal strings and expressions).
16
-
17
- Example:
18
- # For f"Hello {name}!"
19
- fstr = FString()
20
- fstr.add_child(String("Hello "))
21
- fstr.add_child(name_expression)
22
- fstr.add_child(String("!"))
23
- """
24
-
25
- def value(self) -> str:
26
- parts = self.get_children()
27
- return "".join(str(part.value()) for part in parts)
@@ -1,21 +0,0 @@
1
- """Represents an identifier in the AST."""
2
-
3
- from typing import Any
4
-
5
- from .string import String
6
-
7
-
8
- class Identifier(String):
9
- """Represents an identifier in the AST.
10
-
11
- Identifiers are used for variable names, property names, and similar constructs.
12
-
13
- Example:
14
- id = Identifier("myVariable")
15
- """
16
-
17
- def __str__(self) -> str:
18
- return f"Identifier ({self._value})"
19
-
20
- def value(self) -> Any:
21
- return super().value()
@@ -1,32 +0,0 @@
1
- """Represents a numeric literal in the AST."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class Number(ASTNode):
7
- """Represents a numeric literal in the AST.
8
-
9
- Parses string representations of numbers into integer or float values.
10
-
11
- Example:
12
- num = Number("42")
13
- print(num.value()) # 42
14
- """
15
-
16
- def __init__(self, value: str):
17
- """Creates a new Number node by parsing the string value.
18
-
19
- Args:
20
- value: The string representation of the number
21
- """
22
- super().__init__()
23
- if '.' in value:
24
- self._value = float(value)
25
- else:
26
- self._value = int(value)
27
-
28
- def value(self) -> float | int:
29
- return self._value
30
-
31
- def __str__(self) -> str:
32
- return f"{self.__class__.__name__} ({self._value})"
@@ -1,271 +0,0 @@
1
- """Operator classes for FlowQuery expressions."""
2
-
3
- from abc import ABC, abstractmethod
4
- from typing import Any
5
-
6
- from ..ast_node import ASTNode
7
-
8
-
9
- class Operator(ASTNode, ABC):
10
- """Base class for all operators in FlowQuery."""
11
-
12
- def __init__(self, precedence: int, left_associative: bool):
13
- super().__init__()
14
- self._precedence = precedence
15
- self._left_associative = left_associative
16
-
17
- def is_operator(self) -> bool:
18
- return True
19
-
20
- @property
21
- def precedence(self) -> int:
22
- return self._precedence
23
-
24
- @property
25
- def left_associative(self) -> bool:
26
- return self._left_associative
27
-
28
- @abstractmethod
29
- def value(self) -> Any:
30
- pass
31
-
32
- @property
33
- def lhs(self) -> ASTNode:
34
- return self.get_children()[0]
35
-
36
- @property
37
- def rhs(self) -> ASTNode:
38
- return self.get_children()[1]
39
-
40
-
41
- class Add(Operator):
42
- def __init__(self) -> None:
43
- super().__init__(1, True)
44
-
45
- def value(self) -> Any:
46
- return self.lhs.value() + self.rhs.value()
47
-
48
-
49
- class Subtract(Operator):
50
- def __init__(self) -> None:
51
- super().__init__(1, True)
52
-
53
- def value(self) -> Any:
54
- return self.lhs.value() - self.rhs.value()
55
-
56
-
57
- class Multiply(Operator):
58
- def __init__(self) -> None:
59
- super().__init__(2, True)
60
-
61
- def value(self) -> Any:
62
- return self.lhs.value() * self.rhs.value()
63
-
64
-
65
- class Divide(Operator):
66
- def __init__(self) -> None:
67
- super().__init__(2, True)
68
-
69
- def value(self) -> Any:
70
- return self.lhs.value() / self.rhs.value()
71
-
72
-
73
- class Modulo(Operator):
74
- def __init__(self) -> None:
75
- super().__init__(2, True)
76
-
77
- def value(self) -> Any:
78
- return self.lhs.value() % self.rhs.value()
79
-
80
-
81
- class Power(Operator):
82
- def __init__(self) -> None:
83
- super().__init__(3, False)
84
-
85
- def value(self) -> Any:
86
- return self.lhs.value() ** self.rhs.value()
87
-
88
-
89
- class Equals(Operator):
90
- def __init__(self) -> None:
91
- super().__init__(0, True)
92
-
93
- def value(self) -> int:
94
- return 1 if self.lhs.value() == self.rhs.value() else 0
95
-
96
-
97
- class NotEquals(Operator):
98
- def __init__(self) -> None:
99
- super().__init__(0, True)
100
-
101
- def value(self) -> int:
102
- return 1 if self.lhs.value() != self.rhs.value() else 0
103
-
104
-
105
- class GreaterThan(Operator):
106
- def __init__(self) -> None:
107
- super().__init__(0, True)
108
-
109
- def value(self) -> int:
110
- return 1 if self.lhs.value() > self.rhs.value() else 0
111
-
112
-
113
- class LessThan(Operator):
114
- def __init__(self) -> None:
115
- super().__init__(0, True)
116
-
117
- def value(self) -> int:
118
- return 1 if self.lhs.value() < self.rhs.value() else 0
119
-
120
-
121
- class GreaterThanOrEqual(Operator):
122
- def __init__(self) -> None:
123
- super().__init__(0, True)
124
-
125
- def value(self) -> int:
126
- return 1 if self.lhs.value() >= self.rhs.value() else 0
127
-
128
-
129
- class LessThanOrEqual(Operator):
130
- def __init__(self) -> None:
131
- super().__init__(0, True)
132
-
133
- def value(self) -> int:
134
- return 1 if self.lhs.value() <= self.rhs.value() else 0
135
-
136
-
137
- class And(Operator):
138
- def __init__(self) -> None:
139
- super().__init__(-1, True)
140
-
141
- def value(self) -> int:
142
- return 1 if (self.lhs.value() and self.rhs.value()) else 0
143
-
144
-
145
- class Or(Operator):
146
- def __init__(self) -> None:
147
- super().__init__(-1, True)
148
-
149
- def value(self) -> int:
150
- return 1 if (self.lhs.value() or self.rhs.value()) else 0
151
-
152
-
153
- class Not(Operator):
154
- def __init__(self) -> None:
155
- super().__init__(0, True)
156
-
157
- def is_operator(self) -> bool:
158
- return False
159
-
160
- def value(self) -> int:
161
- return 1 if not self.lhs.value() else 0
162
-
163
-
164
- class Is(Operator):
165
- def __init__(self) -> None:
166
- super().__init__(0, True)
167
-
168
- def value(self) -> int:
169
- return 1 if self.lhs.value() == self.rhs.value() else 0
170
-
171
-
172
- class IsNot(Operator):
173
- def __init__(self) -> None:
174
- super().__init__(0, True)
175
-
176
- def value(self) -> int:
177
- return 1 if self.lhs.value() != self.rhs.value() else 0
178
-
179
-
180
- class In(Operator):
181
- def __init__(self) -> None:
182
- super().__init__(0, True)
183
-
184
- def value(self) -> int:
185
- lst = self.rhs.value()
186
- if not isinstance(lst, list):
187
- raise ValueError("Right operand of IN must be a list")
188
- return 1 if self.lhs.value() in lst else 0
189
-
190
-
191
- class NotIn(Operator):
192
- def __init__(self) -> None:
193
- super().__init__(0, True)
194
-
195
- def value(self) -> int:
196
- lst = self.rhs.value()
197
- if not isinstance(lst, list):
198
- raise ValueError("Right operand of NOT IN must be a list")
199
- return 0 if self.lhs.value() in lst else 1
200
-
201
-
202
- class Contains(Operator):
203
- def __init__(self) -> None:
204
- super().__init__(0, True)
205
-
206
- def value(self) -> int:
207
- s = self.lhs.value()
208
- search = self.rhs.value()
209
- if not isinstance(s, str) or not isinstance(search, str):
210
- raise ValueError("CONTAINS requires string operands")
211
- return 1 if search in s else 0
212
-
213
-
214
- class NotContains(Operator):
215
- def __init__(self) -> None:
216
- super().__init__(0, True)
217
-
218
- def value(self) -> int:
219
- s = self.lhs.value()
220
- search = self.rhs.value()
221
- if not isinstance(s, str) or not isinstance(search, str):
222
- raise ValueError("NOT CONTAINS requires string operands")
223
- return 0 if search in s else 1
224
-
225
-
226
- class StartsWith(Operator):
227
- def __init__(self) -> None:
228
- super().__init__(0, True)
229
-
230
- def value(self) -> int:
231
- s = self.lhs.value()
232
- search = self.rhs.value()
233
- if not isinstance(s, str) or not isinstance(search, str):
234
- raise ValueError("STARTS WITH requires string operands")
235
- return 1 if s.startswith(search) else 0
236
-
237
-
238
- class NotStartsWith(Operator):
239
- def __init__(self) -> None:
240
- super().__init__(0, True)
241
-
242
- def value(self) -> int:
243
- s = self.lhs.value()
244
- search = self.rhs.value()
245
- if not isinstance(s, str) or not isinstance(search, str):
246
- raise ValueError("NOT STARTS WITH requires string operands")
247
- return 0 if s.startswith(search) else 1
248
-
249
-
250
- class EndsWith(Operator):
251
- def __init__(self) -> None:
252
- super().__init__(0, True)
253
-
254
- def value(self) -> int:
255
- s = self.lhs.value()
256
- search = self.rhs.value()
257
- if not isinstance(s, str) or not isinstance(search, str):
258
- raise ValueError("ENDS WITH requires string operands")
259
- return 1 if s.endswith(search) else 0
260
-
261
-
262
- class NotEndsWith(Operator):
263
- def __init__(self) -> None:
264
- super().__init__(0, True)
265
-
266
- def value(self) -> int:
267
- s = self.lhs.value()
268
- search = self.rhs.value()
269
- if not isinstance(s, str) or not isinstance(search, str):
270
- raise ValueError("NOT ENDS WITH requires string operands")
271
- return 0 if s.endswith(search) else 1
@@ -1,47 +0,0 @@
1
- """Represents a reference to a previously defined variable or expression."""
2
-
3
- from typing import Any, Optional
4
-
5
- from ..ast_node import ASTNode
6
- from .identifier import Identifier
7
-
8
-
9
- class Reference(Identifier):
10
- """Represents a reference to a previously defined variable or expression.
11
-
12
- References point to values defined earlier in the query (e.g., in WITH or LOAD statements).
13
-
14
- Example:
15
- ref = Reference("myVar", previous_node)
16
- print(ref.value()) # Gets value from referred node
17
- """
18
-
19
- def __init__(self, value: str, referred: Optional[ASTNode] = None):
20
- """Creates a new Reference to a variable.
21
-
22
- Args:
23
- value: The identifier name
24
- referred: The node this reference points to (optional)
25
- """
26
- super().__init__(value)
27
- self._referred = referred
28
-
29
- @property
30
- def referred(self) -> Optional[ASTNode]:
31
- return self._referred
32
-
33
- @referred.setter
34
- def referred(self, node: ASTNode) -> None:
35
- self._referred = node
36
-
37
- def __str__(self) -> str:
38
- return f"Reference ({self._value})"
39
-
40
- def value(self) -> Any:
41
- if self._referred is not None:
42
- return self._referred.value()
43
- return None
44
-
45
- @property
46
- def identifier(self) -> str:
47
- return self._value
@@ -1,27 +0,0 @@
1
- """Represents a string literal in the AST."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class String(ASTNode):
7
- """Represents a string literal in the AST.
8
-
9
- Example:
10
- s = String("hello")
11
- print(s.value()) # "hello"
12
- """
13
-
14
- def __init__(self, value: str):
15
- """Creates a new String node with the given value.
16
-
17
- Args:
18
- value: The string value
19
- """
20
- super().__init__()
21
- self._value = value
22
-
23
- def value(self) -> str:
24
- return self._value
25
-
26
- def __str__(self) -> str:
27
- return f"String ({self._value})"
@@ -1,127 +0,0 @@
1
- """Functions module for FlowQuery parsing."""
2
-
3
- from .aggregate_function import AggregateFunction
4
- from .async_function import AsyncFunction
5
- from .avg import Avg
6
- from .coalesce import Coalesce
7
- from .collect import Collect
8
- from .count import Count
9
- from .date_ import DateFunction
10
- from .datetime_ import Datetime
11
- from .duration import Duration
12
- from .element_id import ElementId
13
- from .function import Function
14
- from .function_factory import FunctionFactory
15
- from .function_metadata import (
16
- FunctionCategory,
17
- FunctionDef,
18
- FunctionDefOptions,
19
- FunctionMetadata,
20
- OutputSchema,
21
- ParameterSchema,
22
- get_function_metadata,
23
- get_registered_function_factory,
24
- get_registered_function_metadata,
25
- )
26
- from .functions import Functions
27
- from .head import Head
28
- from .id_ import Id
29
- from .join import Join
30
- from .keys import Keys
31
- from .last import Last
32
- from .localdatetime import LocalDatetime
33
- from .localtime import LocalTime
34
- from .max_ import Max
35
- from .min_ import Min
36
- from .nodes import Nodes
37
- from .predicate_function import PredicateFunction
38
- from .predicate_sum import PredicateSum
39
- from .properties import Properties
40
- from .rand import Rand
41
- from .range_ import Range
42
- from .reducer_element import ReducerElement
43
- from .relationships import Relationships
44
- from .replace import Replace
45
- from .round_ import Round
46
- from .schema import Schema
47
- from .size import Size
48
- from .split import Split
49
- from .string_distance import StringDistance
50
- from .stringify import Stringify
51
- from .substring import Substring
52
- from .sum import Sum
53
- from .tail import Tail
54
- from .time_ import Time
55
- from .timestamp import Timestamp
56
- from .to_float import ToFloat
57
- from .to_integer import ToInteger
58
- from .to_json import ToJson
59
- from .to_lower import ToLower
60
- from .to_string import ToString
61
- from .trim import Trim
62
- from .type_ import Type
63
- from .value_holder import ValueHolder
64
-
65
- __all__ = [
66
- # Base classes
67
- "Function",
68
- "AggregateFunction",
69
- "AsyncFunction",
70
- "PredicateFunction",
71
- "ReducerElement",
72
- "ValueHolder",
73
- "FunctionCategory",
74
- "ParameterSchema",
75
- "OutputSchema",
76
- "FunctionMetadata",
77
- "FunctionDef",
78
- "FunctionDefOptions",
79
- "get_registered_function_metadata",
80
- "get_registered_function_factory",
81
- "get_function_metadata",
82
- "FunctionFactory",
83
- # Built-in functions
84
- "Sum",
85
- "Avg",
86
- "DateFunction",
87
- "Datetime",
88
- "Coalesce",
89
- "Collect",
90
- "Count",
91
- "Duration",
92
- "ElementId",
93
- "Head",
94
- "Id",
95
- "Join",
96
- "Last",
97
- "Keys",
98
- "Max",
99
- "Min",
100
- "Nodes",
101
- "Properties",
102
- "Relationships",
103
- "Rand",
104
- "Range",
105
- "Replace",
106
- "Round",
107
- "Size",
108
- "Split",
109
- "StringDistance",
110
- "Stringify",
111
- "Substring",
112
- "Tail",
113
- "Time",
114
- "Timestamp",
115
- "ToFloat",
116
- "ToInteger",
117
- "ToJson",
118
- "ToLower",
119
- "ToString",
120
- "Trim",
121
- "Type",
122
- "LocalDatetime",
123
- "LocalTime",
124
- "Functions",
125
- "Schema",
126
- "PredicateSum",
127
- ]
@@ -1,60 +0,0 @@
1
- """Base class for aggregate functions that reduce multiple values to a single value."""
2
-
3
- from typing import Any, Optional
4
-
5
- from .function import Function
6
- from .reducer_element import ReducerElement
7
-
8
-
9
- class AggregateFunction(Function):
10
- """Base class for aggregate functions that reduce multiple values to a single value.
11
-
12
- Aggregate functions like SUM, AVG, and COLLECT process multiple input values
13
- and produce a single output. They cannot be nested within other aggregate functions.
14
-
15
- Example:
16
- sum_func = Sum()
17
- # Used in: RETURN SUM(values)
18
- """
19
-
20
- def __init__(self, name: Optional[str] = None):
21
- """Creates a new AggregateFunction with the given name.
22
-
23
- Args:
24
- name: The function name
25
- """
26
- super().__init__(name)
27
- self._overridden: Any = None
28
-
29
- def reduce(self, value: Any) -> None:
30
- """Processes a value during the aggregation phase.
31
-
32
- Args:
33
- value: The element to aggregate
34
-
35
- Raises:
36
- NotImplementedError: If not implemented by subclass
37
- """
38
- raise NotImplementedError("Method not implemented.")
39
-
40
- def element(self) -> ReducerElement:
41
- """Creates a reducer element for this aggregate function.
42
-
43
- Returns:
44
- A ReducerElement instance
45
-
46
- Raises:
47
- NotImplementedError: If not implemented by subclass
48
- """
49
- raise NotImplementedError("Method not implemented.")
50
-
51
- @property
52
- def overridden(self) -> Any:
53
- return self._overridden
54
-
55
- @overridden.setter
56
- def overridden(self, value: Any) -> None:
57
- self._overridden = value
58
-
59
- def value(self) -> Any:
60
- return self._overridden
@@ -1,65 +0,0 @@
1
- """Represents an async data provider function call for use in LOAD operations."""
2
-
3
- from typing import Any, AsyncGenerator, List
4
-
5
- from ..ast_node import ASTNode
6
- from .function import Function
7
-
8
-
9
- class AsyncFunction(Function):
10
- """Represents an async data provider function call for use in LOAD operations.
11
-
12
- This class holds the function name and arguments, and provides async iteration
13
- over the results from a registered async data provider.
14
-
15
- Example:
16
- # Used in: LOAD JSON FROM myDataSource('arg1', 'arg2') AS data
17
- async_func = AsyncFunction("myDataSource")
18
- async_func.parameters = [arg1_node, arg2_node]
19
- async for item in async_func.execute():
20
- print(item)
21
- """
22
-
23
- @property
24
- def parameters(self) -> List[ASTNode]:
25
- return self.children
26
-
27
- @parameters.setter
28
- def parameters(self, nodes: List[ASTNode]) -> None:
29
- """Sets the function parameters.
30
-
31
- Args:
32
- nodes: Array of AST nodes representing the function arguments
33
- """
34
- self.children = nodes
35
-
36
- def get_arguments(self) -> List[Any]:
37
- """Evaluates all parameters and returns their values.
38
- Used by the framework to pass arguments to generate().
39
-
40
- Returns:
41
- Array of parameter values
42
- """
43
- return [child.value() for child in self.children]
44
-
45
- async def generate(self, *args: Any) -> AsyncGenerator[Any, None]:
46
- """Generates the async data provider function results.
47
-
48
- Subclasses override this method with their own typed parameters.
49
- The framework automatically evaluates the AST children and spreads
50
- them as arguments when calling this method.
51
-
52
- Args:
53
- args: Arguments passed from the query (e.g., myFunc(arg1, arg2))
54
-
55
- Yields:
56
- Data items from the async provider
57
-
58
- Raises:
59
- NotImplementedError: If the function is not registered as an async provider
60
- """
61
- raise NotImplementedError("generate method must be overridden in subclasses.")
62
- # Note: yield is here only to make this a generator function
63
- # It will never be reached due to the raise above
64
- if False: # pragma: no cover
65
- yield # Make this a generator