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,46 +0,0 @@
1
- """ToInteger function."""
2
-
3
- from typing import Any
4
-
5
- from .function import Function
6
- from .function_metadata import FunctionDef
7
-
8
-
9
- @FunctionDef({
10
- "description": "Converts a value to an integer",
11
- "category": "scalar",
12
- "parameters": [
13
- {"name": "value", "description": "The value to convert to an integer", "type": "any"}
14
- ],
15
- "output": {"description": "The integer representation of the value", "type": "number", "example": 42},
16
- "examples": [
17
- 'RETURN toInteger("42")',
18
- "RETURN toInteger(3.14)",
19
- "RETURN toInteger(true)"
20
- ]
21
- })
22
- class ToInteger(Function):
23
- """ToInteger function.
24
-
25
- Converts a value to an integer.
26
- """
27
-
28
- def __init__(self) -> None:
29
- super().__init__("tointeger")
30
- self._expected_parameter_count = 1
31
-
32
- def value(self) -> Any:
33
- val = self.get_children()[0].value()
34
- if val is None:
35
- return None
36
- if isinstance(val, bool):
37
- return 1 if val else 0
38
- if isinstance(val, (int, float)):
39
- return int(val)
40
- if isinstance(val, str):
41
- trimmed = val.strip()
42
- try:
43
- return int(float(trimmed))
44
- except (ValueError, OverflowError):
45
- raise ValueError(f'Cannot convert string "{val}" to integer')
46
- raise ValueError("toInteger() expects a number, string, or boolean")
@@ -1,35 +0,0 @@
1
- """ToJson function."""
2
-
3
- import json
4
- from typing import Any
5
-
6
- from .function import Function
7
- from .function_metadata import FunctionDef
8
-
9
-
10
- @FunctionDef({
11
- "description": "Parses a JSON string into an object",
12
- "category": "scalar",
13
- "parameters": [
14
- {"name": "text", "description": "JSON string to parse", "type": "string"}
15
- ],
16
- "output": {"description": "Parsed object or array", "type": "object", "example": {"a": 1}},
17
- "examples": ["WITH '{\"a\": 1}' AS s RETURN tojson(s)"]
18
- })
19
- class ToJson(Function):
20
- """ToJson function.
21
-
22
- Parses a JSON string into an object.
23
- """
24
-
25
- def __init__(self) -> None:
26
- super().__init__("tojson")
27
- self._expected_parameter_count = 1
28
-
29
- def value(self) -> Any:
30
- text = self.get_children()[0].value()
31
- if text is None:
32
- return None
33
- if not isinstance(text, str):
34
- raise ValueError("Invalid arguments for tojson function")
35
- return json.loads(text)
@@ -1,37 +0,0 @@
1
- """ToLower function."""
2
-
3
- from typing import Any
4
-
5
- from .function import Function
6
- from .function_metadata import FunctionDef
7
-
8
-
9
- @FunctionDef({
10
- "description": "Converts a string to lowercase",
11
- "category": "scalar",
12
- "parameters": [
13
- {"name": "text", "description": "String to convert to lowercase", "type": "string"}
14
- ],
15
- "output": {"description": "Lowercase string", "type": "string", "example": "hello world"},
16
- "examples": [
17
- "WITH 'Hello World' AS s RETURN toLower(s)",
18
- "WITH 'FOO' AS s RETURN toLower(s)"
19
- ]
20
- })
21
- class ToLower(Function):
22
- """ToLower function.
23
-
24
- Converts a string to lowercase.
25
- """
26
-
27
- def __init__(self) -> None:
28
- super().__init__("tolower")
29
- self._expected_parameter_count = 1
30
-
31
- def value(self) -> Any:
32
- val = self.get_children()[0].value()
33
- if val is None:
34
- return None
35
- if not isinstance(val, str):
36
- raise ValueError("Invalid argument for toLower function: expected a string")
37
- return val.lower()
@@ -1,41 +0,0 @@
1
- """ToString function."""
2
-
3
- import json
4
- from typing import Any
5
-
6
- from .function import Function
7
- from .function_metadata import FunctionDef
8
-
9
-
10
- @FunctionDef({
11
- "description": "Converts a value to its string representation",
12
- "category": "scalar",
13
- "parameters": [
14
- {"name": "value", "description": "Value to convert to a string", "type": "any"}
15
- ],
16
- "output": {"description": "String representation of the value", "type": "string", "example": "42"},
17
- "examples": [
18
- "WITH 42 AS n RETURN toString(n)",
19
- "WITH true AS b RETURN toString(b)",
20
- "WITH [1, 2, 3] AS arr RETURN toString(arr)"
21
- ]
22
- })
23
- class ToString(Function):
24
- """ToString function.
25
-
26
- Converts a value to its string representation.
27
- """
28
-
29
- def __init__(self) -> None:
30
- super().__init__("tostring")
31
- self._expected_parameter_count = 1
32
-
33
- def value(self) -> Any:
34
- val = self.get_children()[0].value()
35
- if val is None:
36
- return None
37
- if isinstance(val, bool):
38
- return str(val).lower()
39
- if isinstance(val, (dict, list)):
40
- return json.dumps(val)
41
- return str(val)
@@ -1,37 +0,0 @@
1
- """Trim function."""
2
-
3
- from typing import Any
4
-
5
- from .function import Function
6
- from .function_metadata import FunctionDef
7
-
8
-
9
- @FunctionDef({
10
- "description": "Removes leading and trailing whitespace from a string",
11
- "category": "scalar",
12
- "parameters": [
13
- {"name": "text", "description": "String to trim", "type": "string"}
14
- ],
15
- "output": {"description": "Trimmed string", "type": "string", "example": "hello"},
16
- "examples": [
17
- "WITH ' hello ' AS s RETURN trim(s)",
18
- "WITH '\\tfoo\\n' AS s RETURN trim(s)"
19
- ]
20
- })
21
- class Trim(Function):
22
- """Trim function.
23
-
24
- Removes leading and trailing whitespace from a string.
25
- """
26
-
27
- def __init__(self) -> None:
28
- super().__init__("trim")
29
- self._expected_parameter_count = 1
30
-
31
- def value(self) -> Any:
32
- val = self.get_children()[0].value()
33
- if val is None:
34
- return None
35
- if not isinstance(val, str):
36
- raise ValueError("Invalid argument for trim function: expected a string")
37
- return val.strip()
@@ -1,47 +0,0 @@
1
- """Type function."""
2
-
3
- from typing import Any
4
-
5
- from .function import Function
6
- from .function_metadata import FunctionDef
7
-
8
-
9
- @FunctionDef({
10
- "description": "Returns the type of a value as a string",
11
- "category": "scalar",
12
- "parameters": [
13
- {"name": "value", "description": "Value to check the type of", "type": "any"}
14
- ],
15
- "output": {"description": "Type of the input value", "type": "string", "example": "string"},
16
- "examples": [
17
- "WITH 'hello' AS val RETURN type(val)",
18
- "WITH 42 AS val RETURN type(val)",
19
- "WITH [1, 2, 3] AS val RETURN type(val)"
20
- ]
21
- })
22
- class Type(Function):
23
- """Type function.
24
-
25
- Returns the type of a value as a string.
26
- """
27
-
28
- def __init__(self) -> None:
29
- super().__init__("type")
30
- self._expected_parameter_count = 1
31
-
32
- def value(self) -> Any:
33
- val = self.get_children()[0].value()
34
-
35
- if val is None:
36
- return "null"
37
- if isinstance(val, list):
38
- return "array"
39
- if isinstance(val, dict):
40
- return "object"
41
- if isinstance(val, bool):
42
- return "boolean"
43
- if isinstance(val, (int, float)):
44
- return "number"
45
- if isinstance(val, str):
46
- return "string"
47
- return type(val).__name__
@@ -1,24 +0,0 @@
1
- """Value holder node for FlowQuery AST."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class ValueHolder(ASTNode):
9
- """Holds a value that can be set and retrieved."""
10
-
11
- def __init__(self) -> None:
12
- super().__init__()
13
- self._holder: Any = None
14
-
15
- @property
16
- def holder(self) -> Any:
17
- return self._holder
18
-
19
- @holder.setter
20
- def holder(self, value: Any) -> None:
21
- self._holder = value
22
-
23
- def value(self) -> Any:
24
- return self._holder
@@ -1,15 +0,0 @@
1
- """Logic module for FlowQuery parsing."""
2
-
3
- from .case import Case
4
- from .else_ import Else
5
- from .end import End
6
- from .then import Then
7
- from .when import When
8
-
9
- __all__ = [
10
- "Case",
11
- "When",
12
- "Then",
13
- "Else",
14
- "End",
15
- ]
@@ -1,28 +0,0 @@
1
- """Represents a CASE expression in the AST."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
- from .when import When
7
-
8
-
9
- class Case(ASTNode):
10
- """Represents a CASE expression in the AST."""
11
-
12
- def value(self) -> Any:
13
- i = 0
14
- children = self.get_children()
15
- child = children[i]
16
- while isinstance(child, When):
17
- then = children[i + 1]
18
- if child.value():
19
- return then.value()
20
- i += 2
21
- if i < len(children):
22
- child = children[i]
23
- else:
24
- break
25
- # Return the else clause if exists
26
- if i < len(children):
27
- return children[i].value()
28
- return None
@@ -1,12 +0,0 @@
1
- """Represents an ELSE clause in a CASE expression."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class Else(ASTNode):
9
- """Represents an ELSE clause in a CASE expression."""
10
-
11
- def value(self) -> Any:
12
- return self.get_children()[0].value()
@@ -1,8 +0,0 @@
1
- """Represents an END marker in a CASE expression."""
2
-
3
- from ..ast_node import ASTNode
4
-
5
-
6
- class End(ASTNode):
7
- """Represents an END marker in a CASE expression."""
8
- pass
@@ -1,12 +0,0 @@
1
- """Represents a THEN clause in a CASE expression."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class Then(ASTNode):
9
- """Represents a THEN clause in a CASE expression."""
10
-
11
- def value(self) -> Any:
12
- return self.get_children()[0].value()
@@ -1,12 +0,0 @@
1
- """Represents a WHEN clause in a CASE expression."""
2
-
3
- from typing import Any
4
-
5
- from ..ast_node import ASTNode
6
-
7
-
8
- class When(ASTNode):
9
- """Represents a WHEN clause in a CASE expression."""
10
-
11
- def value(self) -> Any:
12
- return self.get_children()[0].value()
@@ -1,46 +0,0 @@
1
- """Operations module for FlowQuery parsing."""
2
-
3
- from .aggregated_return import AggregatedReturn
4
- from .aggregated_with import AggregatedWith
5
- from .call import Call
6
- from .create_node import CreateNode
7
- from .create_relationship import CreateRelationship
8
- from .delete_node import DeleteNode
9
- from .delete_relationship import DeleteRelationship
10
- from .group_by import GroupBy
11
- from .limit import Limit
12
- from .load import Load
13
- from .match import Match
14
- from .operation import Operation
15
- from .order_by import OrderBy, SortField
16
- from .projection import Projection
17
- from .return_op import Return
18
- from .union import Union
19
- from .union_all import UnionAll
20
- from .unwind import Unwind
21
- from .where import Where
22
- from .with_op import With
23
-
24
- __all__ = [
25
- "Operation",
26
- "Projection",
27
- "Return",
28
- "With",
29
- "Unwind",
30
- "Load",
31
- "Where",
32
- "Limit",
33
- "AggregatedReturn",
34
- "AggregatedWith",
35
- "Call",
36
- "GroupBy",
37
- "Match",
38
- "CreateNode",
39
- "CreateRelationship",
40
- "DeleteNode",
41
- "DeleteRelationship",
42
- "Union",
43
- "UnionAll",
44
- "OrderBy",
45
- "SortField",
46
- ]
@@ -1,25 +0,0 @@
1
- from typing import Any, Dict, List
2
-
3
- from ..ast_node import ASTNode
4
- from .group_by import GroupBy
5
- from .return_op import Return
6
-
7
-
8
- class AggregatedReturn(Return):
9
- """Represents an aggregated RETURN operation that groups and reduces values."""
10
-
11
- def __init__(self, expressions: List[ASTNode]) -> None:
12
- super().__init__(expressions)
13
- self._group_by = GroupBy(self.children)
14
-
15
- async def run(self) -> None:
16
- await self._group_by.run()
17
-
18
- @property
19
- def results(self) -> List[Dict[str, Any]]:
20
- if self._where is not None:
21
- self._group_by.where = self._where
22
- results = list(self._group_by.generate_results())
23
- if self._order_by is not None:
24
- results = self._order_by.sort(results)
25
- return results
@@ -1,22 +0,0 @@
1
- from typing import List
2
-
3
- from ..ast_node import ASTNode
4
- from .group_by import GroupBy
5
- from .return_op import Return
6
-
7
-
8
- class AggregatedWith(Return):
9
- """Represents an aggregated WITH operation that groups and reduces values."""
10
-
11
- def __init__(self, expressions: List[ASTNode]) -> None:
12
- super().__init__(expressions)
13
- self._group_by = GroupBy(self.children)
14
-
15
- async def run(self) -> None:
16
- await self._group_by.run()
17
-
18
- async def finish(self) -> None:
19
- for _ in self._group_by.generate_results():
20
- if self.next:
21
- await self.next.run()
22
- await super().finish()
@@ -1,73 +0,0 @@
1
- """Represents a CALL operation for invoking async functions."""
2
-
3
- from typing import Any, Dict, List, Optional
4
-
5
- from ..ast_node import ASTNode
6
- from ..expressions.expression_map import ExpressionMap
7
- from ..functions.async_function import AsyncFunction
8
- from .projection import Projection
9
-
10
- DEFAULT_VARIABLE_NAME = "value"
11
-
12
-
13
- class Call(Projection):
14
- """Represents a CALL operation for invoking async functions."""
15
-
16
- def __init__(self) -> None:
17
- super().__init__([])
18
- self._function: Optional[AsyncFunction] = None
19
- self._map = ExpressionMap()
20
- self._results: List[Dict[str, Any]] = []
21
-
22
- @property
23
- def function(self) -> Optional[AsyncFunction]:
24
- return self._function
25
-
26
- @function.setter
27
- def function(self, async_function: AsyncFunction) -> None:
28
- self._function = async_function
29
-
30
- @property
31
- def yielded(self) -> List[ASTNode]:
32
- return self.children
33
-
34
- @yielded.setter
35
- def yielded(self, expressions: List[ASTNode]) -> None:
36
- self.children = expressions
37
- self._map.set_map(expressions) # ExpressionMap accepts list of expressions
38
-
39
- @property
40
- def has_yield(self) -> bool:
41
- return len(self.children) > 0
42
-
43
- async def run(self) -> None:
44
- if self._function is None:
45
- raise ValueError("No function set for Call operation.")
46
-
47
- args = self._function.get_arguments()
48
- async for item in self._function.generate(*args):
49
- if not self.is_last:
50
- if isinstance(item, dict):
51
- for key, value in item.items():
52
- expression = self._map.get(key)
53
- if expression:
54
- expression.overridden = value
55
- else:
56
- expression = self._map.get(DEFAULT_VARIABLE_NAME)
57
- if expression:
58
- expression.overridden = item
59
- if self.next:
60
- await self.next.run()
61
- else:
62
- record: Dict[str, Any] = {}
63
- if isinstance(item, dict):
64
- for key, value in item.items():
65
- if self._map.has(key) or not self.has_yield:
66
- record[key] = value
67
- else:
68
- record[DEFAULT_VARIABLE_NAME] = item
69
- self._results.append(record)
70
-
71
- @property
72
- def results(self) -> List[Dict[str, Any]]:
73
- return self._results
@@ -1,35 +0,0 @@
1
- """Represents a CREATE operation for creating virtual nodes."""
2
-
3
- from typing import Any, Dict, List
4
-
5
- from ...graph.database import Database
6
- from ...graph.node import Node
7
- from ..ast_node import ASTNode
8
- from .operation import Operation
9
-
10
-
11
- class CreateNode(Operation):
12
- """Represents a CREATE operation for creating virtual nodes."""
13
-
14
- def __init__(self, node: Node, statement: ASTNode) -> None:
15
- super().__init__()
16
- self._node = node
17
- self._statement = statement
18
-
19
- @property
20
- def node(self) -> Node:
21
- return self._node
22
-
23
- @property
24
- def statement(self) -> ASTNode:
25
- return self._statement
26
-
27
- async def run(self) -> None:
28
- if self._node is None:
29
- raise ValueError("Node is null")
30
- db = Database.get_instance()
31
- db.add_node(self._node, self._statement)
32
-
33
- @property
34
- def results(self) -> List[Dict[str, Any]]:
35
- return []
@@ -1,35 +0,0 @@
1
- """Represents a CREATE operation for creating virtual relationships."""
2
-
3
- from typing import Any, Dict, List
4
-
5
- from ...graph.database import Database
6
- from ...graph.relationship import Relationship
7
- from ..ast_node import ASTNode
8
- from .operation import Operation
9
-
10
-
11
- class CreateRelationship(Operation):
12
- """Represents a CREATE operation for creating virtual relationships."""
13
-
14
- def __init__(self, relationship: Relationship, statement: ASTNode) -> None:
15
- super().__init__()
16
- self._relationship = relationship
17
- self._statement = statement
18
-
19
- @property
20
- def relationship(self) -> Relationship:
21
- return self._relationship
22
-
23
- @property
24
- def statement(self) -> ASTNode:
25
- return self._statement
26
-
27
- async def run(self) -> None:
28
- if self._relationship is None:
29
- raise ValueError("Relationship is null")
30
- db = Database.get_instance()
31
- db.add_relationship(self._relationship, self._statement)
32
-
33
- @property
34
- def results(self) -> List[Dict[str, Any]]:
35
- return []
@@ -1,29 +0,0 @@
1
- """Represents a DELETE operation for deleting virtual nodes."""
2
-
3
- from typing import Any, Dict, List
4
-
5
- from ...graph.database import Database
6
- from ...graph.node import Node
7
- from .operation import Operation
8
-
9
-
10
- class DeleteNode(Operation):
11
- """Represents a DELETE operation for deleting virtual nodes."""
12
-
13
- def __init__(self, node: Node) -> None:
14
- super().__init__()
15
- self._node = node
16
-
17
- @property
18
- def node(self) -> Node:
19
- return self._node
20
-
21
- async def run(self) -> None:
22
- if self._node is None:
23
- raise ValueError("Node is null")
24
- db = Database.get_instance()
25
- db.remove_node(self._node)
26
-
27
- @property
28
- def results(self) -> List[Dict[str, Any]]:
29
- return []
@@ -1,29 +0,0 @@
1
- """Represents a DELETE operation for deleting virtual relationships."""
2
-
3
- from typing import Any, Dict, List
4
-
5
- from ...graph.database import Database
6
- from ...graph.relationship import Relationship
7
- from .operation import Operation
8
-
9
-
10
- class DeleteRelationship(Operation):
11
- """Represents a DELETE operation for deleting virtual relationships."""
12
-
13
- def __init__(self, relationship: Relationship) -> None:
14
- super().__init__()
15
- self._relationship = relationship
16
-
17
- @property
18
- def relationship(self) -> Relationship:
19
- return self._relationship
20
-
21
- async def run(self) -> None:
22
- if self._relationship is None:
23
- raise ValueError("Relationship is null")
24
- db = Database.get_instance()
25
- db.remove_relationship(self._relationship)
26
-
27
- @property
28
- def results(self) -> List[Dict[str, Any]]:
29
- return []