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,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;