flowquery 1.0.45 → 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 (418) 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/operations/unwind.d.ts +1 -1
  7. package/dist/parsing/operations/unwind.d.ts.map +1 -1
  8. package/dist/parsing/operations/unwind.js +9 -5
  9. package/dist/parsing/operations/unwind.js.map +1 -1
  10. package/package.json +4 -1
  11. package/.editorconfig +0 -21
  12. package/.gitattributes +0 -3
  13. package/.github/workflows/npm-publish.yml +0 -32
  14. package/.github/workflows/python-publish.yml +0 -143
  15. package/.github/workflows/release.yml +0 -107
  16. package/.husky/pre-commit +0 -28
  17. package/.prettierrc +0 -22
  18. package/CODE_OF_CONDUCT.md +0 -10
  19. package/FlowQueryLogoIcon.png +0 -0
  20. package/SECURITY.md +0 -14
  21. package/SUPPORT.md +0 -13
  22. package/docs/flowquery.min.js +0 -1
  23. package/docs/index.html +0 -105
  24. package/flowquery-py/CONTRIBUTING.md +0 -127
  25. package/flowquery-py/README.md +0 -67
  26. package/flowquery-py/misc/data/test.json +0 -10
  27. package/flowquery-py/misc/data/users.json +0 -242
  28. package/flowquery-py/notebooks/TestFlowQuery.ipynb +0 -440
  29. package/flowquery-py/pyproject.toml +0 -121
  30. package/flowquery-py/setup_env.ps1 +0 -92
  31. package/flowquery-py/setup_env.sh +0 -87
  32. package/flowquery-py/src/__init__.py +0 -38
  33. package/flowquery-py/src/__main__.py +0 -10
  34. package/flowquery-py/src/compute/__init__.py +0 -6
  35. package/flowquery-py/src/compute/flowquery.py +0 -68
  36. package/flowquery-py/src/compute/runner.py +0 -64
  37. package/flowquery-py/src/extensibility.py +0 -52
  38. package/flowquery-py/src/graph/__init__.py +0 -31
  39. package/flowquery-py/src/graph/data.py +0 -136
  40. package/flowquery-py/src/graph/database.py +0 -141
  41. package/flowquery-py/src/graph/hops.py +0 -43
  42. package/flowquery-py/src/graph/node.py +0 -143
  43. package/flowquery-py/src/graph/node_data.py +0 -26
  44. package/flowquery-py/src/graph/node_reference.py +0 -50
  45. package/flowquery-py/src/graph/pattern.py +0 -115
  46. package/flowquery-py/src/graph/pattern_expression.py +0 -67
  47. package/flowquery-py/src/graph/patterns.py +0 -42
  48. package/flowquery-py/src/graph/physical_node.py +0 -41
  49. package/flowquery-py/src/graph/physical_relationship.py +0 -36
  50. package/flowquery-py/src/graph/relationship.py +0 -193
  51. package/flowquery-py/src/graph/relationship_data.py +0 -36
  52. package/flowquery-py/src/graph/relationship_match_collector.py +0 -85
  53. package/flowquery-py/src/graph/relationship_reference.py +0 -21
  54. package/flowquery-py/src/io/__init__.py +0 -5
  55. package/flowquery-py/src/io/command_line.py +0 -108
  56. package/flowquery-py/src/parsing/__init__.py +0 -17
  57. package/flowquery-py/src/parsing/alias.py +0 -20
  58. package/flowquery-py/src/parsing/alias_option.py +0 -11
  59. package/flowquery-py/src/parsing/ast_node.py +0 -147
  60. package/flowquery-py/src/parsing/base_parser.py +0 -84
  61. package/flowquery-py/src/parsing/components/__init__.py +0 -19
  62. package/flowquery-py/src/parsing/components/csv.py +0 -8
  63. package/flowquery-py/src/parsing/components/from_.py +0 -12
  64. package/flowquery-py/src/parsing/components/headers.py +0 -12
  65. package/flowquery-py/src/parsing/components/json.py +0 -8
  66. package/flowquery-py/src/parsing/components/null.py +0 -10
  67. package/flowquery-py/src/parsing/components/post.py +0 -8
  68. package/flowquery-py/src/parsing/components/text.py +0 -8
  69. package/flowquery-py/src/parsing/context.py +0 -50
  70. package/flowquery-py/src/parsing/data_structures/__init__.py +0 -15
  71. package/flowquery-py/src/parsing/data_structures/associative_array.py +0 -41
  72. package/flowquery-py/src/parsing/data_structures/json_array.py +0 -30
  73. package/flowquery-py/src/parsing/data_structures/key_value_pair.py +0 -38
  74. package/flowquery-py/src/parsing/data_structures/lookup.py +0 -51
  75. package/flowquery-py/src/parsing/data_structures/range_lookup.py +0 -42
  76. package/flowquery-py/src/parsing/expressions/__init__.py +0 -61
  77. package/flowquery-py/src/parsing/expressions/boolean.py +0 -20
  78. package/flowquery-py/src/parsing/expressions/expression.py +0 -141
  79. package/flowquery-py/src/parsing/expressions/expression_map.py +0 -26
  80. package/flowquery-py/src/parsing/expressions/f_string.py +0 -27
  81. package/flowquery-py/src/parsing/expressions/identifier.py +0 -21
  82. package/flowquery-py/src/parsing/expressions/number.py +0 -32
  83. package/flowquery-py/src/parsing/expressions/operator.py +0 -271
  84. package/flowquery-py/src/parsing/expressions/reference.py +0 -47
  85. package/flowquery-py/src/parsing/expressions/string.py +0 -27
  86. package/flowquery-py/src/parsing/functions/__init__.py +0 -127
  87. package/flowquery-py/src/parsing/functions/aggregate_function.py +0 -60
  88. package/flowquery-py/src/parsing/functions/async_function.py +0 -65
  89. package/flowquery-py/src/parsing/functions/avg.py +0 -55
  90. package/flowquery-py/src/parsing/functions/coalesce.py +0 -43
  91. package/flowquery-py/src/parsing/functions/collect.py +0 -75
  92. package/flowquery-py/src/parsing/functions/count.py +0 -79
  93. package/flowquery-py/src/parsing/functions/date_.py +0 -61
  94. package/flowquery-py/src/parsing/functions/datetime_.py +0 -62
  95. package/flowquery-py/src/parsing/functions/duration.py +0 -159
  96. package/flowquery-py/src/parsing/functions/element_id.py +0 -50
  97. package/flowquery-py/src/parsing/functions/function.py +0 -68
  98. package/flowquery-py/src/parsing/functions/function_factory.py +0 -170
  99. package/flowquery-py/src/parsing/functions/function_metadata.py +0 -148
  100. package/flowquery-py/src/parsing/functions/functions.py +0 -67
  101. package/flowquery-py/src/parsing/functions/head.py +0 -39
  102. package/flowquery-py/src/parsing/functions/id_.py +0 -49
  103. package/flowquery-py/src/parsing/functions/join.py +0 -49
  104. package/flowquery-py/src/parsing/functions/keys.py +0 -34
  105. package/flowquery-py/src/parsing/functions/last.py +0 -39
  106. package/flowquery-py/src/parsing/functions/localdatetime.py +0 -60
  107. package/flowquery-py/src/parsing/functions/localtime.py +0 -57
  108. package/flowquery-py/src/parsing/functions/max_.py +0 -49
  109. package/flowquery-py/src/parsing/functions/min_.py +0 -49
  110. package/flowquery-py/src/parsing/functions/nodes.py +0 -48
  111. package/flowquery-py/src/parsing/functions/predicate_function.py +0 -47
  112. package/flowquery-py/src/parsing/functions/predicate_sum.py +0 -49
  113. package/flowquery-py/src/parsing/functions/properties.py +0 -50
  114. package/flowquery-py/src/parsing/functions/rand.py +0 -28
  115. package/flowquery-py/src/parsing/functions/range_.py +0 -41
  116. package/flowquery-py/src/parsing/functions/reducer_element.py +0 -15
  117. package/flowquery-py/src/parsing/functions/relationships.py +0 -46
  118. package/flowquery-py/src/parsing/functions/replace.py +0 -39
  119. package/flowquery-py/src/parsing/functions/round_.py +0 -34
  120. package/flowquery-py/src/parsing/functions/schema.py +0 -40
  121. package/flowquery-py/src/parsing/functions/size.py +0 -34
  122. package/flowquery-py/src/parsing/functions/split.py +0 -54
  123. package/flowquery-py/src/parsing/functions/string_distance.py +0 -92
  124. package/flowquery-py/src/parsing/functions/stringify.py +0 -49
  125. package/flowquery-py/src/parsing/functions/substring.py +0 -76
  126. package/flowquery-py/src/parsing/functions/sum.py +0 -51
  127. package/flowquery-py/src/parsing/functions/tail.py +0 -37
  128. package/flowquery-py/src/parsing/functions/temporal_utils.py +0 -186
  129. package/flowquery-py/src/parsing/functions/time_.py +0 -57
  130. package/flowquery-py/src/parsing/functions/timestamp.py +0 -37
  131. package/flowquery-py/src/parsing/functions/to_float.py +0 -46
  132. package/flowquery-py/src/parsing/functions/to_integer.py +0 -46
  133. package/flowquery-py/src/parsing/functions/to_json.py +0 -35
  134. package/flowquery-py/src/parsing/functions/to_lower.py +0 -37
  135. package/flowquery-py/src/parsing/functions/to_string.py +0 -41
  136. package/flowquery-py/src/parsing/functions/trim.py +0 -37
  137. package/flowquery-py/src/parsing/functions/type_.py +0 -47
  138. package/flowquery-py/src/parsing/functions/value_holder.py +0 -24
  139. package/flowquery-py/src/parsing/logic/__init__.py +0 -15
  140. package/flowquery-py/src/parsing/logic/case.py +0 -28
  141. package/flowquery-py/src/parsing/logic/else_.py +0 -12
  142. package/flowquery-py/src/parsing/logic/end.py +0 -8
  143. package/flowquery-py/src/parsing/logic/then.py +0 -12
  144. package/flowquery-py/src/parsing/logic/when.py +0 -12
  145. package/flowquery-py/src/parsing/operations/__init__.py +0 -46
  146. package/flowquery-py/src/parsing/operations/aggregated_return.py +0 -25
  147. package/flowquery-py/src/parsing/operations/aggregated_with.py +0 -22
  148. package/flowquery-py/src/parsing/operations/call.py +0 -73
  149. package/flowquery-py/src/parsing/operations/create_node.py +0 -35
  150. package/flowquery-py/src/parsing/operations/create_relationship.py +0 -35
  151. package/flowquery-py/src/parsing/operations/delete_node.py +0 -29
  152. package/flowquery-py/src/parsing/operations/delete_relationship.py +0 -29
  153. package/flowquery-py/src/parsing/operations/group_by.py +0 -148
  154. package/flowquery-py/src/parsing/operations/limit.py +0 -33
  155. package/flowquery-py/src/parsing/operations/load.py +0 -148
  156. package/flowquery-py/src/parsing/operations/match.py +0 -52
  157. package/flowquery-py/src/parsing/operations/operation.py +0 -69
  158. package/flowquery-py/src/parsing/operations/order_by.py +0 -114
  159. package/flowquery-py/src/parsing/operations/projection.py +0 -21
  160. package/flowquery-py/src/parsing/operations/return_op.py +0 -88
  161. package/flowquery-py/src/parsing/operations/union.py +0 -115
  162. package/flowquery-py/src/parsing/operations/union_all.py +0 -17
  163. package/flowquery-py/src/parsing/operations/unwind.py +0 -38
  164. package/flowquery-py/src/parsing/operations/where.py +0 -43
  165. package/flowquery-py/src/parsing/operations/with_op.py +0 -18
  166. package/flowquery-py/src/parsing/parser.py +0 -1384
  167. package/flowquery-py/src/parsing/parser_state.py +0 -26
  168. package/flowquery-py/src/parsing/token_to_node.py +0 -109
  169. package/flowquery-py/src/tokenization/__init__.py +0 -23
  170. package/flowquery-py/src/tokenization/keyword.py +0 -54
  171. package/flowquery-py/src/tokenization/operator.py +0 -29
  172. package/flowquery-py/src/tokenization/string_walker.py +0 -158
  173. package/flowquery-py/src/tokenization/symbol.py +0 -19
  174. package/flowquery-py/src/tokenization/token.py +0 -693
  175. package/flowquery-py/src/tokenization/token_mapper.py +0 -53
  176. package/flowquery-py/src/tokenization/token_type.py +0 -21
  177. package/flowquery-py/src/tokenization/tokenizer.py +0 -214
  178. package/flowquery-py/src/tokenization/trie.py +0 -125
  179. package/flowquery-py/src/utils/__init__.py +0 -6
  180. package/flowquery-py/src/utils/object_utils.py +0 -20
  181. package/flowquery-py/src/utils/string_utils.py +0 -113
  182. package/flowquery-py/tests/__init__.py +0 -1
  183. package/flowquery-py/tests/compute/__init__.py +0 -1
  184. package/flowquery-py/tests/compute/test_runner.py +0 -4879
  185. package/flowquery-py/tests/graph/__init__.py +0 -1
  186. package/flowquery-py/tests/graph/test_create.py +0 -56
  187. package/flowquery-py/tests/graph/test_data.py +0 -73
  188. package/flowquery-py/tests/graph/test_match.py +0 -40
  189. package/flowquery-py/tests/parsing/__init__.py +0 -1
  190. package/flowquery-py/tests/parsing/test_context.py +0 -34
  191. package/flowquery-py/tests/parsing/test_expression.py +0 -248
  192. package/flowquery-py/tests/parsing/test_parser.py +0 -1237
  193. package/flowquery-py/tests/test_extensibility.py +0 -611
  194. package/flowquery-py/tests/tokenization/__init__.py +0 -1
  195. package/flowquery-py/tests/tokenization/test_token_mapper.py +0 -60
  196. package/flowquery-py/tests/tokenization/test_tokenizer.py +0 -198
  197. package/flowquery-py/tests/tokenization/test_trie.py +0 -30
  198. package/flowquery-vscode/.vscode-test.mjs +0 -5
  199. package/flowquery-vscode/.vscodeignore +0 -13
  200. package/flowquery-vscode/LICENSE +0 -21
  201. package/flowquery-vscode/README.md +0 -11
  202. package/flowquery-vscode/demo/FlowQueryVSCodeDemo.gif +0 -0
  203. package/flowquery-vscode/eslint.config.mjs +0 -25
  204. package/flowquery-vscode/extension.js +0 -508
  205. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +0 -1
  206. package/flowquery-vscode/flowquery-worker.js +0 -66
  207. package/flowquery-vscode/images/FlowQueryLogoIcon.png +0 -0
  208. package/flowquery-vscode/jsconfig.json +0 -13
  209. package/flowquery-vscode/libs/page.css +0 -53
  210. package/flowquery-vscode/libs/table.css +0 -13
  211. package/flowquery-vscode/libs/tabs.css +0 -66
  212. package/flowquery-vscode/package-lock.json +0 -2917
  213. package/flowquery-vscode/package.json +0 -51
  214. package/flowquery-vscode/test/extension.test.js +0 -196
  215. package/flowquery-vscode/test/worker.test.js +0 -25
  216. package/flowquery-vscode/vsc-extension-quickstart.md +0 -42
  217. package/jest.config.js +0 -8
  218. package/misc/apps/RAG/README.md +0 -29
  219. package/misc/apps/RAG/data/chats.json +0 -302
  220. package/misc/apps/RAG/data/emails.json +0 -182
  221. package/misc/apps/RAG/data/events.json +0 -226
  222. package/misc/apps/RAG/data/files.json +0 -172
  223. package/misc/apps/RAG/data/users.json +0 -158
  224. package/misc/apps/RAG/jest.config.js +0 -21
  225. package/misc/apps/RAG/package.json +0 -48
  226. package/misc/apps/RAG/public/index.html +0 -18
  227. package/misc/apps/RAG/src/App.css +0 -42
  228. package/misc/apps/RAG/src/App.tsx +0 -50
  229. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.css +0 -172
  230. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.tsx +0 -380
  231. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +0 -245
  232. package/misc/apps/RAG/src/components/ChatContainer.css +0 -67
  233. package/misc/apps/RAG/src/components/ChatContainer.tsx +0 -242
  234. package/misc/apps/RAG/src/components/ChatInput.css +0 -23
  235. package/misc/apps/RAG/src/components/ChatInput.tsx +0 -76
  236. package/misc/apps/RAG/src/components/ChatMessage.css +0 -160
  237. package/misc/apps/RAG/src/components/ChatMessage.tsx +0 -286
  238. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +0 -708
  239. package/misc/apps/RAG/src/components/FlowQueryRunner.css +0 -113
  240. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +0 -371
  241. package/misc/apps/RAG/src/components/index.ts +0 -28
  242. package/misc/apps/RAG/src/graph/index.ts +0 -19
  243. package/misc/apps/RAG/src/graph/initializeGraph.ts +0 -254
  244. package/misc/apps/RAG/src/index.tsx +0 -29
  245. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +0 -327
  246. package/misc/apps/RAG/src/prompts/index.ts +0 -10
  247. package/misc/apps/RAG/src/tests/graph.test.ts +0 -35
  248. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +0 -130
  249. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +0 -208
  250. package/misc/apps/RAG/src/utils/Llm.ts +0 -248
  251. package/misc/apps/RAG/src/utils/index.ts +0 -12
  252. package/misc/apps/RAG/tsconfig.json +0 -22
  253. package/misc/apps/RAG/webpack.config.js +0 -43
  254. package/misc/apps/README.md +0 -1
  255. package/misc/queries/analyze_catfacts.cql +0 -75
  256. package/misc/queries/azure_openai_completions.cql +0 -13
  257. package/misc/queries/azure_openai_models.cql +0 -9
  258. package/misc/queries/mock_pipeline.cql +0 -84
  259. package/misc/queries/openai_completions.cql +0 -15
  260. package/misc/queries/openai_models.cql +0 -13
  261. package/misc/queries/test.cql +0 -6
  262. package/misc/queries/tool_inference.cql +0 -24
  263. package/misc/queries/wisdom.cql +0 -6
  264. package/misc/queries/wisdom_letter_histogram.cql +0 -8
  265. package/src/compute/flowquery.ts +0 -46
  266. package/src/compute/runner.ts +0 -66
  267. package/src/extensibility.ts +0 -45
  268. package/src/graph/data.ts +0 -130
  269. package/src/graph/database.ts +0 -143
  270. package/src/graph/hops.ts +0 -22
  271. package/src/graph/node.ts +0 -122
  272. package/src/graph/node_data.ts +0 -18
  273. package/src/graph/node_reference.ts +0 -38
  274. package/src/graph/pattern.ts +0 -110
  275. package/src/graph/pattern_expression.ts +0 -48
  276. package/src/graph/patterns.ts +0 -36
  277. package/src/graph/physical_node.ts +0 -23
  278. package/src/graph/physical_relationship.ts +0 -23
  279. package/src/graph/relationship.ts +0 -167
  280. package/src/graph/relationship_data.ts +0 -31
  281. package/src/graph/relationship_match_collector.ts +0 -64
  282. package/src/graph/relationship_reference.ts +0 -25
  283. package/src/index.browser.ts +0 -46
  284. package/src/index.node.ts +0 -55
  285. package/src/index.ts +0 -12
  286. package/src/io/command_line.ts +0 -74
  287. package/src/parsing/alias.ts +0 -23
  288. package/src/parsing/alias_option.ts +0 -5
  289. package/src/parsing/ast_node.ts +0 -153
  290. package/src/parsing/base_parser.ts +0 -98
  291. package/src/parsing/components/csv.ts +0 -9
  292. package/src/parsing/components/from.ts +0 -12
  293. package/src/parsing/components/headers.ts +0 -12
  294. package/src/parsing/components/json.ts +0 -9
  295. package/src/parsing/components/null.ts +0 -9
  296. package/src/parsing/components/post.ts +0 -9
  297. package/src/parsing/components/text.ts +0 -9
  298. package/src/parsing/context.ts +0 -54
  299. package/src/parsing/data_structures/associative_array.ts +0 -43
  300. package/src/parsing/data_structures/json_array.ts +0 -31
  301. package/src/parsing/data_structures/key_value_pair.ts +0 -37
  302. package/src/parsing/data_structures/lookup.ts +0 -44
  303. package/src/parsing/data_structures/range_lookup.ts +0 -36
  304. package/src/parsing/expressions/boolean.ts +0 -21
  305. package/src/parsing/expressions/expression.ts +0 -150
  306. package/src/parsing/expressions/expression_map.ts +0 -22
  307. package/src/parsing/expressions/f_string.ts +0 -26
  308. package/src/parsing/expressions/identifier.ts +0 -22
  309. package/src/parsing/expressions/number.ts +0 -40
  310. package/src/parsing/expressions/operator.ts +0 -354
  311. package/src/parsing/expressions/reference.ts +0 -45
  312. package/src/parsing/expressions/string.ts +0 -34
  313. package/src/parsing/functions/aggregate_function.ts +0 -58
  314. package/src/parsing/functions/async_function.ts +0 -64
  315. package/src/parsing/functions/avg.ts +0 -47
  316. package/src/parsing/functions/coalesce.ts +0 -49
  317. package/src/parsing/functions/collect.ts +0 -54
  318. package/src/parsing/functions/count.ts +0 -54
  319. package/src/parsing/functions/date.ts +0 -63
  320. package/src/parsing/functions/datetime.ts +0 -63
  321. package/src/parsing/functions/duration.ts +0 -143
  322. package/src/parsing/functions/element_id.ts +0 -51
  323. package/src/parsing/functions/function.ts +0 -60
  324. package/src/parsing/functions/function_factory.ts +0 -195
  325. package/src/parsing/functions/function_metadata.ts +0 -217
  326. package/src/parsing/functions/functions.ts +0 -70
  327. package/src/parsing/functions/head.ts +0 -42
  328. package/src/parsing/functions/id.ts +0 -51
  329. package/src/parsing/functions/join.ts +0 -40
  330. package/src/parsing/functions/keys.ts +0 -29
  331. package/src/parsing/functions/last.ts +0 -42
  332. package/src/parsing/functions/localdatetime.ts +0 -63
  333. package/src/parsing/functions/localtime.ts +0 -58
  334. package/src/parsing/functions/max.ts +0 -37
  335. package/src/parsing/functions/min.ts +0 -37
  336. package/src/parsing/functions/nodes.ts +0 -54
  337. package/src/parsing/functions/predicate_function.ts +0 -48
  338. package/src/parsing/functions/predicate_sum.ts +0 -47
  339. package/src/parsing/functions/properties.ts +0 -56
  340. package/src/parsing/functions/rand.ts +0 -21
  341. package/src/parsing/functions/range.ts +0 -37
  342. package/src/parsing/functions/reducer_element.ts +0 -10
  343. package/src/parsing/functions/relationships.ts +0 -52
  344. package/src/parsing/functions/replace.ts +0 -38
  345. package/src/parsing/functions/round.ts +0 -28
  346. package/src/parsing/functions/schema.ts +0 -39
  347. package/src/parsing/functions/size.ts +0 -28
  348. package/src/parsing/functions/split.ts +0 -45
  349. package/src/parsing/functions/string_distance.ts +0 -83
  350. package/src/parsing/functions/stringify.ts +0 -37
  351. package/src/parsing/functions/substring.ts +0 -68
  352. package/src/parsing/functions/sum.ts +0 -41
  353. package/src/parsing/functions/tail.ts +0 -39
  354. package/src/parsing/functions/temporal_utils.ts +0 -180
  355. package/src/parsing/functions/time.ts +0 -58
  356. package/src/parsing/functions/timestamp.ts +0 -37
  357. package/src/parsing/functions/to_float.ts +0 -50
  358. package/src/parsing/functions/to_integer.ts +0 -50
  359. package/src/parsing/functions/to_json.ts +0 -28
  360. package/src/parsing/functions/to_lower.ts +0 -28
  361. package/src/parsing/functions/to_string.ts +0 -32
  362. package/src/parsing/functions/trim.ts +0 -28
  363. package/src/parsing/functions/type.ts +0 -39
  364. package/src/parsing/functions/value_holder.ts +0 -13
  365. package/src/parsing/logic/case.ts +0 -26
  366. package/src/parsing/logic/else.ts +0 -12
  367. package/src/parsing/logic/end.ts +0 -9
  368. package/src/parsing/logic/then.ts +0 -12
  369. package/src/parsing/logic/when.ts +0 -12
  370. package/src/parsing/operations/aggregated_return.ts +0 -22
  371. package/src/parsing/operations/aggregated_with.ts +0 -18
  372. package/src/parsing/operations/call.ts +0 -69
  373. package/src/parsing/operations/create_node.ts +0 -39
  374. package/src/parsing/operations/create_relationship.ts +0 -38
  375. package/src/parsing/operations/delete_node.ts +0 -33
  376. package/src/parsing/operations/delete_relationship.ts +0 -32
  377. package/src/parsing/operations/group_by.ts +0 -137
  378. package/src/parsing/operations/limit.ts +0 -31
  379. package/src/parsing/operations/load.ts +0 -146
  380. package/src/parsing/operations/match.ts +0 -54
  381. package/src/parsing/operations/operation.ts +0 -69
  382. package/src/parsing/operations/order_by.ts +0 -126
  383. package/src/parsing/operations/projection.ts +0 -18
  384. package/src/parsing/operations/return.ts +0 -76
  385. package/src/parsing/operations/union.ts +0 -114
  386. package/src/parsing/operations/union_all.ts +0 -16
  387. package/src/parsing/operations/unwind.ts +0 -32
  388. package/src/parsing/operations/where.ts +0 -42
  389. package/src/parsing/operations/with.ts +0 -20
  390. package/src/parsing/parser.ts +0 -1641
  391. package/src/parsing/parser_state.ts +0 -25
  392. package/src/parsing/token_to_node.ts +0 -114
  393. package/src/tokenization/keyword.ts +0 -50
  394. package/src/tokenization/operator.ts +0 -25
  395. package/src/tokenization/string_walker.ts +0 -197
  396. package/src/tokenization/symbol.ts +0 -15
  397. package/src/tokenization/token.ts +0 -764
  398. package/src/tokenization/token_mapper.ts +0 -53
  399. package/src/tokenization/token_type.ts +0 -16
  400. package/src/tokenization/tokenizer.ts +0 -250
  401. package/src/tokenization/trie.ts +0 -117
  402. package/src/utils/object_utils.ts +0 -17
  403. package/src/utils/string_utils.ts +0 -114
  404. package/tests/compute/runner.test.ts +0 -4538
  405. package/tests/extensibility.test.ts +0 -643
  406. package/tests/graph/create.test.ts +0 -36
  407. package/tests/graph/data.test.ts +0 -58
  408. package/tests/graph/match.test.ts +0 -29
  409. package/tests/parsing/context.test.ts +0 -27
  410. package/tests/parsing/expression.test.ts +0 -303
  411. package/tests/parsing/parser.test.ts +0 -1327
  412. package/tests/tokenization/token_mapper.test.ts +0 -47
  413. package/tests/tokenization/tokenizer.test.ts +0 -191
  414. package/tests/tokenization/trie.test.ts +0 -20
  415. package/tsconfig.json +0 -18
  416. package/typedoc.json +0 -16
  417. package/vscode-settings.json.recommended +0 -16
  418. package/webpack.config.js +0 -26
@@ -1,764 +0,0 @@
1
- import ASTNode from "../parsing/ast_node";
2
- import TokenToNode from "../parsing/token_to_node";
3
- import StringUtils from "../utils/string_utils";
4
- import Keyword from "./keyword";
5
- import Operator from "./operator";
6
- import Symbol from "./symbol";
7
- import TokenType from "./token_type";
8
-
9
- /**
10
- * Represents a single token in the FlowQuery language.
11
- *
12
- * Tokens are the atomic units of lexical analysis, produced by the tokenizer
13
- * and consumed by the parser. Each token has a type (keyword, operator, identifier, etc.)
14
- * and an optional value.
15
- *
16
- * @example
17
- * ```typescript
18
- * const withToken = Token.WITH;
19
- * const identToken = Token.IDENTIFIER("myVar");
20
- * const numToken = Token.NUMBER("42");
21
- * ```
22
- */
23
- class Token {
24
- private _position: number = -1;
25
- private _type: TokenType;
26
- private _value: string | null;
27
- private _case_sensitive_value: string | null = null;
28
- private _can_be_identifier: boolean = false;
29
-
30
- /**
31
- * Creates a new Token instance.
32
- *
33
- * @param type - The type of the token
34
- * @param value - The optional value associated with the token
35
- */
36
- constructor(type: TokenType, value: string | null = null) {
37
- this._type = type;
38
- this._value = value;
39
- this._can_be_identifier = StringUtils.can_be_identifier(value || "");
40
- }
41
-
42
- /**
43
- * Checks if this token equals another token.
44
- *
45
- * @param other - The token to compare against
46
- * @returns True if tokens are equal, false otherwise
47
- */
48
- public equals(other: Token): boolean {
49
- if (this._type === TokenType.IDENTIFIER && other.type === TokenType.IDENTIFIER) {
50
- return true; // Identifier values are not compared
51
- }
52
- return this._type === other.type && this._value === other.value;
53
- }
54
-
55
- public set position(position: number) {
56
- this._position = position;
57
- }
58
-
59
- public get position(): number {
60
- return this._position;
61
- }
62
-
63
- public get type(): TokenType {
64
- return this._type;
65
- }
66
-
67
- public get value(): string | null {
68
- return this._case_sensitive_value || this._value;
69
- }
70
-
71
- public set case_sensitive_value(value: string) {
72
- this._case_sensitive_value = value;
73
- }
74
-
75
- public get can_be_identifier(): boolean {
76
- return this._can_be_identifier;
77
- }
78
-
79
- public get node(): ASTNode {
80
- return TokenToNode.convert(this);
81
- }
82
-
83
- public toString(): string {
84
- return `${this._type} ${this._value}`;
85
- }
86
-
87
- // Comment tokens
88
-
89
- public static COMMENT(comment: string): Token {
90
- return new Token(TokenType.COMMENT, comment);
91
- }
92
-
93
- public isComment(): boolean {
94
- return this._type === TokenType.COMMENT;
95
- }
96
-
97
- // Identifier token
98
-
99
- public static IDENTIFIER(value: string): Token {
100
- return new Token(TokenType.IDENTIFIER, value);
101
- }
102
-
103
- public isIdentifier(): boolean {
104
- return this._type === TokenType.IDENTIFIER || this._type === TokenType.BACKTICK_STRING;
105
- }
106
-
107
- public isIdentifierOrKeyword(): boolean {
108
- return this.isIdentifier() || (this.isKeyword() && !this.isKeywordThatCannotBeIdentifier());
109
- }
110
-
111
- // String token
112
-
113
- public static STRING(value: string, quoteChar: string = '"'): Token {
114
- const unquoted = StringUtils.unquote(value);
115
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
116
- return new Token(TokenType.STRING, unescaped);
117
- }
118
-
119
- public isString(): boolean {
120
- return this._type === TokenType.STRING || this._type === TokenType.BACKTICK_STRING;
121
- }
122
-
123
- public static BACKTICK_STRING(value: string, quoteChar: string = '"'): Token {
124
- const unquoted = StringUtils.unquote(value);
125
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
126
- return new Token(TokenType.BACKTICK_STRING, unescaped);
127
- }
128
-
129
- public static F_STRING(value: string, quoteChar: string = '"'): Token {
130
- const unquoted = StringUtils.unquote(value);
131
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
132
- const fstring = StringUtils.removeEscapedBraces(unescaped);
133
- return new Token(TokenType.F_STRING, fstring);
134
- }
135
-
136
- public isFString(): boolean {
137
- return this._type === TokenType.F_STRING;
138
- }
139
-
140
- // Number token
141
-
142
- public static NUMBER(value: string): Token {
143
- return new Token(TokenType.NUMBER, value);
144
- }
145
-
146
- public isNumber(): boolean {
147
- return this._type === TokenType.NUMBER;
148
- }
149
-
150
- // Boolean token
151
-
152
- public static BOOLEAN(value: string): Token {
153
- return new Token(TokenType.BOOLEAN, value);
154
- }
155
-
156
- public isBoolean(): boolean {
157
- return (
158
- this._type === TokenType.BOOLEAN && (this._value === "TRUE" || this._value === "FALSE")
159
- );
160
- }
161
-
162
- // Symbol tokens
163
-
164
- public static get LEFT_PARENTHESIS(): Token {
165
- return new Token(TokenType.SYMBOL, Symbol.LEFT_PARENTHESIS);
166
- }
167
-
168
- public isLeftParenthesis(): boolean {
169
- return this._type === TokenType.SYMBOL && this._value === Symbol.LEFT_PARENTHESIS;
170
- }
171
-
172
- public static get RIGHT_PARENTHESIS(): Token {
173
- return new Token(TokenType.SYMBOL, Symbol.RIGHT_PARENTHESIS);
174
- }
175
-
176
- public isRightParenthesis(): boolean {
177
- return this._type === TokenType.SYMBOL && this._value === Symbol.RIGHT_PARENTHESIS;
178
- }
179
-
180
- public static get COMMA(): Token {
181
- return new Token(TokenType.SYMBOL, Symbol.COMMA);
182
- }
183
-
184
- public isComma(): boolean {
185
- return this._type === TokenType.SYMBOL && this._value === Symbol.COMMA;
186
- }
187
-
188
- public static get DOT(): Token {
189
- return new Token(TokenType.SYMBOL, Symbol.DOT);
190
- }
191
-
192
- public isDot(): boolean {
193
- return this._type === TokenType.SYMBOL && this._value === Symbol.DOT;
194
- }
195
-
196
- public static get COLON(): Token {
197
- return new Token(TokenType.SYMBOL, Symbol.COLON);
198
- }
199
-
200
- public isColon(): boolean {
201
- return this._type === TokenType.SYMBOL && this._value === Symbol.COLON;
202
- }
203
-
204
- public static get OPENING_BRACE(): Token {
205
- return new Token(TokenType.SYMBOL, Symbol.OPENING_BRACE);
206
- }
207
-
208
- public isOpeningBrace(): boolean {
209
- return this._type === TokenType.SYMBOL && this._value === Symbol.OPENING_BRACE;
210
- }
211
-
212
- public static get CLOSING_BRACE(): Token {
213
- return new Token(TokenType.SYMBOL, Symbol.CLOSING_BRACE);
214
- }
215
-
216
- public isClosingBrace(): boolean {
217
- return this._type === TokenType.SYMBOL && this._value === Symbol.CLOSING_BRACE;
218
- }
219
-
220
- public static get OPENING_BRACKET(): Token {
221
- return new Token(TokenType.SYMBOL, Symbol.OPENING_BRACKET);
222
- }
223
-
224
- public isOpeningBracket(): boolean {
225
- return this._type === TokenType.SYMBOL && this._value === Symbol.OPENING_BRACKET;
226
- }
227
-
228
- public static get CLOSING_BRACKET(): Token {
229
- return new Token(TokenType.SYMBOL, Symbol.CLOSING_BRACKET);
230
- }
231
-
232
- public isClosingBracket(): boolean {
233
- return this._type === TokenType.SYMBOL && this._value === Symbol.CLOSING_BRACKET;
234
- }
235
-
236
- // Whitespace token
237
-
238
- public static get WHITESPACE(): Token {
239
- return new Token(TokenType.WHITESPACE);
240
- }
241
-
242
- public isWhitespace(): boolean {
243
- return this._type === TokenType.WHITESPACE;
244
- }
245
-
246
- // Operator tokens
247
-
248
- public isOperator(): boolean {
249
- return this._type === TokenType.OPERATOR;
250
- }
251
-
252
- public isUnaryOperator(): boolean {
253
- return this._type === TokenType.UNARY_OPERATOR;
254
- }
255
-
256
- public static get ADD(): Token {
257
- return new Token(TokenType.OPERATOR, Operator.ADD);
258
- }
259
-
260
- public isAdd(): boolean {
261
- return this._type === TokenType.OPERATOR && this._value === Operator.ADD;
262
- }
263
-
264
- public static get SUBTRACT(): Token {
265
- return new Token(TokenType.OPERATOR, Operator.SUBTRACT);
266
- }
267
-
268
- public isSubtract(): boolean {
269
- return this._type === TokenType.OPERATOR && this._value === Operator.SUBTRACT;
270
- }
271
-
272
- public isNegation(): boolean {
273
- return this.isSubtract();
274
- }
275
-
276
- public static get MULTIPLY(): Token {
277
- return new Token(TokenType.OPERATOR, Operator.MULTIPLY);
278
- }
279
-
280
- public isMultiply(): boolean {
281
- return this._type === TokenType.OPERATOR && this._value === Operator.MULTIPLY;
282
- }
283
-
284
- public static get DIVIDE(): Token {
285
- return new Token(TokenType.OPERATOR, Operator.DIVIDE);
286
- }
287
-
288
- public isDivide(): boolean {
289
- return this._type === TokenType.OPERATOR && this._value === Operator.DIVIDE;
290
- }
291
-
292
- public static get EXPONENT(): Token {
293
- return new Token(TokenType.OPERATOR, Operator.EXPONENT);
294
- }
295
-
296
- public isExponent(): boolean {
297
- return this._type === TokenType.OPERATOR && this._value === Operator.EXPONENT;
298
- }
299
-
300
- public static get MODULO(): Token {
301
- return new Token(TokenType.OPERATOR, Operator.MODULO);
302
- }
303
-
304
- public isModulo(): boolean {
305
- return this._type === TokenType.OPERATOR && this._value === Operator.MODULO;
306
- }
307
-
308
- public static get EQUALS(): Token {
309
- return new Token(TokenType.OPERATOR, Operator.EQUALS);
310
- }
311
-
312
- public isEquals(): boolean {
313
- return this._type === TokenType.OPERATOR && this._value === Operator.EQUALS;
314
- }
315
-
316
- public static get NOT_EQUALS(): Token {
317
- return new Token(TokenType.OPERATOR, Operator.NOT_EQUALS);
318
- }
319
-
320
- public isNotEquals(): boolean {
321
- return this._type === TokenType.OPERATOR && this._value === Operator.NOT_EQUALS;
322
- }
323
-
324
- public static get LESS_THAN(): Token {
325
- return new Token(TokenType.OPERATOR, Operator.LESS_THAN);
326
- }
327
-
328
- public isLessThan(): boolean {
329
- return this._type === TokenType.OPERATOR && this._value === Operator.LESS_THAN;
330
- }
331
-
332
- public static get LESS_THAN_OR_EQUAL(): Token {
333
- return new Token(TokenType.OPERATOR, Operator.LESS_THAN_OR_EQUAL);
334
- }
335
-
336
- public isLessThanOrEqual(): boolean {
337
- return this._type === TokenType.OPERATOR && this._value === Operator.LESS_THAN_OR_EQUAL;
338
- }
339
-
340
- public static get GREATER_THAN(): Token {
341
- return new Token(TokenType.OPERATOR, Operator.GREATER_THAN);
342
- }
343
-
344
- public isGreaterThan(): boolean {
345
- return this._type === TokenType.OPERATOR && this._value === Operator.GREATER_THAN;
346
- }
347
-
348
- public static get GREATER_THAN_OR_EQUAL(): Token {
349
- return new Token(TokenType.OPERATOR, Operator.GREATER_THAN_OR_EQUAL);
350
- }
351
-
352
- public isGreaterThanOrEqual(): boolean {
353
- return this._type === TokenType.OPERATOR && this._value === Operator.GREATER_THAN_OR_EQUAL;
354
- }
355
-
356
- public static get AND(): Token {
357
- return new Token(TokenType.OPERATOR, Operator.AND);
358
- }
359
-
360
- public isAnd(): boolean {
361
- return this._type === TokenType.OPERATOR && this._value === Operator.AND;
362
- }
363
-
364
- public static get OR(): Token {
365
- return new Token(TokenType.OPERATOR, Operator.OR);
366
- }
367
-
368
- public isOr(): boolean {
369
- return this._type === TokenType.OPERATOR && this._value === Operator.OR;
370
- }
371
-
372
- public static get NOT(): Token {
373
- return new Token(TokenType.UNARY_OPERATOR, Operator.NOT);
374
- }
375
-
376
- public isNot(): boolean {
377
- return this._type === TokenType.UNARY_OPERATOR && this._value === Operator.NOT;
378
- }
379
-
380
- public static get IS(): Token {
381
- return new Token(TokenType.OPERATOR, Operator.IS);
382
- }
383
-
384
- public isIs(): boolean {
385
- return this._type === TokenType.OPERATOR && this._value === Operator.IS;
386
- }
387
-
388
- // Keyword tokens
389
-
390
- public isKeyword(): boolean {
391
- return this._type === TokenType.KEYWORD;
392
- }
393
-
394
- public isKeywordThatCannotBeIdentifier(): boolean {
395
- return (
396
- this.isKeyword() &&
397
- (this.isNull() ||
398
- this.isCase() ||
399
- this.isWhen() ||
400
- this.isThen() ||
401
- this.isElse() ||
402
- this.isEnd())
403
- );
404
- }
405
-
406
- public static get WITH(): Token {
407
- return new Token(TokenType.KEYWORD, Keyword.WITH);
408
- }
409
-
410
- public isWith(): boolean {
411
- return this._type === TokenType.KEYWORD && this._value === Keyword.WITH;
412
- }
413
-
414
- public static get RETURN(): Token {
415
- return new Token(TokenType.KEYWORD, Keyword.RETURN);
416
- }
417
-
418
- public isReturn(): boolean {
419
- return this._type === TokenType.KEYWORD && this._value === Keyword.RETURN;
420
- }
421
-
422
- public static get LOAD(): Token {
423
- return new Token(TokenType.KEYWORD, Keyword.LOAD);
424
- }
425
-
426
- public isLoad(): boolean {
427
- return this._type === TokenType.KEYWORD && this._value === Keyword.LOAD;
428
- }
429
-
430
- public static get CALL(): Token {
431
- return new Token(TokenType.KEYWORD, Keyword.CALL);
432
- }
433
-
434
- public isCall(): boolean {
435
- return this._type === TokenType.KEYWORD && this._value === Keyword.CALL;
436
- }
437
-
438
- public static get YIELD(): Token {
439
- return new Token(TokenType.KEYWORD, Keyword.YIELD);
440
- }
441
-
442
- public isYield(): boolean {
443
- return this._type === TokenType.KEYWORD && this._value === Keyword.YIELD;
444
- }
445
-
446
- public static get JSON(): Token {
447
- return new Token(TokenType.KEYWORD, Keyword.JSON);
448
- }
449
-
450
- public isJSON(): boolean {
451
- return this._type === TokenType.KEYWORD && this._value === Keyword.JSON;
452
- }
453
-
454
- public static get CSV(): Token {
455
- return new Token(TokenType.KEYWORD, Keyword.CSV);
456
- }
457
-
458
- public isCSV(): boolean {
459
- return this._type === TokenType.KEYWORD && this._value === Keyword.CSV;
460
- }
461
-
462
- public static get TEXT(): Token {
463
- return new Token(TokenType.KEYWORD, Keyword.TEXT);
464
- }
465
-
466
- public isText(): boolean {
467
- return this._type === TokenType.KEYWORD && this._value === Keyword.TEXT;
468
- }
469
-
470
- public static get FROM(): Token {
471
- return new Token(TokenType.KEYWORD, Keyword.FROM);
472
- }
473
-
474
- public isFrom(): boolean {
475
- return this._type === TokenType.KEYWORD && this._value === Keyword.FROM;
476
- }
477
-
478
- public static get HEADERS(): Token {
479
- return new Token(TokenType.KEYWORD, Keyword.HEADERS);
480
- }
481
-
482
- public isHeaders(): boolean {
483
- return this._type === TokenType.KEYWORD && this._value === Keyword.HEADERS;
484
- }
485
-
486
- public static get POST(): Token {
487
- return new Token(TokenType.KEYWORD, Keyword.POST);
488
- }
489
-
490
- public isPost(): boolean {
491
- return this._type === TokenType.KEYWORD && this._value === Keyword.POST;
492
- }
493
-
494
- public static get UNWIND(): Token {
495
- return new Token(TokenType.KEYWORD, Keyword.UNWIND);
496
- }
497
-
498
- public isUnwind(): boolean {
499
- return this._type === TokenType.KEYWORD && this._value === Keyword.UNWIND;
500
- }
501
-
502
- public static get MATCH(): Token {
503
- return new Token(TokenType.KEYWORD, Keyword.MATCH);
504
- }
505
-
506
- public isMatch(): boolean {
507
- return this._type === TokenType.KEYWORD && this._value === Keyword.MATCH;
508
- }
509
-
510
- public static get OPTIONAL(): Token {
511
- return new Token(TokenType.KEYWORD, Keyword.OPTIONAL);
512
- }
513
-
514
- public isOptional(): boolean {
515
- return this._type === TokenType.KEYWORD && this._value === Keyword.OPTIONAL;
516
- }
517
-
518
- public static get AS(): Token {
519
- return new Token(TokenType.KEYWORD, Keyword.AS);
520
- }
521
-
522
- public isAs(): boolean {
523
- return this._type === TokenType.KEYWORD && this._value === Keyword.AS;
524
- }
525
-
526
- public static get WHERE(): Token {
527
- return new Token(TokenType.KEYWORD, Keyword.WHERE);
528
- }
529
-
530
- public isWhere(): boolean {
531
- return this._type === TokenType.KEYWORD && this._value === Keyword.WHERE;
532
- }
533
-
534
- public static get MERGE(): Token {
535
- return new Token(TokenType.KEYWORD, Keyword.MERGE);
536
- }
537
-
538
- public isMerge(): boolean {
539
- return this._type === TokenType.KEYWORD && this._value === Keyword.MERGE;
540
- }
541
-
542
- public static get CREATE(): Token {
543
- return new Token(TokenType.KEYWORD, Keyword.CREATE);
544
- }
545
-
546
- public isCreate(): boolean {
547
- return this._type === TokenType.KEYWORD && this._value === Keyword.CREATE;
548
- }
549
-
550
- public static get VIRTUAL(): Token {
551
- return new Token(TokenType.KEYWORD, Keyword.VIRTUAL);
552
- }
553
-
554
- public isVirtual(): boolean {
555
- return this._type === TokenType.KEYWORD && this._value === Keyword.VIRTUAL;
556
- }
557
-
558
- public static get DELETE(): Token {
559
- return new Token(TokenType.KEYWORD, Keyword.DELETE);
560
- }
561
-
562
- public isDelete(): boolean {
563
- return this._type === TokenType.KEYWORD && this._value === Keyword.DELETE;
564
- }
565
-
566
- public static get SET(): Token {
567
- return new Token(TokenType.KEYWORD, Keyword.SET);
568
- }
569
-
570
- public isSet(): boolean {
571
- return this._type === TokenType.KEYWORD && this._value === Keyword.SET;
572
- }
573
-
574
- public static get REMOVE(): Token {
575
- return new Token(TokenType.KEYWORD, Keyword.REMOVE);
576
- }
577
-
578
- public isRemove(): boolean {
579
- return this._type === TokenType.KEYWORD && this._value === Keyword.REMOVE;
580
- }
581
-
582
- public static get CASE(): Token {
583
- return new Token(TokenType.KEYWORD, Keyword.CASE);
584
- }
585
-
586
- public isCase(): boolean {
587
- return this._type === TokenType.KEYWORD && this._value === Keyword.CASE;
588
- }
589
-
590
- public static get WHEN(): Token {
591
- return new Token(TokenType.KEYWORD, Keyword.WHEN);
592
- }
593
-
594
- public isWhen(): boolean {
595
- return this._type === TokenType.KEYWORD && this._value === Keyword.WHEN;
596
- }
597
-
598
- public static get THEN(): Token {
599
- return new Token(TokenType.KEYWORD, Keyword.THEN);
600
- }
601
-
602
- public isThen(): boolean {
603
- return this._type === TokenType.KEYWORD && this._value === Keyword.THEN;
604
- }
605
-
606
- public static get ELSE(): Token {
607
- return new Token(TokenType.KEYWORD, Keyword.ELSE);
608
- }
609
-
610
- public isElse(): boolean {
611
- return this._type === TokenType.KEYWORD && this._value === Keyword.ELSE;
612
- }
613
-
614
- public static get END(): Token {
615
- return new Token(TokenType.KEYWORD, Keyword.END);
616
- }
617
-
618
- public isEnd(): boolean {
619
- return this._type === TokenType.KEYWORD && this._value === Keyword.END;
620
- }
621
-
622
- public static get NULL(): Token {
623
- return new Token(TokenType.KEYWORD, Keyword.NULL);
624
- }
625
-
626
- public isNull(): boolean {
627
- return this._type === TokenType.KEYWORD && this._value === Keyword.NULL;
628
- }
629
-
630
- public static get IN(): Token {
631
- return new Token(TokenType.KEYWORD, Keyword.IN);
632
- }
633
-
634
- public isIn(): boolean {
635
- return this._type === TokenType.KEYWORD && this._value === Keyword.IN;
636
- }
637
-
638
- public static get CONTAINS(): Token {
639
- return new Token(TokenType.KEYWORD, Keyword.CONTAINS);
640
- }
641
-
642
- public isContains(): boolean {
643
- return this._type === TokenType.KEYWORD && this._value === Keyword.CONTAINS;
644
- }
645
-
646
- public static get STARTS(): Token {
647
- return new Token(TokenType.KEYWORD, Keyword.STARTS);
648
- }
649
-
650
- public isStarts(): boolean {
651
- return this._type === TokenType.KEYWORD && this._value === Keyword.STARTS;
652
- }
653
-
654
- public static get ENDS(): Token {
655
- return new Token(TokenType.KEYWORD, Keyword.ENDS);
656
- }
657
-
658
- public isEnds(): boolean {
659
- return this._type === TokenType.KEYWORD && this._value === Keyword.ENDS;
660
- }
661
-
662
- public static get PIPE(): Token {
663
- return new Token(TokenType.KEYWORD, Operator.PIPE);
664
- }
665
-
666
- public isPipe(): boolean {
667
- return this._type === TokenType.KEYWORD && this._value === Operator.PIPE;
668
- }
669
-
670
- public static get DISTINCT(): Token {
671
- return new Token(TokenType.KEYWORD, Keyword.DISTINCT);
672
- }
673
-
674
- public isDistinct(): boolean {
675
- return this._type === TokenType.KEYWORD && this._value === Keyword.DISTINCT;
676
- }
677
-
678
- public static get ORDER(): Token {
679
- return new Token(TokenType.KEYWORD, Keyword.ORDER);
680
- }
681
-
682
- public isOrder(): boolean {
683
- return this._type === TokenType.KEYWORD && this._value === Keyword.ORDER;
684
- }
685
-
686
- public static get BY(): Token {
687
- return new Token(TokenType.KEYWORD, Keyword.BY);
688
- }
689
-
690
- public isByKeyword(): boolean {
691
- return this._type === TokenType.KEYWORD && this._value === Keyword.BY;
692
- }
693
-
694
- public static get ASC(): Token {
695
- return new Token(TokenType.KEYWORD, Keyword.ASC);
696
- }
697
-
698
- public isAsc(): boolean {
699
- return this._type === TokenType.KEYWORD && this._value === Keyword.ASC;
700
- }
701
-
702
- public static get DESC(): Token {
703
- return new Token(TokenType.KEYWORD, Keyword.DESC);
704
- }
705
-
706
- public isDesc(): boolean {
707
- return this._type === TokenType.KEYWORD && this._value === Keyword.DESC;
708
- }
709
-
710
- public static get LIMIT(): Token {
711
- return new Token(TokenType.KEYWORD, Keyword.LIMIT);
712
- }
713
-
714
- public isLimit(): boolean {
715
- return this._type === TokenType.KEYWORD && this._value === Keyword.LIMIT;
716
- }
717
-
718
- public static get UNION(): Token {
719
- return new Token(TokenType.KEYWORD, Keyword.UNION);
720
- }
721
-
722
- public isUnion(): boolean {
723
- return this._type === TokenType.KEYWORD && this._value === Keyword.UNION;
724
- }
725
-
726
- public static get ALL(): Token {
727
- return new Token(TokenType.KEYWORD, Keyword.ALL);
728
- }
729
-
730
- public isAll(): boolean {
731
- return this._type === TokenType.KEYWORD && this._value === Keyword.ALL;
732
- }
733
-
734
- // End of file token
735
-
736
- public static get EOF(): Token {
737
- return new Token(TokenType.EOF);
738
- }
739
-
740
- public isEOF(): boolean {
741
- return this._type === TokenType.EOF;
742
- }
743
-
744
- // Other utility methods
745
-
746
- public isOperand(): boolean {
747
- return this.isNumber() || this.isBoolean() || this.isString() || this.isNull();
748
- }
749
-
750
- public isWhitespaceOrComment(): boolean {
751
- return this.isWhitespace() || this.isComment();
752
- }
753
-
754
- public isSymbol(): boolean {
755
- return this._type === TokenType.SYMBOL;
756
- }
757
-
758
- // Static class method lookup via string
759
- public static method(name: string): Token | undefined {
760
- return (Token as any)[name.toUpperCase()] as Token | undefined;
761
- }
762
- }
763
-
764
- export default Token;