flowquery 1.0.3 → 1.0.6

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 (268) hide show
  1. package/README.md +182 -0
  2. package/dist/compute/runner.d.ts +81 -0
  3. package/dist/compute/runner.d.ts.map +1 -0
  4. package/dist/extensibility.d.ts +9 -0
  5. package/dist/extensibility.d.ts.map +1 -0
  6. package/dist/extensibility.js +25 -0
  7. package/dist/extensibility.js.map +1 -0
  8. package/dist/flowquery.min.js +1 -1
  9. package/dist/index.browser.d.ts +10 -0
  10. package/dist/index.browser.d.ts.map +1 -0
  11. package/dist/index.d.ts +9 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.node.d.ts +14 -0
  14. package/dist/index.node.d.ts.map +1 -0
  15. package/dist/io/command_line.d.ts +28 -0
  16. package/dist/io/command_line.d.ts.map +1 -0
  17. package/dist/parsing/alias.d.ts +10 -0
  18. package/dist/parsing/alias.d.ts.map +1 -0
  19. package/dist/parsing/alias_option.d.ts +6 -0
  20. package/dist/parsing/alias_option.d.ts.map +1 -0
  21. package/dist/parsing/ast_node.d.ts +100 -0
  22. package/dist/parsing/ast_node.d.ts.map +1 -0
  23. package/dist/parsing/base_parser.d.ts +49 -0
  24. package/dist/parsing/base_parser.d.ts.map +1 -0
  25. package/dist/parsing/components/csv.d.ts +6 -0
  26. package/dist/parsing/components/csv.d.ts.map +1 -0
  27. package/dist/parsing/components/from.d.ts +7 -0
  28. package/dist/parsing/components/from.d.ts.map +1 -0
  29. package/dist/parsing/components/headers.d.ts +7 -0
  30. package/dist/parsing/components/headers.d.ts.map +1 -0
  31. package/dist/parsing/components/json.d.ts +6 -0
  32. package/dist/parsing/components/json.d.ts.map +1 -0
  33. package/dist/parsing/components/null.d.ts +6 -0
  34. package/dist/parsing/components/null.d.ts.map +1 -0
  35. package/dist/parsing/components/post.d.ts +6 -0
  36. package/dist/parsing/components/post.d.ts.map +1 -0
  37. package/dist/parsing/components/text.d.ts +6 -0
  38. package/dist/parsing/components/text.d.ts.map +1 -0
  39. package/dist/parsing/context.d.ts +38 -0
  40. package/dist/parsing/context.d.ts.map +1 -0
  41. package/dist/parsing/data_structures/associative_array.d.ts +28 -0
  42. package/dist/parsing/data_structures/associative_array.d.ts.map +1 -0
  43. package/dist/parsing/data_structures/json_array.d.ts +26 -0
  44. package/dist/parsing/data_structures/json_array.d.ts.map +1 -0
  45. package/dist/parsing/data_structures/key_value_pair.d.ts +25 -0
  46. package/dist/parsing/data_structures/key_value_pair.d.ts.map +1 -0
  47. package/dist/parsing/data_structures/lookup.d.ts +25 -0
  48. package/dist/parsing/data_structures/lookup.d.ts.map +1 -0
  49. package/dist/parsing/data_structures/range_lookup.d.ts +14 -0
  50. package/dist/parsing/data_structures/range_lookup.d.ts.map +1 -0
  51. package/dist/parsing/expressions/expression.d.ts +53 -0
  52. package/dist/parsing/expressions/expression.d.ts.map +1 -0
  53. package/dist/parsing/expressions/f_string.d.ts +21 -0
  54. package/dist/parsing/expressions/f_string.d.ts.map +1 -0
  55. package/dist/parsing/expressions/identifier.d.ts +17 -0
  56. package/dist/parsing/expressions/identifier.d.ts.map +1 -0
  57. package/dist/parsing/expressions/number.d.ts +25 -0
  58. package/dist/parsing/expressions/number.d.ts.map +1 -0
  59. package/dist/parsing/expressions/operator.d.ts +79 -0
  60. package/dist/parsing/expressions/operator.d.ts.map +1 -0
  61. package/dist/parsing/expressions/reference.d.ts +29 -0
  62. package/dist/parsing/expressions/reference.d.ts.map +1 -0
  63. package/dist/parsing/expressions/string.d.ts +23 -0
  64. package/dist/parsing/expressions/string.d.ts.map +1 -0
  65. package/dist/parsing/functions/aggregate_function.d.ts +42 -0
  66. package/dist/parsing/functions/aggregate_function.d.ts.map +1 -0
  67. package/dist/parsing/functions/async_function.d.ts +52 -0
  68. package/dist/parsing/functions/async_function.d.ts.map +1 -0
  69. package/dist/parsing/functions/avg.d.ts +15 -0
  70. package/dist/parsing/functions/avg.d.ts.map +1 -0
  71. package/dist/parsing/functions/avg.js +20 -2
  72. package/dist/parsing/functions/avg.js.map +1 -1
  73. package/dist/parsing/functions/collect.d.ts +21 -0
  74. package/dist/parsing/functions/collect.d.ts.map +1 -0
  75. package/dist/parsing/functions/collect.js +20 -2
  76. package/dist/parsing/functions/collect.js.map +1 -1
  77. package/dist/parsing/functions/extensibility/index.d.ts +37 -0
  78. package/dist/parsing/functions/extensibility/index.d.ts.map +1 -0
  79. package/dist/parsing/functions/extensibility/index.js +50 -0
  80. package/dist/parsing/functions/extensibility/index.js.map +1 -0
  81. package/dist/parsing/functions/function.d.ts +36 -0
  82. package/dist/parsing/functions/function.d.ts.map +1 -0
  83. package/dist/parsing/functions/function_factory.d.ts +174 -0
  84. package/dist/parsing/functions/function_factory.d.ts.map +1 -0
  85. package/dist/parsing/functions/function_factory.js +44 -47
  86. package/dist/parsing/functions/function_factory.js.map +1 -1
  87. package/dist/parsing/functions/function_metadata.d.ts +134 -0
  88. package/dist/parsing/functions/function_metadata.d.ts.map +1 -0
  89. package/dist/parsing/functions/function_metadata.js +103 -153
  90. package/dist/parsing/functions/function_metadata.js.map +1 -1
  91. package/dist/parsing/functions/functions.d.ts +21 -0
  92. package/dist/parsing/functions/functions.d.ts.map +1 -0
  93. package/dist/parsing/functions/functions.js +37 -2
  94. package/dist/parsing/functions/functions.js.map +1 -1
  95. package/dist/parsing/functions/join.d.ts +9 -0
  96. package/dist/parsing/functions/join.d.ts.map +1 -0
  97. package/dist/parsing/functions/join.js +21 -2
  98. package/dist/parsing/functions/join.js.map +1 -1
  99. package/dist/parsing/functions/predicate_function.d.ts +19 -0
  100. package/dist/parsing/functions/predicate_function.d.ts.map +1 -0
  101. package/dist/parsing/functions/predicate_function.js +3 -0
  102. package/dist/parsing/functions/predicate_function.js.map +1 -1
  103. package/dist/parsing/functions/predicate_sum.d.ts +7 -0
  104. package/dist/parsing/functions/predicate_sum.d.ts.map +1 -0
  105. package/dist/parsing/functions/predicate_sum.js +23 -2
  106. package/dist/parsing/functions/predicate_sum.js.map +1 -1
  107. package/dist/parsing/functions/rand.d.ts +7 -0
  108. package/dist/parsing/functions/rand.d.ts.map +1 -0
  109. package/dist/parsing/functions/rand.js +18 -2
  110. package/dist/parsing/functions/rand.js.map +1 -1
  111. package/dist/parsing/functions/range.d.ts +7 -0
  112. package/dist/parsing/functions/range.d.ts.map +1 -0
  113. package/dist/parsing/functions/range.js +21 -2
  114. package/dist/parsing/functions/range.js.map +1 -1
  115. package/dist/parsing/functions/reducer_element.d.ts +6 -0
  116. package/dist/parsing/functions/reducer_element.d.ts.map +1 -0
  117. package/dist/parsing/functions/replace.d.ts +7 -0
  118. package/dist/parsing/functions/replace.d.ts.map +1 -0
  119. package/dist/parsing/functions/replace.js +22 -2
  120. package/dist/parsing/functions/replace.js.map +1 -1
  121. package/dist/parsing/functions/round.d.ts +7 -0
  122. package/dist/parsing/functions/round.d.ts.map +1 -0
  123. package/dist/parsing/functions/round.js +20 -2
  124. package/dist/parsing/functions/round.js.map +1 -1
  125. package/dist/parsing/functions/size.d.ts +7 -0
  126. package/dist/parsing/functions/size.d.ts.map +1 -0
  127. package/dist/parsing/functions/size.js +20 -2
  128. package/dist/parsing/functions/size.js.map +1 -1
  129. package/dist/parsing/functions/split.d.ts +9 -0
  130. package/dist/parsing/functions/split.d.ts.map +1 -0
  131. package/dist/parsing/functions/split.js +21 -2
  132. package/dist/parsing/functions/split.js.map +1 -1
  133. package/dist/parsing/functions/stringify.d.ts +9 -0
  134. package/dist/parsing/functions/stringify.d.ts.map +1 -0
  135. package/dist/parsing/functions/stringify.js +20 -2
  136. package/dist/parsing/functions/stringify.js.map +1 -1
  137. package/dist/parsing/functions/sum.d.ts +14 -0
  138. package/dist/parsing/functions/sum.d.ts.map +1 -0
  139. package/dist/parsing/functions/sum.js +20 -2
  140. package/dist/parsing/functions/sum.js.map +1 -1
  141. package/dist/parsing/functions/to_json.d.ts +7 -0
  142. package/dist/parsing/functions/to_json.d.ts.map +1 -0
  143. package/dist/parsing/functions/to_json.js +20 -2
  144. package/dist/parsing/functions/to_json.js.map +1 -1
  145. package/dist/parsing/functions/value_holder.d.ts +8 -0
  146. package/dist/parsing/functions/value_holder.d.ts.map +1 -0
  147. package/dist/parsing/logic/case.d.ts +7 -0
  148. package/dist/parsing/logic/case.d.ts.map +1 -0
  149. package/dist/parsing/logic/else.d.ts +7 -0
  150. package/dist/parsing/logic/else.d.ts.map +1 -0
  151. package/dist/parsing/logic/end.d.ts +6 -0
  152. package/dist/parsing/logic/end.d.ts.map +1 -0
  153. package/dist/parsing/logic/then.d.ts +7 -0
  154. package/dist/parsing/logic/then.d.ts.map +1 -0
  155. package/dist/parsing/logic/when.d.ts +7 -0
  156. package/dist/parsing/logic/when.d.ts.map +1 -0
  157. package/dist/parsing/operations/aggregated_return.d.ts +8 -0
  158. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -0
  159. package/dist/parsing/operations/aggregated_with.d.ts +8 -0
  160. package/dist/parsing/operations/aggregated_with.d.ts.map +1 -0
  161. package/dist/parsing/operations/group_by.d.ts +35 -0
  162. package/dist/parsing/operations/group_by.d.ts.map +1 -0
  163. package/dist/parsing/operations/limit.d.ts +10 -0
  164. package/dist/parsing/operations/limit.d.ts.map +1 -0
  165. package/dist/parsing/operations/load.d.ts +48 -0
  166. package/dist/parsing/operations/load.d.ts.map +1 -0
  167. package/dist/parsing/operations/operation.d.ts +39 -0
  168. package/dist/parsing/operations/operation.d.ts.map +1 -0
  169. package/dist/parsing/operations/projection.d.ts +8 -0
  170. package/dist/parsing/operations/projection.d.ts.map +1 -0
  171. package/dist/parsing/operations/return.d.ts +23 -0
  172. package/dist/parsing/operations/return.d.ts.map +1 -0
  173. package/dist/parsing/operations/unwind.d.ts +12 -0
  174. package/dist/parsing/operations/unwind.d.ts.map +1 -0
  175. package/dist/parsing/operations/where.d.ts +26 -0
  176. package/dist/parsing/operations/where.d.ts.map +1 -0
  177. package/dist/parsing/operations/with.d.ts +17 -0
  178. package/dist/parsing/operations/with.d.ts.map +1 -0
  179. package/dist/parsing/parser.d.ts +66 -0
  180. package/dist/parsing/parser.d.ts.map +1 -0
  181. package/dist/parsing/parser.js +2 -3
  182. package/dist/parsing/parser.js.map +1 -1
  183. package/dist/parsing/token_to_node.d.ts +7 -0
  184. package/dist/parsing/token_to_node.d.ts.map +1 -0
  185. package/dist/tokenization/keyword.d.ts +43 -0
  186. package/dist/tokenization/keyword.d.ts.map +1 -0
  187. package/dist/tokenization/operator.d.ts +22 -0
  188. package/dist/tokenization/operator.d.ts.map +1 -0
  189. package/dist/tokenization/string_walker.d.ts +55 -0
  190. package/dist/tokenization/string_walker.d.ts.map +1 -0
  191. package/dist/tokenization/symbol.d.ts +15 -0
  192. package/dist/tokenization/symbol.d.ts.map +1 -0
  193. package/dist/tokenization/token.d.ts +176 -0
  194. package/dist/tokenization/token.d.ts.map +1 -0
  195. package/dist/tokenization/token_mapper.d.ts +40 -0
  196. package/dist/tokenization/token_mapper.d.ts.map +1 -0
  197. package/dist/tokenization/token_type.d.ts +16 -0
  198. package/dist/tokenization/token_type.d.ts.map +1 -0
  199. package/dist/tokenization/tokenizer.d.ts +45 -0
  200. package/dist/tokenization/tokenizer.d.ts.map +1 -0
  201. package/dist/tokenization/trie.d.ts +41 -0
  202. package/dist/tokenization/trie.d.ts.map +1 -0
  203. package/dist/utils/object_utils.d.ts +15 -0
  204. package/dist/utils/object_utils.d.ts.map +1 -0
  205. package/dist/utils/string_utils.d.ts +51 -0
  206. package/dist/utils/string_utils.d.ts.map +1 -0
  207. package/docs/flowquery.min.js +1 -1
  208. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +1 -1
  209. package/misc/apps/RAG/.env.example +14 -0
  210. package/misc/apps/RAG/README.md +0 -7
  211. package/misc/apps/RAG/package.json +16 -7
  212. package/misc/apps/RAG/public/index.html +18 -0
  213. package/misc/apps/RAG/src/App.css +42 -0
  214. package/misc/apps/RAG/src/App.tsx +50 -0
  215. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +245 -0
  216. package/misc/apps/RAG/src/components/ChatContainer.css +67 -0
  217. package/misc/apps/RAG/src/components/ChatContainer.tsx +239 -0
  218. package/misc/apps/RAG/src/components/ChatInput.css +23 -0
  219. package/misc/apps/RAG/src/components/ChatInput.tsx +62 -0
  220. package/misc/apps/RAG/src/components/ChatMessage.css +136 -0
  221. package/misc/apps/RAG/src/components/ChatMessage.tsx +152 -0
  222. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +390 -0
  223. package/misc/apps/RAG/src/components/FlowQueryRunner.css +104 -0
  224. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +332 -0
  225. package/misc/apps/RAG/src/components/index.ts +15 -0
  226. package/misc/apps/RAG/src/index.tsx +17 -0
  227. package/misc/apps/RAG/src/plugins/PluginRegistry.ts +136 -0
  228. package/misc/apps/RAG/src/plugins/README.md +139 -0
  229. package/misc/apps/RAG/src/plugins/index.ts +72 -0
  230. package/misc/apps/RAG/src/plugins/loaders/CatFacts.ts +79 -0
  231. package/misc/apps/RAG/src/plugins/loaders/FetchJson.ts +71 -0
  232. package/misc/apps/RAG/src/plugins/loaders/Llm.ts +441 -0
  233. package/misc/apps/RAG/src/plugins/loaders/MockData.ts +161 -0
  234. package/misc/apps/RAG/src/plugins/types.ts +52 -0
  235. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +385 -0
  236. package/misc/apps/RAG/src/prompts/index.ts +10 -0
  237. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +131 -0
  238. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +203 -0
  239. package/misc/apps/RAG/src/utils/index.ts +9 -0
  240. package/misc/apps/RAG/tsconfig.json +4 -2
  241. package/misc/apps/RAG/webpack.config.js +23 -12
  242. package/package.json +7 -1
  243. package/src/extensibility.ts +9 -0
  244. package/src/parsing/functions/avg.ts +10 -0
  245. package/src/parsing/functions/collect.ts +10 -0
  246. package/src/parsing/functions/extensibility/index.ts +54 -0
  247. package/src/parsing/functions/function_factory.ts +51 -48
  248. package/src/parsing/functions/function_metadata.ts +132 -156
  249. package/src/parsing/functions/functions.ts +27 -0
  250. package/src/parsing/functions/join.ts +11 -0
  251. package/src/parsing/functions/predicate_function.ts +4 -0
  252. package/src/parsing/functions/predicate_sum.ts +13 -0
  253. package/src/parsing/functions/rand.ts +8 -0
  254. package/src/parsing/functions/range.ts +11 -0
  255. package/src/parsing/functions/replace.ts +12 -0
  256. package/src/parsing/functions/round.ts +10 -0
  257. package/src/parsing/functions/size.ts +10 -0
  258. package/src/parsing/functions/split.ts +11 -0
  259. package/src/parsing/functions/stringify.ts +10 -0
  260. package/src/parsing/functions/sum.ts +10 -0
  261. package/src/parsing/functions/to_json.ts +10 -0
  262. package/src/parsing/parser.ts +2 -3
  263. package/tests/parsing/function_plugins.test.ts +11 -11
  264. package/tsconfig.json +4 -1
  265. package/dist/parsing/functions/predicate_function_factory.js +0 -19
  266. package/dist/parsing/functions/predicate_function_factory.js.map +0 -1
  267. package/misc/apps/RAG/src/index.ts +0 -20
  268. package/src/parsing/functions/predicate_function_factory.ts +0 -15
@@ -3,20 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const sum_1 = __importDefault(require("./sum"));
7
- const collect_1 = __importDefault(require("./collect"));
8
- const avg_1 = __importDefault(require("./avg"));
9
- const range_1 = __importDefault(require("./range"));
10
- const rand_1 = __importDefault(require("./rand"));
11
- const round_1 = __importDefault(require("./round"));
12
- const split_1 = __importDefault(require("./split"));
13
- const join_1 = __importDefault(require("./join"));
14
- const to_json_1 = __importDefault(require("./to_json"));
15
- const replace_1 = __importDefault(require("./replace"));
16
- const stringify_1 = __importDefault(require("./stringify"));
17
- const size_1 = __importDefault(require("./size"));
18
- const functions_1 = __importDefault(require("./functions"));
19
6
  const function_1 = __importDefault(require("./function"));
7
+ const predicate_function_1 = __importDefault(require("./predicate_function"));
8
+ // Import built-in functions to ensure their @FunctionDef decorators run
9
+ require("./sum");
10
+ require("./collect");
11
+ require("./avg");
12
+ require("./range");
13
+ require("./rand");
14
+ require("./round");
15
+ require("./split");
16
+ require("./join");
17
+ require("./to_json");
18
+ require("./replace");
19
+ require("./stringify");
20
+ require("./size");
21
+ require("./functions");
22
+ require("./predicate_sum");
20
23
  const function_metadata_1 = require("./function_metadata");
21
24
  /**
22
25
  * Factory for creating function instances by name.
@@ -143,8 +146,8 @@ class FunctionFactory {
143
146
  if (FunctionFactory.metadata.has(lowerName)) {
144
147
  return FunctionFactory.metadata.get(lowerName);
145
148
  }
146
- // Fall back to built-in metadata
147
- return function_metadata_1.BUILTIN_FUNCTION_METADATA.find(m => m.name === lowerName);
149
+ // Fall back to decorator-registered metadata
150
+ return (0, function_metadata_1.getFunctionMetadata)(lowerName);
148
151
  }
149
152
  /**
150
153
  * Lists all registered functions with their metadata.
@@ -156,9 +159,9 @@ class FunctionFactory {
156
159
  static listFunctions(options) {
157
160
  const result = [];
158
161
  const includeBuiltins = (options === null || options === void 0 ? void 0 : options.includeBuiltins) !== false;
159
- // Add built-in functions
162
+ // Add decorator-registered functions (built-ins)
160
163
  if (includeBuiltins) {
161
- for (const meta of function_metadata_1.BUILTIN_FUNCTION_METADATA) {
164
+ for (const meta of (0, function_metadata_1.getRegisteredFunctionMetadata)()) {
162
165
  if ((options === null || options === void 0 ? void 0 : options.category) && meta.category !== options.category)
163
166
  continue;
164
167
  if (options === null || options === void 0 ? void 0 : options.asyncOnly)
@@ -184,7 +187,7 @@ class FunctionFactory {
184
187
  * @returns Array of function names
185
188
  */
186
189
  static listFunctionNames() {
187
- const builtinNames = function_metadata_1.BUILTIN_FUNCTION_METADATA.map(m => m.name);
190
+ const builtinNames = (0, function_metadata_1.getRegisteredFunctionMetadata)().map(m => m.name);
188
191
  const pluginNames = Array.from(FunctionFactory.plugins.keys());
189
192
  const asyncNames = Array.from(FunctionFactory.asyncProviders.keys());
190
193
  return [...new Set([...builtinNames, ...pluginNames, ...asyncNames])];
@@ -211,36 +214,30 @@ class FunctionFactory {
211
214
  if (FunctionFactory.plugins.has(lowerName)) {
212
215
  return FunctionFactory.plugins.get(lowerName)();
213
216
  }
214
- switch (lowerName) {
215
- case "sum":
216
- return new sum_1.default();
217
- case "collect":
218
- return new collect_1.default();
219
- case "avg":
220
- return new avg_1.default();
221
- case "range":
222
- return new range_1.default();
223
- case "rand":
224
- return new rand_1.default();
225
- case "round":
226
- return new round_1.default();
227
- case "split":
228
- return new split_1.default();
229
- case "join":
230
- return new join_1.default();
231
- case "tojson":
232
- return new to_json_1.default();
233
- case "replace":
234
- return new replace_1.default();
235
- case "stringify":
236
- return new stringify_1.default();
237
- case "size":
238
- return new size_1.default();
239
- case "functions":
240
- return new functions_1.default();
241
- default:
242
- return new function_1.default(name);
217
+ // Check decorator-registered functions (built-ins use @FunctionDef)
218
+ const decoratorFactory = (0, function_metadata_1.getRegisteredFunctionFactory)(lowerName);
219
+ if (decoratorFactory) {
220
+ return decoratorFactory();
243
221
  }
222
+ // Unknown function - return generic Function instance
223
+ return new function_1.default(name);
224
+ }
225
+ /**
226
+ * Creates a predicate function instance by name.
227
+ * Predicate functions are used in WHERE clauses with quantifiers (e.g., ANY, ALL).
228
+ *
229
+ * @param name - The function name (case-insensitive)
230
+ * @returns A PredicateFunction instance of the appropriate type
231
+ */
232
+ static createPredicate(name) {
233
+ const lowerName = name.toLowerCase();
234
+ // Check decorator-registered predicate functions
235
+ const decoratorFactory = (0, function_metadata_1.getRegisteredFunctionFactory)(lowerName, 'predicate');
236
+ if (decoratorFactory) {
237
+ return decoratorFactory();
238
+ }
239
+ // Unknown predicate function - return generic PredicateFunction instance
240
+ return new predicate_function_1.default(name);
244
241
  }
245
242
  }
246
243
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"function_factory.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function_factory.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Category types for functions.
3
+ * Core categories: scalar, aggregate, predicate, async
4
+ * Additional categories for organization: string, math, data, etc.
5
+ */
6
+ export type FunctionCategory = "scalar" | "aggregate" | "predicate" | "async" | "string" | "math" | "data" | "introspection" | string;
7
+ /**
8
+ * Schema definition for function arguments and outputs.
9
+ * Compatible with JSON Schema for LLM consumption.
10
+ */
11
+ export interface ParameterSchema {
12
+ /** The parameter name */
13
+ name: string;
14
+ /** Description of the parameter */
15
+ description: string;
16
+ /** JSON Schema type: string, number, boolean, object, array, null */
17
+ type: "string" | "number" | "boolean" | "object" | "array" | "null" | string;
18
+ /** Whether the parameter is required (default: true) */
19
+ required?: boolean;
20
+ /** Default value if not provided */
21
+ default?: any;
22
+ /** For arrays, the schema of items */
23
+ items?: Omit<ParameterSchema, 'name' | 'required' | 'default'>;
24
+ /** For objects, the properties schema */
25
+ properties?: Record<string, Omit<ParameterSchema, 'name' | 'required'>>;
26
+ /** Enum of allowed values */
27
+ enum?: any[];
28
+ /** Example value */
29
+ example?: any;
30
+ }
31
+ /**
32
+ * Schema definition for function output.
33
+ */
34
+ export interface OutputSchema {
35
+ /** Description of the output */
36
+ description: string;
37
+ /** JSON Schema type */
38
+ type: "string" | "number" | "boolean" | "object" | "array" | "null" | string;
39
+ /** For arrays, the schema of items */
40
+ items?: Omit<OutputSchema, 'description'>;
41
+ /** For objects, the properties schema */
42
+ properties?: Record<string, Omit<ParameterSchema, 'name' | 'required'>>;
43
+ /** Example output value */
44
+ example?: any;
45
+ }
46
+ /**
47
+ * Metadata for a registered function, designed for LLM consumption.
48
+ */
49
+ export interface FunctionMetadata {
50
+ /** The function name */
51
+ name: string;
52
+ /** Human-readable description of what the function does */
53
+ description: string;
54
+ /** Category for grouping functions */
55
+ category?: FunctionCategory;
56
+ /** Array of parameter schemas */
57
+ parameters: ParameterSchema[];
58
+ /** Output schema */
59
+ output: OutputSchema;
60
+ /** Example usage in FlowQuery syntax */
61
+ examples?: string[];
62
+ /** Additional notes or caveats */
63
+ notes?: string;
64
+ /** Whether this is an async data provider (for LOAD operations) */
65
+ isAsyncProvider?: boolean;
66
+ }
67
+ /**
68
+ * Options for registering a sync function with metadata.
69
+ */
70
+ export interface RegisterFunctionOptions {
71
+ /** Factory function that creates the Function instance */
72
+ factory: () => any;
73
+ /** Function metadata for documentation */
74
+ metadata: FunctionMetadata;
75
+ }
76
+ /**
77
+ * Options for registering an async data provider with metadata.
78
+ */
79
+ export interface RegisterAsyncProviderOptions {
80
+ /** Async generator or function that returns data */
81
+ provider: (...args: any[]) => AsyncGenerator<any, void, unknown> | Promise<any>;
82
+ /** Function metadata for documentation */
83
+ metadata: FunctionMetadata;
84
+ }
85
+ /**
86
+ * Decorator options - metadata without the name (derived from class).
87
+ */
88
+ export type FunctionDefOptions = Omit<FunctionMetadata, 'name'>;
89
+ /**
90
+ * Class decorator that registers function metadata.
91
+ * The function name is derived from the class's constructor call to super().
92
+ *
93
+ * @param options - Function metadata (excluding name)
94
+ * @returns Class decorator
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * @FunctionDef({
99
+ * description: "Calculates the sum of numeric values",
100
+ * category: "aggregate",
101
+ * parameters: [{ name: "value", description: "Numeric value to sum", type: "number" }],
102
+ * output: { description: "Sum of all values", type: "number", example: 150 },
103
+ * examples: ["WITH [1, 2, 3] AS nums UNWIND nums AS n RETURN sum(n)"]
104
+ * })
105
+ * class Sum extends AggregateFunction { ... }
106
+ * ```
107
+ */
108
+ export declare function FunctionDef(options: FunctionDefOptions): <T extends new (...args: any[]) => any>(constructor: T) => T;
109
+ /**
110
+ * Gets all registered function metadata from decorators.
111
+ *
112
+ * @returns Array of function metadata
113
+ */
114
+ export declare function getRegisteredFunctionMetadata(): FunctionMetadata[];
115
+ /**
116
+ * Gets a registered function factory by name.
117
+ * Used by FunctionFactory to instantiate decorator-registered functions.
118
+ *
119
+ * @param name - Function name (case-insensitive)
120
+ * @param category - Optional category to disambiguate (e.g., 'predicate')
121
+ * @returns Factory function or undefined
122
+ */
123
+ export declare function getRegisteredFunctionFactory(name: string, category?: string): (() => any) | undefined;
124
+ /**
125
+ * Gets metadata for a specific function by name.
126
+ * If multiple functions share the same name (e.g., aggregate vs predicate),
127
+ * optionally specify the category to get the specific one.
128
+ *
129
+ * @param name - Function name (case-insensitive)
130
+ * @param category - Optional category to disambiguate
131
+ * @returns Function metadata or undefined
132
+ */
133
+ export declare function getFunctionMetadata(name: string, category?: string): FunctionMetadata | undefined;
134
+ //# sourceMappingURL=function_metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function_metadata.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/function_metadata.ts"],"names":[],"mappings":"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"}
@@ -1,159 +1,109 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BUILTIN_FUNCTION_METADATA = void 0;
3
+ exports.FunctionDef = FunctionDef;
4
+ exports.getRegisteredFunctionMetadata = getRegisteredFunctionMetadata;
5
+ exports.getRegisteredFunctionFactory = getRegisteredFunctionFactory;
6
+ exports.getFunctionMetadata = getFunctionMetadata;
4
7
  /**
5
- * Built-in function metadata definitions.
8
+ * Registry for function metadata collected via decorators.
6
9
  */
7
- exports.BUILTIN_FUNCTION_METADATA = [
8
- {
9
- name: "sum",
10
- description: "Calculates the sum of numeric values across grouped rows",
11
- category: "aggregation",
12
- parameters: [
13
- { name: "value", description: "Numeric value to sum", type: "number" }
14
- ],
15
- output: { description: "Sum of all values", type: "number", example: 150 },
16
- examples: ["WITH [1, 2, 3] AS nums UNWIND nums AS n RETURN sum(n)"]
17
- },
18
- {
19
- name: "avg",
20
- description: "Calculates the average of numeric values across grouped rows",
21
- category: "aggregation",
22
- parameters: [
23
- { name: "value", description: "Numeric value to average", type: "number" }
24
- ],
25
- output: { description: "Average of all values", type: "number", example: 50 },
26
- examples: ["WITH [10, 20, 30] AS nums UNWIND nums AS n RETURN avg(n)"]
27
- },
28
- {
29
- name: "collect",
30
- description: "Collects values into an array across grouped rows",
31
- category: "aggregation",
32
- parameters: [
33
- { name: "value", description: "Value to collect", type: "any" }
34
- ],
35
- output: { description: "Array of collected values", type: "array", example: [1, 2, 3] },
36
- examples: ["WITH [1, 2, 3] AS nums UNWIND nums AS n RETURN collect(n)"]
37
- },
38
- {
39
- name: "range",
40
- description: "Generates an array of sequential integers",
41
- category: "generator",
42
- parameters: [
43
- { name: "start", description: "Starting number (inclusive)", type: "number" },
44
- { name: "end", description: "Ending number (inclusive)", type: "number" }
45
- ],
46
- output: { description: "Array of integers from start to end", type: "array", items: { type: "number" }, example: [1, 2, 3, 4, 5] },
47
- examples: ["WITH range(1, 5) AS nums RETURN nums"]
48
- },
49
- {
50
- name: "rand",
51
- description: "Generates a random number between 0 and 1",
52
- category: "generator",
53
- parameters: [],
54
- output: { description: "Random number between 0 and 1", type: "number", example: 0.7234 },
55
- examples: ["WITH rand() AS r RETURN r"]
56
- },
57
- {
58
- name: "round",
59
- description: "Rounds a number to the nearest integer",
60
- category: "math",
61
- parameters: [
62
- { name: "value", description: "Number to round", type: "number" }
63
- ],
64
- output: { description: "Rounded integer", type: "number", example: 4 },
65
- examples: ["WITH 3.7 AS n RETURN round(n)"]
66
- },
67
- {
68
- name: "split",
69
- description: "Splits a string into an array by a delimiter",
70
- category: "string",
71
- parameters: [
72
- { name: "text", description: "String to split", type: "string" },
73
- { name: "delimiter", description: "Delimiter to split by", type: "string" }
74
- ],
75
- output: { description: "Array of string parts", type: "array", items: { type: "string" }, example: ["a", "b", "c"] },
76
- examples: ["WITH 'a,b,c' AS s RETURN split(s, ',')"]
77
- },
78
- {
79
- name: "join",
80
- description: "Joins an array of strings with a delimiter",
81
- category: "string",
82
- parameters: [
83
- { name: "array", description: "Array of values to join", type: "array" },
84
- { name: "delimiter", description: "Delimiter to join with", type: "string" }
85
- ],
86
- output: { description: "Joined string", type: "string", example: "a,b,c" },
87
- examples: ["WITH ['a', 'b', 'c'] AS arr RETURN join(arr, ',')"]
88
- },
89
- {
90
- name: "replace",
91
- description: "Replaces occurrences of a pattern in a string",
92
- category: "string",
93
- parameters: [
94
- { name: "text", description: "Source string", type: "string" },
95
- { name: "pattern", description: "Pattern to find", type: "string" },
96
- { name: "replacement", description: "Replacement string", type: "string" }
97
- ],
98
- output: { description: "String with replacements", type: "string", example: "hello world" },
99
- examples: ["WITH 'hello there' AS s RETURN replace(s, 'there', 'world')"]
100
- },
101
- {
102
- name: "stringify",
103
- description: "Converts a value to its JSON string representation",
104
- category: "conversion",
105
- parameters: [
106
- { name: "value", description: "Value to stringify", type: "any" }
107
- ],
108
- output: { description: "JSON string", type: "string", example: "{\"a\":1}" },
109
- examples: ["WITH {a: 1} AS obj RETURN stringify(obj)"]
110
- },
111
- {
112
- name: "tojson",
113
- description: "Parses a JSON string into an object",
114
- category: "conversion",
115
- parameters: [
116
- { name: "text", description: "JSON string to parse", type: "string" }
117
- ],
118
- output: { description: "Parsed object or array", type: "object", example: { a: 1 } },
119
- examples: ["WITH '{\"a\": 1}' AS s RETURN tojson(s)"]
120
- },
121
- {
122
- name: "size",
123
- description: "Returns the length of an array or string",
124
- category: "utility",
125
- parameters: [
126
- { name: "value", description: "Array or string to measure", type: "array" }
127
- ],
128
- output: { description: "Length of the input", type: "number", example: 3 },
129
- examples: ["WITH [1, 2, 3] AS arr RETURN size(arr)"]
130
- },
131
- {
132
- name: "functions",
133
- description: "Lists all registered functions with their metadata. Useful for discovering available functions and their documentation. Results include name, description, parameters, output schema, and usage examples.",
134
- category: "introspection",
135
- parameters: [
136
- { name: "category", description: "Optional category to filter by (e.g., 'aggregation', 'string', 'math')", type: "string", required: false }
137
- ],
138
- output: {
139
- description: "Array of function metadata objects",
140
- type: "array",
141
- items: {
142
- type: "object",
143
- properties: {
144
- name: { description: "Function name", type: "string" },
145
- description: { description: "What the function does", type: "string" },
146
- category: { description: "Function category", type: "string" },
147
- parameters: { description: "Array of parameter definitions", type: "array" },
148
- output: { description: "Output schema", type: "object" },
149
- examples: { description: "Usage examples", type: "array" }
150
- }
151
- }
152
- },
153
- examples: [
154
- "WITH functions() AS funcs RETURN funcs",
155
- "WITH functions('aggregation') AS funcs UNWIND funcs AS f RETURN f.name, f.description"
156
- ]
10
+ const functionMetadataRegistry = new Map();
11
+ /**
12
+ * Registry for function factories collected via decorators.
13
+ * Allows @FunctionDef to automatically register functions for instantiation.
14
+ */
15
+ const functionFactoryRegistry = new Map();
16
+ /**
17
+ * Class decorator that registers function metadata.
18
+ * The function name is derived from the class's constructor call to super().
19
+ *
20
+ * @param options - Function metadata (excluding name)
21
+ * @returns Class decorator
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * @FunctionDef({
26
+ * description: "Calculates the sum of numeric values",
27
+ * category: "aggregate",
28
+ * parameters: [{ name: "value", description: "Numeric value to sum", type: "number" }],
29
+ * output: { description: "Sum of all values", type: "number", example: 150 },
30
+ * examples: ["WITH [1, 2, 3] AS nums UNWIND nums AS n RETURN sum(n)"]
31
+ * })
32
+ * class Sum extends AggregateFunction { ... }
33
+ * ```
34
+ */
35
+ function FunctionDef(options) {
36
+ return function (constructor) {
37
+ var _a;
38
+ // Create an instance to get the function name from super() call
39
+ const instance = new constructor();
40
+ const baseName = ((_a = instance.name) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || constructor.name.toLowerCase();
41
+ // Use category-qualified key to avoid collisions (e.g., sum vs sum:predicate)
42
+ // but store the display name without the qualifier
43
+ const displayName = baseName.includes(':') ? baseName.split(':')[0] : baseName;
44
+ const registryKey = options.category ? `${displayName}:${options.category}` : displayName;
45
+ // Register metadata with display name but category-qualified key
46
+ const metadata = Object.assign({ name: displayName }, options);
47
+ functionMetadataRegistry.set(registryKey, metadata);
48
+ // Register factory function for automatic instantiation
49
+ // Only register to the simple name if no collision exists (predicate functions use qualified keys)
50
+ if (options.category !== 'predicate') {
51
+ functionFactoryRegistry.set(displayName, () => new constructor());
52
+ }
53
+ functionFactoryRegistry.set(registryKey, () => new constructor());
54
+ return constructor;
55
+ };
56
+ }
57
+ /**
58
+ * Gets all registered function metadata from decorators.
59
+ *
60
+ * @returns Array of function metadata
61
+ */
62
+ function getRegisteredFunctionMetadata() {
63
+ return Array.from(functionMetadataRegistry.values());
64
+ }
65
+ /**
66
+ * Gets a registered function factory by name.
67
+ * Used by FunctionFactory to instantiate decorator-registered functions.
68
+ *
69
+ * @param name - Function name (case-insensitive)
70
+ * @param category - Optional category to disambiguate (e.g., 'predicate')
71
+ * @returns Factory function or undefined
72
+ */
73
+ function getRegisteredFunctionFactory(name, category) {
74
+ const lowerName = name.toLowerCase();
75
+ // If category specified, look for exact match
76
+ if (category) {
77
+ return functionFactoryRegistry.get(`${lowerName}:${category}`);
78
+ }
79
+ // Try direct match first
80
+ if (functionFactoryRegistry.has(lowerName)) {
81
+ return functionFactoryRegistry.get(lowerName);
82
+ }
83
+ return undefined;
84
+ }
85
+ /**
86
+ * Gets metadata for a specific function by name.
87
+ * If multiple functions share the same name (e.g., aggregate vs predicate),
88
+ * optionally specify the category to get the specific one.
89
+ *
90
+ * @param name - Function name (case-insensitive)
91
+ * @param category - Optional category to disambiguate
92
+ * @returns Function metadata or undefined
93
+ */
94
+ function getFunctionMetadata(name, category) {
95
+ const lowerName = name.toLowerCase();
96
+ // If category specified, look for exact match
97
+ if (category) {
98
+ return functionMetadataRegistry.get(`${lowerName}:${category}`);
99
+ }
100
+ // Otherwise, first try direct match (for functions without category conflicts)
101
+ // Then search for any function with matching name
102
+ for (const [key, meta] of functionMetadataRegistry) {
103
+ if (meta.name === lowerName) {
104
+ return meta;
105
+ }
157
106
  }
158
- ];
107
+ return undefined;
108
+ }
159
109
  //# sourceMappingURL=function_metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"function_metadata.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"function_metadata.js","sourceRoot":"","sources":["../../../src/parsing/functions/function_metadata.ts"],"names":[],"mappings":";;AA6HA,kCA2BC;AAOD,sEAEC;AAUD,oEAcC;AAWD,kDAiBC;AA3HD;;GAEG;AACH,MAAM,wBAAwB,GAAkC,IAAI,GAAG,EAAE,CAAC;AAE1E;;;GAGG;AACH,MAAM,uBAAuB,GAA2B,IAAI,GAAG,EAAE,CAAC;AAOlE;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,WAAW,CAAC,OAA2B;IACnD,OAAO,UAAiD,WAAc;;QAClE,gEAAgE;QAChE,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAA,MAAA,QAAQ,CAAC,IAAI,0CAAE,WAAW,EAAE,KAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhF,8EAA8E;QAC9E,mDAAmD;QACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAE1F,iEAAiE;QACjE,MAAM,QAAQ,mBACV,IAAI,EAAE,WAAW,IACd,OAAO,CACb,CAAC;QACF,wBAAwB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEpD,wDAAwD;QACxD,mGAAmG;QACnG,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACnC,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;QAElE,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAgB,6BAA6B;IACzC,OAAO,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,4BAA4B,CAAC,IAAY,EAAE,QAAiB;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,8CAA8C;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,uBAAuB,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,yBAAyB;IACzB,IAAI,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mBAAmB,CAAC,IAAY,EAAE,QAAiB;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAErC,8CAA8C;IAC9C,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,wBAAwB,CAAC,GAAG,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,+EAA+E;IAC/E,kDAAkD;IAClD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,wBAAwB,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import Function from "./function";
2
+ /**
3
+ * Built-in function that lists all registered functions with their metadata.
4
+ *
5
+ * Can be used in FlowQuery to discover available functions:
6
+ * - `WITH functions() AS funcs RETURN funcs` - returns all functions
7
+ * - `WITH functions('aggregation') AS funcs RETURN funcs` - returns functions in a category
8
+ *
9
+ * @example
10
+ * ```
11
+ * WITH functions() AS funcs
12
+ * UNWIND funcs AS func
13
+ * RETURN func.name, func.description
14
+ * ```
15
+ */
16
+ declare class Functions extends Function {
17
+ constructor();
18
+ value(): any;
19
+ }
20
+ export default Functions;
21
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/functions.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAIlC;;;;;;;;;;;;;GAaG;AACH,cA0BM,SAAU,SAAQ,QAAQ;;IAMrB,KAAK,IAAI,GAAG;CAiBtB;AAED,eAAe,SAAS,CAAC"}