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