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,75 +0,0 @@
1
- /*
2
- This query demonstrates how to use the OpenAI API in FlowQuery to analyze cat facts.
3
-
4
- To run this query, you need to create a .env file in the same folder as this query within your VSCode project.
5
- Create two variables in the .env file:
6
- OPENAI_API_KEY='YOUR_OPENAI_API_KEY'
7
- OPENAI_ORGANIZATION_ID='YOUR_OPENAI_ORGANIZATION_ID'
8
-
9
- This FlowQuery script implements a chain-of-thoughts LLM pipeline which does the following steps:
10
- 1. Fetches 10 cat facts from the Cat Facts API and collects them into a list.
11
- 2. Creates a prompt to analyze the cat facts.
12
- 3. Calls the OpenAI API with the prompt to get an analysis of the cat facts.
13
- 4. Creates a second prompt to extract topics from the analysis.
14
- 5. Calls the OpenAI API with the second prompt to get a list of topics.
15
- 6. Returns the cat facts, the analysis, and the topics.
16
- */
17
-
18
- // Setup OpenAI API key and organization ID (read from .env file in same directory as this query file)
19
- with
20
- '$OPENAI_API_KEY' as OPENAI_API_KEY,
21
- '$OPENAI_ORGANIZATION_ID' as OPENAI_ORGANIZATION_ID
22
-
23
- // 1. Get 10 cat facts and collect them into a list
24
- unwind range(0,10) as i
25
- load json from "https://catfact.ninja/fact" as item
26
- with collect(item.fact) as catfacts
27
-
28
- // 2. Create prompt to analyze cat facts
29
- with f"
30
- Analyze the following cat facts and answer with a short (1-3 sentences max) summary of the most interesting facts, and what they imply about cats as pets:
31
- {stringify(catfacts)}
32
- " as catfacts_analysis_prompt
33
-
34
- // 3. Call OpenAI API to analyze cat facts
35
- load json from 'https://api.openai.com/v1/chat/completions'
36
- headers {
37
- `Content-Type`: 'application/json',
38
- Authorization: f'Bearer {OPENAI_API_KEY}',
39
- `OpenAI-Organization`: OPENAI_ORGANIZATION_ID
40
- }
41
- post {
42
- model: 'gpt-4o-mini',
43
- messages: [{role: 'user', content: catfacts_analysis_prompt}],
44
- temperature: 0.7
45
- } as openai_response
46
- with openai_response.choices[0].message.content as catfacts_analysis
47
-
48
- // 4. Create a second prompt to extract topics from the analysis
49
- with f"
50
- Extract the main topics from the following analysis of cat facts, only single-word topics. Return the topics as a comma-separated list.
51
- Analysis:
52
- {catfacts_analysis}
53
- " as catfacts_topics_prompt
54
-
55
- // 5. Call OpenAI API to extract topics
56
- load json from 'https://api.openai.com/v1/chat/completions'
57
- headers {
58
- `Content-Type`: 'application/json',
59
- Authorization: f'Bearer {OPENAI_API_KEY}',
60
- `OpenAI-Organization`: OPENAI_ORGANIZATION_ID
61
- }
62
- post {
63
- model: 'gpt-4o-mini',
64
- messages: [{role: 'user', content: catfacts_topics_prompt}],
65
- temperature: 0.7
66
- } as openai_topics_response
67
- with openai_topics_response.choices[0].message.content as catfacts_topics
68
-
69
- // 6. Return the analysis
70
- return
71
- catfacts as `Cat Facts from API`,
72
- catfacts_analysis_prompt as `Cat Facts Analysis Prompt`,
73
- catfacts_analysis as `Cat Facts Analysis by gpt-4o-mini`,
74
- catfacts_topics_prompt as `Cat Facts Topics Prompt`,
75
- catfacts_topics as `Cat Facts Topics by gpt-4o-mini`
@@ -1,13 +0,0 @@
1
- // Test completion from Azure OpenAI API
2
- with
3
- '$AZURE_OPENAI_API_KEY' as AZURE_OPENAI_API_KEY
4
- load json from '$AZURE_OPENAI_ENDPOINT'
5
- headers {
6
- `Content-Type`: 'application/json',
7
- `api-key`: AZURE_OPENAI_API_KEY,
8
- }
9
- post {
10
- messages: [{role: 'user', content: 'Answer with this is a test!'}],
11
- temperature: 0.7
12
- } as data
13
- return data
@@ -1,9 +0,0 @@
1
- // Return models from Azure OpenAI API
2
- with
3
- '$AZURE_OPENAI_API_KEY' as AZURE_OPENAI_API_KEY
4
- load json from '$AZURE_OPENAI_MODELS_LIST_ENDPOINT'
5
- headers {
6
- `api-key`: f'{AZURE_OPENAI_API_KEY}'
7
- } as l
8
- unwind l.data as model
9
- return model
@@ -1,84 +0,0 @@
1
- unwind [
2
- {
3
- situation_recap: "Once upon a time, there was a conversation. It was a good conversation. There were many objectives in the conversation.",
4
- objectives: ["Objective 1", "Objective 2"],
5
- feedbacks: [
6
- {
7
- feedbackType: "compliment",
8
- reasoning: "You conversed well",
9
- title: "Good job"
10
- },
11
- {
12
- feedbackType: "suggestion",
13
- reasoning: "Don't forget to remember",
14
- title: "Don't forget"
15
- }
16
- ],
17
- contacts: [
18
- {email: "bob@mail.com", displayName: "Bob"},
19
- {email: "jane@mail.com", displayName: "Jane"}
20
- ],
21
- dimension: "Coaching",
22
- supporting_messages: [
23
- {
24
- text: "This is a supporting message",
25
- sender: {
26
- email: "bob@mail.com",
27
- displayName: "Bob"
28
- }
29
- },
30
- {
31
- text: "This is another supporting message",
32
- sender: {
33
- email: "jane@mail.com",
34
- displayName: "Jane"
35
- }
36
- }
37
- ]
38
- },
39
- {
40
- situation_recap: "The conversation was about a topic. The objectives were clear. The feedbacks were insightful.",
41
- objectives: ["Objective 3", "Objective 4"],
42
- feedbacks: [
43
- {
44
- feedbackType: "compliment",
45
- reasoning: "Very funny conversation",
46
- title: "Good job"
47
- },
48
- {
49
- feedbackType: "suggestion",
50
- reasoning: "Remember to not forget",
51
- title: "Remember"
52
- }
53
- ],
54
- contacts: [
55
- {email: "robot@mail.com", displayName: "Robot"},
56
- {email: "r2d2@mail.com", displayName: "R2D2"}
57
- ],
58
- dimension: "Coaching",
59
- supporting_messages: [
60
- {
61
- text: "This is a robot supporting message",
62
- sender: {
63
- email: "robot@mail.com",
64
- displayName: "Robot"
65
- }
66
- },
67
- {
68
- text: "This is a R2D2 supporting message",
69
- sender: {
70
- email: "r2d2@mail.com",
71
- displayName: "R2D2"
72
- }
73
- }
74
- ]
75
- }
76
- ] as coach_note
77
- return
78
- coach_note.situation_recap as situation_recap,
79
- coach_note.objectives as objectives,
80
- coach_note.feedbacks as feedbacks,
81
- coach_note.contacts as contacts,
82
- coach_note.dimension as dimension,
83
- 'AGGREGATE_COACH_NOTE' as type,
84
- coach_note.supporting_messages as supporting_messages
@@ -1,15 +0,0 @@
1
- // Test completion from OpenAI API
2
- with
3
- '$OPENAI_API_KEY' as OPENAI_API_KEY
4
- load json from 'https://api.openai.com/v1/chat/completions'
5
- headers {
6
- `Content-Type`: 'application/json',
7
- Authorization: f'Bearer {OPENAI_API_KEY}',
8
- `OpenAI-Organization`: '$OPENAI_ORGANIZATION_ID' // Must be set to the organization ID
9
- }
10
- post {
11
- model: 'gpt-4o-mini',
12
- messages: [{role: 'user', content: 'Answer with this is a test!'}],
13
- temperature: 0.7
14
- } as data
15
- return data
@@ -1,13 +0,0 @@
1
- // Return models from OpenAI API
2
- with
3
- '$OPENAI_API_KEY' as OPENAI_API_KEY
4
- load json from 'https://api.openai.com/v1/models'
5
- headers {
6
- Authorization: f'Bearer {OPENAI_API_KEY}'
7
- } as l
8
- unwind l.data as model
9
- return
10
- model.id as `Model ID`,
11
- model.object as `Object Type`,
12
- model.created as `Created Timestamp`,
13
- model.owned_by as `Owned By`
@@ -1,6 +0,0 @@
1
- // 1. Get 10 cat facts and collect them into a list
2
- unwind range(0,10) as i
3
- load json from "https://catfact.ninja/fact" as fact
4
-
5
- // Return the cat facts
6
- return fact.fact as `Fact about cats`, fact.length as `Fact Length`
@@ -1,24 +0,0 @@
1
- with
2
- '$OPENAI_API_KEY' as OPENAI_API_KEY,
3
- '$OPENAI_ORGANIZATION_ID' as OPENAI_ORG_ID
4
- unwind ["Where is my document?", "Who is Niclas?", "Who is my manager?"] as query
5
- with f`
6
- If query is people-related, then output:
7
- people_search('query')
8
- Otherwise, output:
9
- search('query')
10
-
11
- Here is the query: "{query}"
12
- ` as instruction
13
- load json from 'https://api.openai.com/v1/chat/completions'
14
- headers {
15
- `Content-Type`: 'application/json',
16
- Authorization: f'Bearer {OPENAI_API_KEY}',
17
- `OpenAI-Organization`: OPENAI_ORG_ID
18
- }
19
- post {
20
- model: 'gpt-4o-mini',
21
- messages: [{role: 'user', content: instruction}],
22
- temperature: 0.7
23
- } as data
24
- return query, data.choices[0].message.content as tool
@@ -1,6 +0,0 @@
1
- /*
2
- Collect 10 random pieces of wisdom from the Advice Slip API and return them.
3
- */
4
- unwind range(0,10) as i
5
- load json from "https://api.adviceslip.com/advice" as item
6
- return item.slip.advice as `Wisdom`
@@ -1,8 +0,0 @@
1
- /*
2
- Collect 10 random pieces of wisdom and create a letter histogram.
3
- */
4
- unwind range(0,10) as i
5
- load json from "https://api.adviceslip.com/advice" as item
6
- with join(collect(item.slip.advice),"") as wisdom
7
- unwind split(wisdom,"") as letter
8
- return letter, sum(1) as lettercount
@@ -1,46 +0,0 @@
1
- import Function from "../parsing/functions/function";
2
- import { FunctionMetadata } from "../parsing/functions/function_metadata";
3
- import Runner from "./runner";
4
-
5
- /**
6
- * FlowQuery is the public API surface for the FlowQuery library.
7
- *
8
- * It extends {@link Runner} with extensibility features such as function
9
- * listing and plugin registration, keeping the Runner focused on execution.
10
- *
11
- * The static members are assigned dynamically in
12
- * {@link ../index.browser.ts | index.browser.ts} and
13
- * {@link ../index.node.ts | index.node.ts}.
14
- *
15
- * @example
16
- * ```typescript
17
- * const fq = new FlowQuery("WITH 1 as x RETURN x");
18
- * await fq.run();
19
- * console.log(fq.results); // [{ x: 1 }]
20
- *
21
- * // List all registered functions
22
- * const functions = FlowQuery.listFunctions();
23
- * ```
24
- */
25
- class FlowQuery extends Runner {
26
- /**
27
- * List all registered functions with their metadata.
28
- */
29
- static listFunctions: (options?: {
30
- category?: string;
31
- asyncOnly?: boolean;
32
- syncOnly?: boolean;
33
- }) => FunctionMetadata[];
34
-
35
- /**
36
- * Get metadata for a specific function.
37
- */
38
- static getFunctionMetadata: (name: string) => FunctionMetadata | undefined;
39
-
40
- /**
41
- * Base Function class for creating custom plugin functions.
42
- */
43
- static Function: typeof Function;
44
- }
45
-
46
- export default FlowQuery;
@@ -1,66 +0,0 @@
1
- import ASTNode from "../parsing/ast_node";
2
- import Operation from "../parsing/operations/operation";
3
- import Parser from "../parsing/parser";
4
-
5
- /**
6
- * Executes a FlowQuery statement and retrieves the results.
7
- *
8
- * The Runner class parses a FlowQuery statement into an AST and executes it,
9
- * managing the execution flow from the first operation to the final return statement.
10
- *
11
- * @example
12
- * ```typescript
13
- * const runner = new Runner("WITH 1 as x RETURN x");
14
- * await runner.run();
15
- * console.log(runner.results); // [{ x: 1 }]
16
- * ```
17
- */
18
- class Runner {
19
- private first: Operation;
20
- private last: Operation;
21
-
22
- /**
23
- * Creates a new Runner instance and parses the FlowQuery statement.
24
- *
25
- * @param statement - The FlowQuery statement to execute
26
- * @throws {Error} If the statement is null, empty, or contains syntax errors
27
- */
28
- constructor(statement: string | null = null, ast: ASTNode | null = null) {
29
- if ((statement === null || statement === "") && ast === null) {
30
- throw new Error("Either statement or AST must be provided");
31
- }
32
- const _ast = ast !== null ? ast : new Parser().parse(statement!);
33
- this.first = _ast.firstChild() as Operation;
34
- this.last = _ast.lastChild() as Operation;
35
- }
36
-
37
- /**
38
- * Executes the parsed FlowQuery statement.
39
- *
40
- * @returns A promise that resolves when execution completes
41
- * @throws {Error} If an error occurs during execution
42
- */
43
- public async run(): Promise<void> {
44
- return new Promise<void>(async (resolve, reject) => {
45
- try {
46
- await this.first.initialize();
47
- await this.first.run();
48
- await this.first.finish();
49
- resolve();
50
- } catch (e) {
51
- reject(e);
52
- }
53
- });
54
- }
55
-
56
- /**
57
- * Gets the results from the executed statement.
58
- *
59
- * @returns The results from the last operation (typically a RETURN statement)
60
- */
61
- public get results(): any {
62
- return this.last.results;
63
- }
64
- }
65
-
66
- export default Runner;
@@ -1,45 +0,0 @@
1
- /**
2
- * FlowQuery Extensibility API
3
- *
4
- * This module provides all the exports needed to create custom FlowQuery functions.
5
- *
6
- * @packageDocumentation
7
- *
8
- * @example
9
- * ```typescript
10
- * import { Function, FunctionDef } from 'flowquery/extensibility';
11
- *
12
- * @FunctionDef({
13
- * description: "Converts a string to uppercase",
14
- * category: "string",
15
- * parameters: [{ name: "text", description: "String to convert", type: "string" }],
16
- * output: { description: "Uppercase string", type: "string" }
17
- * })
18
- * class UpperCase extends Function {
19
- * constructor() {
20
- * super("uppercase");
21
- * this._expectedParameterCount = 1;
22
- * }
23
- * public value(): string {
24
- * return String(this.getChildren()[0].value()).toUpperCase();
25
- * }
26
- * }
27
- * ```
28
- */
29
-
30
- // Base function classes for creating custom functions
31
- export { default as Function } from "./parsing/functions/function";
32
- export { default as AggregateFunction } from "./parsing/functions/aggregate_function";
33
- export { default as AsyncFunction } from "./parsing/functions/async_function";
34
- export { default as PredicateFunction } from "./parsing/functions/predicate_function";
35
- export { default as ReducerElement } from "./parsing/functions/reducer_element";
36
-
37
- // Decorator and metadata types for function registration
38
- export {
39
- FunctionDef,
40
- FunctionMetadata,
41
- FunctionDefOptions,
42
- ParameterSchema,
43
- OutputSchema,
44
- FunctionCategory
45
- } from "./parsing/functions/function_metadata";
package/src/graph/data.ts DELETED
@@ -1,130 +0,0 @@
1
- class IndexEntry {
2
- private _positions: number[];
3
- private _index: number = -1;
4
-
5
- constructor(positions: number[] = []) {
6
- this._positions = positions;
7
- }
8
- public add(position: number): void {
9
- this._positions.push(position);
10
- }
11
- public get position(): number {
12
- return this._positions[this._index];
13
- }
14
- public reset(): void {
15
- this._index = -1;
16
- }
17
- public next(): boolean {
18
- if (this._index < this._positions.length - 1) {
19
- this._index++;
20
- return true;
21
- }
22
- return false;
23
- }
24
- public clone(): IndexEntry {
25
- return new IndexEntry([...this._positions]);
26
- }
27
- }
28
-
29
- class Layer {
30
- private _indexes: Map<string, Map<string, IndexEntry>> = new Map();
31
- private _current: number = -1;
32
- constructor(indexes: Map<string, Map<string, IndexEntry>>) {
33
- this._indexes = indexes;
34
- }
35
- public index(name: string): Map<string, IndexEntry> {
36
- if (!this._indexes.has(name)) {
37
- this._indexes.set(name, new Map());
38
- }
39
- return this._indexes.get(name)!;
40
- }
41
- public get indexes(): Map<string, Map<string, IndexEntry>> {
42
- return this._indexes;
43
- }
44
- public get current(): number {
45
- return this._current;
46
- }
47
- public set current(value: number) {
48
- this._current = value;
49
- }
50
- }
51
-
52
- class Data {
53
- protected _records: Record<string, any>[] = [];
54
- private _layers: Map<number, Layer> = new Map();
55
-
56
- constructor(records: Record<string, any>[] = []) {
57
- this._records = records;
58
- this._layers.set(0, new Layer(new Map()));
59
- }
60
- protected _buildIndex(key: string, level: number = 0): void {
61
- const idx = this.layer(level).index(key);
62
- idx.clear();
63
- this._records.forEach((record, i) => {
64
- if (record.hasOwnProperty(key)) {
65
- if (!idx.has(record[key])) {
66
- idx.set(record[key], new IndexEntry());
67
- }
68
- idx.get(record[key])!.add(i);
69
- }
70
- });
71
- }
72
- public layer(level: number = 0): Layer {
73
- if (!this._layers.has(level)) {
74
- const first = this._layers.get(0)!;
75
- const clonedIndexes = new Map<string, Map<string, IndexEntry>>();
76
- for (const [name, indexMap] of first.indexes) {
77
- const clonedMap = new Map<string, IndexEntry>();
78
- for (const [key, entry] of indexMap) {
79
- clonedMap.set(key, entry.clone());
80
- }
81
- clonedIndexes.set(name, clonedMap);
82
- }
83
- this._layers.set(level, new Layer(clonedIndexes));
84
- }
85
- return this._layers.get(level)!;
86
- }
87
- protected _find(key: string, level: number = 0, indexName?: string): boolean {
88
- const idx = indexName
89
- ? this.layer(level).index(indexName)
90
- : this.layer(level).indexes.values().next().value;
91
- if (!idx || !idx.has(key)) {
92
- this.layer(level).current = this._records.length; // Move to end
93
- return false;
94
- } else {
95
- const entry = idx.get(key)!;
96
- const more = entry.next();
97
- if (!more) {
98
- this.layer(level).current = this._records.length; // Move to end
99
- return false;
100
- }
101
- this.layer(level).current = entry.position;
102
- return true;
103
- }
104
- }
105
- public reset(): void {
106
- for (const layer of this._layers.values()) {
107
- layer.current = -1;
108
- for (const indexMap of layer.indexes.values()) {
109
- for (const entry of indexMap.values()) {
110
- entry.reset();
111
- }
112
- }
113
- }
114
- }
115
- public next(level: number = 0): boolean {
116
- if (this.layer(level).current < this._records.length - 1) {
117
- this.layer(level).current++;
118
- return true;
119
- }
120
- return false;
121
- }
122
- public current(level: number = 0): Record<string, any> | null {
123
- if (this.layer(level).current < this._records.length) {
124
- return this._records[this.layer(level).current];
125
- }
126
- return null;
127
- }
128
- }
129
-
130
- export default Data;