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,84 +0,0 @@
1
- """Base class for parsers providing common token manipulation functionality."""
2
-
3
- from typing import List, Optional
4
-
5
- from ..tokenization.token import Token
6
- from ..tokenization.tokenizer import Tokenizer
7
-
8
-
9
- class BaseParser:
10
- """Base class for parsers providing common token manipulation functionality.
11
-
12
- This class handles tokenization and provides utility methods for navigating
13
- through tokens, peeking ahead, and checking token sequences.
14
- """
15
-
16
- def __init__(self, tokens: Optional[List[Token]] = None):
17
- self._tokens: List[Token] = tokens or []
18
- self._token_index: int = 0
19
-
20
- def tokenize(self, statement: str) -> None:
21
- """Tokenizes a statement and initializes the token array.
22
-
23
- Args:
24
- statement: The input statement to tokenize
25
- """
26
- self._tokens = Tokenizer(statement).tokenize()
27
- self._token_index = 0
28
-
29
- def set_next_token(self) -> None:
30
- """Advances to the next token in the sequence."""
31
- self._token_index += 1
32
-
33
- def peek(self) -> Optional[Token]:
34
- """Peeks at the next token without advancing the current position.
35
-
36
- Returns:
37
- The next token, or None if at the end of the token stream
38
- """
39
- if self._token_index + 1 >= len(self._tokens):
40
- return None
41
- return self._tokens[self._token_index + 1]
42
-
43
- def ahead(self, tokens: List[Token], skip_whitespace_and_comments: bool = True) -> bool:
44
- """Checks if a sequence of tokens appears ahead in the token stream.
45
-
46
- Args:
47
- tokens: The sequence of tokens to look for
48
- skip_whitespace_and_comments: Whether to skip whitespace and comments when matching
49
-
50
- Returns:
51
- True if the token sequence is found ahead, False otherwise
52
- """
53
- j = 0
54
- for i in range(self._token_index, len(self._tokens)):
55
- if skip_whitespace_and_comments and self._tokens[i].is_whitespace_or_comment():
56
- continue
57
- if not self._tokens[i].equals(tokens[j]):
58
- return False
59
- j += 1
60
- if j == len(tokens):
61
- break
62
- return j == len(tokens)
63
-
64
- @property
65
- def token(self) -> Token:
66
- """Gets the current token.
67
-
68
- Returns:
69
- The current token, or EOF if at the end
70
- """
71
- if self._token_index >= len(self._tokens):
72
- return Token.EOF()
73
- return self._tokens[self._token_index]
74
-
75
- @property
76
- def previous_token(self) -> Token:
77
- """Gets the previous token.
78
-
79
- Returns:
80
- The previous token, or EOF if at the beginning
81
- """
82
- if self._token_index - 1 < 0:
83
- return Token.EOF()
84
- return self._tokens[self._token_index - 1]
@@ -1,19 +0,0 @@
1
- """Components module for FlowQuery parsing."""
2
-
3
- from .csv import CSV
4
- from .from_ import From
5
- from .headers import Headers
6
- from .json import JSON
7
- from .null import Null
8
- from .post import Post
9
- from .text import Text
10
-
11
- __all__ = [
12
- "CSV",
13
- "JSON",
14
- "Text",
15
- "From",
16
- "Headers",
17
- "Post",
18
- "Null",
19
- ]
@@ -1,8 +0,0 @@
1
- """CSV component node."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class CSV(ASTNode):
7
- """Represents a CSV data type marker in LOAD operations."""
8
- pass
@@ -1,12 +0,0 @@
1
- """From component node."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class From(ASTNode):
9
- """Represents a FROM clause in LOAD operations."""
10
-
11
- def value(self) -> Any:
12
- return self.children[0].value()
@@ -1,12 +0,0 @@
1
- """Headers component node."""
2
-
3
- from typing import Any, Dict
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class Headers(ASTNode):
9
- """Represents a HEADERS clause in LOAD operations."""
10
-
11
- def value(self) -> Dict[str, Any]:
12
- return self.first_child().value() or {}
@@ -1,8 +0,0 @@
1
- """JSON component node."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class JSON(ASTNode):
7
- """Represents a JSON data type marker in LOAD operations."""
8
- pass
@@ -1,10 +0,0 @@
1
- """Null component node."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class Null(ASTNode):
7
- """Represents a NULL value in the AST."""
8
-
9
- def value(self) -> None:
10
- return None
@@ -1,8 +0,0 @@
1
- """Post component node."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class Post(ASTNode):
7
- """Represents a POST clause in LOAD operations."""
8
- pass
@@ -1,8 +0,0 @@
1
- """Text component node."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class Text(ASTNode):
7
- """Represents a Text data type marker in LOAD operations."""
8
- pass
@@ -1,50 +0,0 @@
1
- """Maintains a stack of AST nodes to track parsing context."""
2
-
3
- from typing import List, Optional, Type
4
-
5
- from .ast_node import ASTNode
6
-
7
-
8
- class Context:
9
- """Maintains a stack of AST nodes to track parsing context.
10
-
11
- Used during parsing to maintain the current context and check for specific node types
12
- in the parsing hierarchy, which helps with context-sensitive parsing decisions.
13
-
14
- Example:
15
- context = Context()
16
- context.push(node)
17
- has_return = context.contains_type(Return)
18
- """
19
-
20
- def __init__(self) -> None:
21
- self._nodes: List[ASTNode] = []
22
-
23
- def push(self, node: ASTNode) -> None:
24
- """Pushes a node onto the context stack.
25
-
26
- Args:
27
- node: The AST node to push
28
- """
29
- self._nodes.append(node)
30
-
31
- def pop(self) -> Optional[ASTNode]:
32
- """Pops the top node from the context stack.
33
-
34
- Returns:
35
- The popped node, or None if the stack is empty
36
- """
37
- if len(self._nodes) == 0:
38
- return None
39
- return self._nodes.pop()
40
-
41
- def contains_type(self, type_: Type[ASTNode]) -> bool:
42
- """Checks if the nodes stack contains a node of the specified type.
43
-
44
- Args:
45
- type_: The class of the node type to search for
46
-
47
- Returns:
48
- True if a node of the specified type is found in the stack, False otherwise
49
- """
50
- return any(isinstance(v, type_) for v in self._nodes)
@@ -1,15 +0,0 @@
1
- """Data structures module for FlowQuery parsing."""
2
-
3
- from .associative_array import AssociativeArray
4
- from .json_array import JSONArray
5
- from .key_value_pair import KeyValuePair
6
- from .lookup import Lookup
7
- from .range_lookup import RangeLookup
8
-
9
- __all__ = [
10
- "AssociativeArray",
11
- "JSONArray",
12
- "KeyValuePair",
13
- "Lookup",
14
- "RangeLookup",
15
- ]
@@ -1,41 +0,0 @@
1
- """Represents an associative array (object/dictionary) in the AST."""
2
-
3
- from typing import Any, Dict, Generator
4
-
5
- from ..ast_node import ASTNode
6
- from .key_value_pair import KeyValuePair
7
-
8
-
9
- class AssociativeArray(ASTNode):
10
- """Represents an associative array (object/dictionary) in the AST.
11
-
12
- Associative arrays map string keys to values, similar to JSON objects.
13
-
14
- Example:
15
- # For { name: "Alice", age: 30 }
16
- obj = AssociativeArray()
17
- obj.add_key_value(KeyValuePair("name", name_expr))
18
- obj.add_key_value(KeyValuePair("age", age_expr))
19
- """
20
-
21
- def add_key_value(self, key_value_pair: KeyValuePair) -> None:
22
- """Adds a key-value pair to the associative array.
23
-
24
- Args:
25
- key_value_pair: The key-value pair to add
26
- """
27
- self.add_child(key_value_pair)
28
-
29
- def __str__(self) -> str:
30
- return 'AssociativeArray'
31
-
32
- def _value(self) -> Generator[Dict[str, Any], None, None]:
33
- for child in self.children:
34
- if isinstance(child, KeyValuePair):
35
- yield {child.key: child._value}
36
-
37
- def value(self) -> Dict[str, Any]:
38
- result = {}
39
- for item in self._value():
40
- result.update(item)
41
- return result
@@ -1,30 +0,0 @@
1
- """Represents a JSON array in the AST."""
2
-
3
- from typing import Any, List
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class JSONArray(ASTNode):
9
- """Represents a JSON array in the AST.
10
-
11
- JSON arrays are ordered collections of values.
12
-
13
- Example:
14
- # For [1, 2, 3]
15
- arr = JSONArray()
16
- arr.add_value(Number("1"))
17
- arr.add_value(Number("2"))
18
- arr.add_value(Number("3"))
19
- """
20
-
21
- def add_value(self, value: ASTNode) -> None:
22
- """Adds a value to the array.
23
-
24
- Args:
25
- value: The AST node representing the value to add
26
- """
27
- self.add_child(value)
28
-
29
- def value(self) -> List[Any]:
30
- return [child.value() for child in self.children]
@@ -1,38 +0,0 @@
1
- """Represents a key-value pair in an associative array."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
- from ..expressions.string import String
7
-
8
-
9
- class KeyValuePair(ASTNode):
10
- """Represents a key-value pair in an associative array.
11
-
12
- Used to build object literals in FlowQuery.
13
-
14
- Example:
15
- kvp = KeyValuePair("name", String("Alice"))
16
- """
17
-
18
- def __init__(self, key: str, value: ASTNode):
19
- """Creates a new key-value pair.
20
-
21
- Args:
22
- key: The key string
23
- value: The AST node representing the value
24
- """
25
- super().__init__()
26
- self.add_child(String(key))
27
- self.add_child(value)
28
-
29
- @property
30
- def key(self) -> Any:
31
- return self.children[0].value()
32
-
33
- @property
34
- def _value(self) -> Any:
35
- return self.children[1].value()
36
-
37
- def __str__(self) -> str:
38
- return "KeyValuePair"
@@ -1,51 +0,0 @@
1
- """Represents a lookup operation (array/object indexing) in the AST."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class Lookup(ASTNode):
9
- """Represents a lookup operation (array/object indexing) in the AST.
10
-
11
- Lookups access elements from arrays or properties from objects using an index or key.
12
-
13
- Example:
14
- # For array[0] or obj.property or obj["key"]
15
- lookup = Lookup()
16
- lookup.variable = array_or_obj_node
17
- lookup.index = index_node
18
- """
19
-
20
- @property
21
- def index(self) -> ASTNode:
22
- return self.children[0]
23
-
24
- @index.setter
25
- def index(self, index: ASTNode) -> None:
26
- self.add_child(index)
27
-
28
- @property
29
- def variable(self) -> ASTNode:
30
- return self.children[1]
31
-
32
- @variable.setter
33
- def variable(self, variable: ASTNode) -> None:
34
- self.add_child(variable)
35
-
36
- def is_operand(self) -> bool:
37
- return True
38
-
39
- def value(self) -> Any:
40
- obj = self.variable.value()
41
- if obj is None:
42
- return None
43
- key = self.index.value()
44
- # Try dict-like access first, then fall back to attribute access for objects
45
- try:
46
- return obj[key]
47
- except (TypeError, KeyError):
48
- # For objects with attributes (like dataclasses), use getattr
49
- if hasattr(obj, key):
50
- return getattr(obj, key)
51
- raise
@@ -1,42 +0,0 @@
1
- """Represents a range lookup operation in the AST."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class RangeLookup(ASTNode):
9
- """Represents a range lookup (array slicing) operation in the AST."""
10
-
11
- @property
12
- def from_(self) -> ASTNode:
13
- return self.children[0]
14
-
15
- @from_.setter
16
- def from_(self, from_: ASTNode) -> None:
17
- self.add_child(from_)
18
-
19
- @property
20
- def to(self) -> ASTNode:
21
- return self.children[1]
22
-
23
- @to.setter
24
- def to(self, to: ASTNode) -> None:
25
- self.add_child(to)
26
-
27
- @property
28
- def variable(self) -> ASTNode:
29
- return self.children[2]
30
-
31
- @variable.setter
32
- def variable(self, variable: ASTNode) -> None:
33
- self.add_child(variable)
34
-
35
- def is_operand(self) -> bool:
36
- return True
37
-
38
- def value(self) -> Any:
39
- array = self.variable.value()
40
- from_val = self.from_.value() or 0
41
- to_val = self.to.value() or len(array)
42
- return array[from_val:to_val]
@@ -1,61 +0,0 @@
1
- """Expressions module for FlowQuery parsing."""
2
-
3
- from .boolean import Boolean
4
- from .expression import Expression
5
- from .expression_map import ExpressionMap
6
- from .f_string import FString
7
- from .identifier import Identifier
8
- from .number import Number
9
- from .operator import (
10
- Add,
11
- And,
12
- Divide,
13
- Equals,
14
- GreaterThan,
15
- GreaterThanOrEqual,
16
- In,
17
- Is,
18
- LessThan,
19
- LessThanOrEqual,
20
- Modulo,
21
- Multiply,
22
- Not,
23
- NotEquals,
24
- NotIn,
25
- Operator,
26
- Or,
27
- Power,
28
- Subtract,
29
- )
30
- from .reference import Reference
31
- from .string import String
32
-
33
- __all__ = [
34
- "Expression",
35
- "Boolean",
36
- "Number",
37
- "String",
38
- "Identifier",
39
- "Reference",
40
- "FString",
41
- "ExpressionMap",
42
- "Operator",
43
- "Add",
44
- "Subtract",
45
- "Multiply",
46
- "Divide",
47
- "Modulo",
48
- "Power",
49
- "Equals",
50
- "NotEquals",
51
- "GreaterThan",
52
- "LessThan",
53
- "GreaterThanOrEqual",
54
- "LessThanOrEqual",
55
- "And",
56
- "Or",
57
- "Not",
58
- "Is",
59
- "In",
60
- "NotIn",
61
- ]
@@ -1,20 +0,0 @@
1
- """Represents a boolean literal in the AST."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class Boolean(ASTNode):
7
- """Represents a boolean literal in the AST."""
8
-
9
- def __init__(self, value: str):
10
- super().__init__()
11
- _value = value.upper()
12
- if _value == "TRUE":
13
- self._value = True
14
- elif _value == "FALSE":
15
- self._value = False
16
- else:
17
- raise ValueError(f"Invalid boolean value: {value}")
18
-
19
- def value(self) -> bool:
20
- return self._value
@@ -1,141 +0,0 @@
1
- """Represents an expression in the FlowQuery AST."""
2
-
3
- from __future__ import annotations
4
-
5
- from typing import TYPE_CHECKING, Any, Generator, List, Optional
6
-
7
- from ..ast_node import ASTNode
8
- from ..functions.aggregate_function import AggregateFunction
9
- from .reference import Reference
10
-
11
- if TYPE_CHECKING:
12
- from ...graph.pattern_expression import PatternExpression
13
-
14
-
15
- class Expression(ASTNode):
16
- """Represents an expression in the FlowQuery AST.
17
-
18
- Expressions are built using the Shunting Yard algorithm to handle operator
19
- precedence and associativity. They can contain operands (numbers, strings, identifiers)
20
- and operators (arithmetic, logical, comparison).
21
-
22
- Example:
23
- expr = Expression()
24
- expr.add_node(number_node)
25
- expr.add_node(plus_operator)
26
- expr.add_node(another_number_node)
27
- expr.finish()
28
- """
29
-
30
- def __init__(self) -> None:
31
- super().__init__()
32
- self._operators: List[ASTNode] = []
33
- self._output: List[ASTNode] = []
34
- self._alias: Optional[str] = None
35
- self._overridden: Any = None
36
- self._reducers: Optional[List['AggregateFunction']] = None
37
- self._patterns: Optional[List['PatternExpression']] = None
38
-
39
- def add_node(self, node: ASTNode) -> None:
40
- """Adds a node (operand or operator) to the expression.
41
-
42
- Uses the Shunting Yard algorithm to maintain correct operator precedence.
43
-
44
- Args:
45
- node: The AST node to add (operand or operator)
46
- """
47
- # Implements the Shunting Yard algorithm
48
- if node.is_operand():
49
- self._output.append(node)
50
- elif node.is_operator():
51
- operator1 = node
52
- while len(self._operators) > 0:
53
- operator2 = self._operators[-1]
54
- if (operator2.precedence > operator1.precedence or
55
- (operator2.precedence == operator1.precedence and operator1.left_associative)):
56
- self._output.append(operator2)
57
- self._operators.pop()
58
- else:
59
- break
60
- self._operators.append(operator1)
61
-
62
- def finish(self) -> None:
63
- """Finalizes the expression by converting it to a tree structure.
64
-
65
- Should be called after all nodes have been added.
66
- """
67
- while self._operators:
68
- self._output.append(self._operators.pop())
69
- self.add_child(self._to_tree())
70
-
71
- def _to_tree(self) -> ASTNode:
72
- if not self._output:
73
- return ASTNode()
74
- node = self._output.pop()
75
- if node.is_operator():
76
- rhs = self._to_tree()
77
- lhs = self._to_tree()
78
- node.add_child(lhs)
79
- node.add_child(rhs)
80
- return node
81
-
82
- def nodes_added(self) -> bool:
83
- return len(self._operators) > 0 or len(self._output) > 0
84
-
85
- def value(self) -> Any:
86
- if self._overridden is not None:
87
- return self._overridden
88
- if self.child_count() != 1:
89
- raise ValueError("Expected one child")
90
- return self.children[0].value()
91
-
92
- def set_alias(self, alias: str) -> None:
93
- self._alias = alias
94
-
95
- @property
96
- def alias(self) -> Optional[str]:
97
- first = self.first_child()
98
- if isinstance(first, Reference) and self._alias is None:
99
- return first.identifier
100
- return self._alias
101
-
102
- @alias.setter
103
- def alias(self, value: str) -> None:
104
- self._alias = value
105
-
106
- def __str__(self) -> str:
107
- if self._alias is not None:
108
- return f"Expression ({self._alias})"
109
- return "Expression"
110
-
111
- def reducers(self) -> List['AggregateFunction']:
112
- from ..functions.aggregate_function import AggregateFunction
113
- if self._reducers is None:
114
- self._reducers = list(self._extract(self, AggregateFunction))
115
- return self._reducers
116
-
117
- def patterns(self) -> List['PatternExpression']:
118
- from ...graph.pattern_expression import PatternExpression
119
- if self._patterns is None:
120
- self._patterns = list(self._extract(self, PatternExpression))
121
- return self._patterns
122
-
123
- def _extract(self, node: ASTNode, of_type: type) -> Generator[Any, None, None]:
124
- if isinstance(node, of_type):
125
- yield node
126
- for child in node.get_children():
127
- yield from self._extract(child, of_type)
128
-
129
- def mappable(self) -> bool:
130
- return len(self.reducers()) == 0
131
-
132
- def has_reducers(self) -> bool:
133
- return len(self.reducers()) > 0
134
-
135
- @property
136
- def overridden(self) -> Any:
137
- return self._overridden
138
-
139
- @overridden.setter
140
- def overridden(self, value: Any) -> None:
141
- self._overridden = value