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,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 []