flowquery 1.0.5 → 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 (131) hide show
  1. package/README.md +182 -0
  2. package/dist/extensibility.d.ts +9 -0
  3. package/dist/extensibility.d.ts.map +1 -0
  4. package/dist/extensibility.js +25 -0
  5. package/dist/extensibility.js.map +1 -0
  6. package/dist/flowquery.min.js +1 -1
  7. package/dist/parsing/functions/avg.d.ts.map +1 -1
  8. package/dist/parsing/functions/avg.js +20 -2
  9. package/dist/parsing/functions/avg.js.map +1 -1
  10. package/dist/parsing/functions/collect.d.ts.map +1 -1
  11. package/dist/parsing/functions/collect.js +20 -2
  12. package/dist/parsing/functions/collect.js.map +1 -1
  13. package/dist/parsing/functions/extensibility/index.d.ts +37 -0
  14. package/dist/parsing/functions/extensibility/index.d.ts.map +1 -0
  15. package/dist/parsing/functions/extensibility/index.js +50 -0
  16. package/dist/parsing/functions/extensibility/index.js.map +1 -0
  17. package/dist/parsing/functions/function_factory.d.ts +23 -0
  18. package/dist/parsing/functions/function_factory.d.ts.map +1 -1
  19. package/dist/parsing/functions/function_factory.js +44 -47
  20. package/dist/parsing/functions/function_factory.js.map +1 -1
  21. package/dist/parsing/functions/function_metadata.d.ts +57 -6
  22. package/dist/parsing/functions/function_metadata.d.ts.map +1 -1
  23. package/dist/parsing/functions/function_metadata.js +103 -153
  24. package/dist/parsing/functions/function_metadata.js.map +1 -1
  25. package/dist/parsing/functions/functions.d.ts.map +1 -1
  26. package/dist/parsing/functions/functions.js +37 -2
  27. package/dist/parsing/functions/functions.js.map +1 -1
  28. package/dist/parsing/functions/join.d.ts.map +1 -1
  29. package/dist/parsing/functions/join.js +21 -2
  30. package/dist/parsing/functions/join.js.map +1 -1
  31. package/dist/parsing/functions/predicate_function.d.ts +1 -0
  32. package/dist/parsing/functions/predicate_function.d.ts.map +1 -1
  33. package/dist/parsing/functions/predicate_function.js +3 -0
  34. package/dist/parsing/functions/predicate_function.js.map +1 -1
  35. package/dist/parsing/functions/predicate_sum.d.ts.map +1 -1
  36. package/dist/parsing/functions/predicate_sum.js +23 -2
  37. package/dist/parsing/functions/predicate_sum.js.map +1 -1
  38. package/dist/parsing/functions/rand.d.ts.map +1 -1
  39. package/dist/parsing/functions/rand.js +18 -2
  40. package/dist/parsing/functions/rand.js.map +1 -1
  41. package/dist/parsing/functions/range.d.ts.map +1 -1
  42. package/dist/parsing/functions/range.js +21 -2
  43. package/dist/parsing/functions/range.js.map +1 -1
  44. package/dist/parsing/functions/replace.d.ts.map +1 -1
  45. package/dist/parsing/functions/replace.js +22 -2
  46. package/dist/parsing/functions/replace.js.map +1 -1
  47. package/dist/parsing/functions/round.d.ts.map +1 -1
  48. package/dist/parsing/functions/round.js +20 -2
  49. package/dist/parsing/functions/round.js.map +1 -1
  50. package/dist/parsing/functions/size.d.ts.map +1 -1
  51. package/dist/parsing/functions/size.js +20 -2
  52. package/dist/parsing/functions/size.js.map +1 -1
  53. package/dist/parsing/functions/split.d.ts.map +1 -1
  54. package/dist/parsing/functions/split.js +21 -2
  55. package/dist/parsing/functions/split.js.map +1 -1
  56. package/dist/parsing/functions/stringify.d.ts.map +1 -1
  57. package/dist/parsing/functions/stringify.js +20 -2
  58. package/dist/parsing/functions/stringify.js.map +1 -1
  59. package/dist/parsing/functions/sum.d.ts.map +1 -1
  60. package/dist/parsing/functions/sum.js +20 -2
  61. package/dist/parsing/functions/sum.js.map +1 -1
  62. package/dist/parsing/functions/to_json.d.ts.map +1 -1
  63. package/dist/parsing/functions/to_json.js +20 -2
  64. package/dist/parsing/functions/to_json.js.map +1 -1
  65. package/dist/parsing/parser.d.ts.map +1 -1
  66. package/dist/parsing/parser.js +1 -2
  67. package/dist/parsing/parser.js.map +1 -1
  68. package/docs/flowquery.min.js +1 -1
  69. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +1 -1
  70. package/misc/apps/RAG/.env.example +14 -0
  71. package/misc/apps/RAG/README.md +0 -7
  72. package/misc/apps/RAG/package.json +16 -7
  73. package/misc/apps/RAG/public/index.html +18 -0
  74. package/misc/apps/RAG/src/App.css +42 -0
  75. package/misc/apps/RAG/src/App.tsx +50 -0
  76. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +245 -0
  77. package/misc/apps/RAG/src/components/ChatContainer.css +67 -0
  78. package/misc/apps/RAG/src/components/ChatContainer.tsx +239 -0
  79. package/misc/apps/RAG/src/components/ChatInput.css +23 -0
  80. package/misc/apps/RAG/src/components/ChatInput.tsx +62 -0
  81. package/misc/apps/RAG/src/components/ChatMessage.css +136 -0
  82. package/misc/apps/RAG/src/components/ChatMessage.tsx +152 -0
  83. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +390 -0
  84. package/misc/apps/RAG/src/components/FlowQueryRunner.css +104 -0
  85. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +332 -0
  86. package/misc/apps/RAG/src/components/index.ts +15 -0
  87. package/misc/apps/RAG/src/index.tsx +17 -0
  88. package/misc/apps/RAG/src/plugins/PluginRegistry.ts +136 -0
  89. package/misc/apps/RAG/src/plugins/README.md +139 -0
  90. package/misc/apps/RAG/src/plugins/index.ts +72 -0
  91. package/misc/apps/RAG/src/plugins/loaders/CatFacts.ts +79 -0
  92. package/misc/apps/RAG/src/plugins/loaders/FetchJson.ts +71 -0
  93. package/misc/apps/RAG/src/plugins/loaders/Llm.ts +441 -0
  94. package/misc/apps/RAG/src/plugins/loaders/MockData.ts +161 -0
  95. package/misc/apps/RAG/src/plugins/types.ts +52 -0
  96. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +385 -0
  97. package/misc/apps/RAG/src/prompts/index.ts +10 -0
  98. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +131 -0
  99. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +203 -0
  100. package/misc/apps/RAG/src/utils/index.ts +9 -0
  101. package/misc/apps/RAG/tsconfig.json +4 -2
  102. package/misc/apps/RAG/webpack.config.js +23 -12
  103. package/package.json +7 -1
  104. package/src/extensibility.ts +9 -0
  105. package/src/parsing/functions/avg.ts +10 -0
  106. package/src/parsing/functions/collect.ts +10 -0
  107. package/src/parsing/functions/extensibility/index.ts +54 -0
  108. package/src/parsing/functions/function_factory.ts +51 -48
  109. package/src/parsing/functions/function_metadata.ts +132 -156
  110. package/src/parsing/functions/functions.ts +27 -0
  111. package/src/parsing/functions/join.ts +11 -0
  112. package/src/parsing/functions/predicate_function.ts +4 -0
  113. package/src/parsing/functions/predicate_sum.ts +13 -0
  114. package/src/parsing/functions/rand.ts +8 -0
  115. package/src/parsing/functions/range.ts +11 -0
  116. package/src/parsing/functions/replace.ts +12 -0
  117. package/src/parsing/functions/round.ts +10 -0
  118. package/src/parsing/functions/size.ts +10 -0
  119. package/src/parsing/functions/split.ts +11 -0
  120. package/src/parsing/functions/stringify.ts +10 -0
  121. package/src/parsing/functions/sum.ts +10 -0
  122. package/src/parsing/functions/to_json.ts +10 -0
  123. package/src/parsing/parser.ts +1 -2
  124. package/tests/parsing/function_plugins.test.ts +11 -11
  125. package/tsconfig.json +1 -0
  126. package/dist/parsing/functions/predicate_function_factory.d.ts +0 -6
  127. package/dist/parsing/functions/predicate_function_factory.d.ts.map +0 -1
  128. package/dist/parsing/functions/predicate_function_factory.js +0 -19
  129. package/dist/parsing/functions/predicate_function_factory.js.map +0 -1
  130. package/misc/apps/RAG/src/index.ts +0 -20
  131. package/src/parsing/functions/predicate_function_factory.ts +0 -15
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/functions.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC;;;;;;;;;;;;;GAaG;AACH,cAAM,SAAU,SAAQ,QAAQ;;IAMrB,KAAK,IAAI,GAAG;CAiBtB;AAED,eAAe,SAAS,CAAC"}
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"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const function_1 = __importDefault(require("./function"));
7
13
  const function_factory_1 = __importDefault(require("./function_factory"));
14
+ const function_metadata_1 = require("./function_metadata");
8
15
  /**
9
16
  * Built-in function that lists all registered functions with their metadata.
10
17
  *
@@ -19,7 +26,7 @@ const function_factory_1 = __importDefault(require("./function_factory"));
19
26
  * RETURN func.name, func.description
20
27
  * ```
21
28
  */
22
- class Functions extends function_1.default {
29
+ let Functions = class Functions extends function_1.default {
23
30
  constructor() {
24
31
  super("functions");
25
32
  this._expectedParameterCount = null; // 0 or 1 parameter
@@ -42,6 +49,34 @@ class Functions extends function_1.default {
42
49
  throw new Error("functions() takes 0 or 1 parameters");
43
50
  }
44
51
  }
45
- }
52
+ };
53
+ Functions = __decorate([
54
+ (0, function_metadata_1.FunctionDef)({
55
+ 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.",
56
+ category: "scalar",
57
+ parameters: [
58
+ { name: "category", description: "Optional category to filter by (e.g., 'aggregation', 'string', 'math')", type: "string", required: false }
59
+ ],
60
+ output: {
61
+ description: "Array of function metadata objects",
62
+ type: "array",
63
+ items: {
64
+ type: "object",
65
+ properties: {
66
+ name: { description: "Function name", type: "string" },
67
+ description: { description: "What the function does", type: "string" },
68
+ category: { description: "Function category", type: "string" },
69
+ parameters: { description: "Array of parameter definitions", type: "array" },
70
+ output: { description: "Output schema", type: "object" },
71
+ examples: { description: "Usage examples", type: "array" }
72
+ }
73
+ }
74
+ },
75
+ examples: [
76
+ "WITH functions() AS funcs RETURN funcs",
77
+ "WITH functions('aggregation') AS funcs UNWIND funcs AS f RETURN f.name, f.description"
78
+ ]
79
+ })
80
+ ], Functions);
46
81
  exports.default = Functions;
47
82
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/parsing/functions/functions.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAClC,0EAAiD;AAEjD;;;;;;;;;;;;;GAaG;AACH,MAAM,SAAU,SAAQ,kBAAQ;IAC5B;QACI,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC,mBAAmB;IAC5D,CAAC;IAEM,KAAK;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,uBAAuB;YACvB,OAAO,0BAAe,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,qBAAqB;YACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,0BAAe,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;CACJ;AAED,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/parsing/functions/functions.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAAkC;AAClC,0EAAiD;AACjD,2DAAkD;AAElD;;;;;;;;;;;;;GAaG;AA2BH,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,kBAAQ;IAC5B;QACI,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC,mBAAmB;IAC5D,CAAC;IAEM,KAAK;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,uBAAuB;YACvB,OAAO,0BAAe,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,qBAAqB;YACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,0BAAe,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;CACJ,CAAA;AAvBK,SAAS;IA1Bd,IAAA,+BAAW,EAAC;QACT,WAAW,EAAE,2MAA2M;QACxN,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,wEAAwE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC/I;QACD,MAAM,EAAE;YACJ,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,IAAI,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtD,WAAW,EAAE,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtE,QAAQ,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC9D,UAAU,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,IAAI,EAAE,OAAO,EAAE;oBAC5E,MAAM,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxD,QAAQ,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;iBAC7D;aACJ;SACJ;QACD,QAAQ,EAAE;YACN,wCAAwC;YACxC,uFAAuF;SAC1F;KACJ,CAAC;GACI,SAAS,CAuBd;AAED,kBAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/join.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,cAAM,IAAK,SAAQ,QAAQ;;IAKvB,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAKrC;IACM,KAAK,IAAI,GAAG;CAQtB;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/join.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAIlC,cAUM,IAAK,SAAQ,QAAQ;;IAKvB,IAAW,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,EAKrC;IACM,KAAK,IAAI,GAAG;CAQtB;AAED,eAAe,IAAI,CAAC"}
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const function_1 = __importDefault(require("./function"));
7
13
  const string_1 = __importDefault(require("../expressions/string"));
8
- class Join extends function_1.default {
14
+ const function_metadata_1 = require("./function_metadata");
15
+ let Join = class Join extends function_1.default {
9
16
  constructor() {
10
17
  super("join");
11
18
  this._expectedParameterCount = 2;
@@ -24,6 +31,18 @@ class Join extends function_1.default {
24
31
  }
25
32
  return array.join(delimiter);
26
33
  }
27
- }
34
+ };
35
+ Join = __decorate([
36
+ (0, function_metadata_1.FunctionDef)({
37
+ description: "Joins an array of strings with a delimiter",
38
+ category: "scalar",
39
+ parameters: [
40
+ { name: "array", description: "Array of values to join", type: "array" },
41
+ { name: "delimiter", description: "Delimiter to join with", type: "string" }
42
+ ],
43
+ output: { description: "Joined string", type: "string", example: "a,b,c" },
44
+ examples: ["WITH ['a', 'b', 'c'] AS arr RETURN join(arr, ',')"]
45
+ })
46
+ ], Join);
28
47
  exports.default = Join;
29
48
  //# sourceMappingURL=join.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/parsing/functions/join.ts"],"names":[],"mappings":";;;;;AACA,0DAAkC;AAClC,mEAA2C;AAE3C,MAAM,IAAK,SAAQ,kBAAQ;IACvB;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAW,UAAU,CAAC,KAAgB;QAClC,IAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,CAAC;IACM,KAAK;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"join.js","sourceRoot":"","sources":["../../../src/parsing/functions/join.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0DAAkC;AAClC,mEAA2C;AAC3C,2DAAkD;AAYlD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,kBAAQ;IACvB;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,IAAW,UAAU,CAAC,KAAgB;QAClC,IAAG,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,gBAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,CAAC;IACM,KAAK;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;CACJ,CAAA;AAnBK,IAAI;IAVT,IAAA,+BAAW,EAAC;QACT,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAO,EAAE;YACxE,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/E;QACD,MAAM,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;QAC1E,QAAQ,EAAE,CAAC,mDAAmD,CAAC;KAClE,CAAC;GACI,IAAI,CAmBT;AAED,kBAAe,IAAI,CAAC"}
@@ -7,6 +7,7 @@ declare class PredicateFunction extends ASTNode {
7
7
  private _name;
8
8
  protected _valueHolder: ValueHolder;
9
9
  constructor(name: string);
10
+ get name(): string;
10
11
  protected get reference(): Reference;
11
12
  protected get array(): ASTNode;
12
13
  protected get _return(): Expression;
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_function.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,SAAS,CAAC,YAAY,EAAE,WAAW,CAAqB;gBAE5C,IAAI,EAAE,MAAM;IAKxB,SAAS,KAAK,SAAS,IAAI,SAAS,CAEnC;IAED,SAAS,KAAK,KAAK,IAAI,OAAO,CAE7B;IAED,SAAS,KAAK,OAAO,IAAI,UAAU,CAElC;IAED,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAKlC;IAEM,KAAK,IAAI,GAAG;IAIZ,QAAQ,IAAI,MAAM;CAG5B;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"predicate_function.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,cAAM,iBAAkB,SAAQ,OAAO;IACnC,OAAO,CAAC,KAAK,CAAS;IACtB,SAAS,CAAC,YAAY,EAAE,WAAW,CAAqB;gBAE5C,IAAI,EAAE,MAAM;IAKxB,IAAW,IAAI,IAAI,MAAM,CAExB;IAED,SAAS,KAAK,SAAS,IAAI,SAAS,CAEnC;IAED,SAAS,KAAK,KAAK,IAAI,OAAO,CAE7B;IAED,SAAS,KAAK,OAAO,IAAI,UAAU,CAElC;IAED,SAAS,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAKlC;IAEM,KAAK,IAAI,GAAG;IAIZ,QAAQ,IAAI,MAAM;CAG5B;AAED,eAAe,iBAAiB,CAAC"}
@@ -11,6 +11,9 @@ class PredicateFunction extends ast_node_1.default {
11
11
  this._valueHolder = new value_holder_1.default();
12
12
  this._name = name;
13
13
  }
14
+ get name() {
15
+ return this._name;
16
+ }
14
17
  get reference() {
15
18
  return this.firstChild();
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_function.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAIlC,kEAAyC;AAEzC,MAAM,iBAAkB,SAAQ,kBAAO;IAInC,YAAY,IAAY;QACpB,KAAK,EAAE,CAAC;QAHF,iBAAY,GAAgB,IAAI,sBAAW,EAAE,CAAC;QAIpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAc,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,EAAe,CAAC;IAC1C,CAAC;IAED,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,IAAc,OAAO;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAe,CAAC;IAC/C,CAAC;IAED,IAAc,KAAK;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAU,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"predicate_function.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_function.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAIlC,kEAAyC;AAEzC,MAAM,iBAAkB,SAAQ,kBAAO;IAInC,YAAY,IAAY;QACpB,KAAK,EAAE,CAAC;QAHF,iBAAY,GAAgB,IAAI,sBAAW,EAAE,CAAC;QAIpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAc,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,EAAe,CAAC;IAC1C,CAAC;IAED,IAAc,KAAK;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC;IAED,IAAc,OAAO;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAe,CAAC;IAC/C,CAAC;IAED,IAAc,KAAK;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAU,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,QAAQ;QACX,OAAO,sBAAsB,IAAI,CAAC,KAAK,GAAG,CAAC;IAC/C,CAAC;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_sum.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_sum.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,cAAM,YAAa,SAAQ,iBAAiB;;IAKjC,KAAK,IAAI,GAAG;CAmBtB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"predicate_sum.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_sum.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAGrD,cAYM,YAAa,SAAQ,iBAAiB;;IAKjC,KAAK,IAAI,GAAG;CAmBtB;AAED,eAAe,YAAY,CAAC"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const predicate_function_1 = __importDefault(require("./predicate_function"));
7
- class PredicateSum extends predicate_function_1.default {
13
+ const function_metadata_1 = require("./function_metadata");
14
+ let PredicateSum = class PredicateSum extends predicate_function_1.default {
8
15
  constructor() {
9
16
  super("sum");
10
17
  }
@@ -28,6 +35,20 @@ class PredicateSum extends predicate_function_1.default {
28
35
  }
29
36
  return _sum;
30
37
  }
31
- }
38
+ };
39
+ PredicateSum = __decorate([
40
+ (0, function_metadata_1.FunctionDef)({
41
+ description: "Calculates the sum of values in an array with optional filtering. Uses list comprehension syntax: sum(variable IN array [WHERE condition] | expression)",
42
+ category: "predicate",
43
+ parameters: [
44
+ { name: "variable", description: "Variable name to bind each element", type: "string" },
45
+ { name: "array", description: "Array to iterate over", type: "array" },
46
+ { name: "expression", description: "Expression to sum for each element", type: "any" },
47
+ { name: "where", description: "Optional filter condition", type: "boolean", required: false }
48
+ ],
49
+ output: { description: "Sum of the evaluated expressions", type: "number", example: 6 },
50
+ examples: ["WITH [1, 2, 3] AS nums RETURN sum(n IN nums | n)", "WITH [1, 2, 3, 4] AS nums RETURN sum(n IN nums WHERE n > 1 | n * 2)"]
51
+ })
52
+ ], PredicateSum);
32
53
  exports.default = PredicateSum;
33
54
  //# sourceMappingURL=predicate_sum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"predicate_sum.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_sum.ts"],"names":[],"mappings":";;;;;AAAA,8EAAqD;AAErD,MAAM,YAAa,SAAQ,4BAAiB;IACxC;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,GAAe,IAAI,CAAC;QAC5B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACJ,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAED,kBAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"predicate_sum.js","sourceRoot":"","sources":["../../../src/parsing/functions/predicate_sum.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,8EAAqD;AACrD,2DAAkD;AAclD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAiB;IACxC;QACI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,IAAI,GAAe,IAAI,CAAC;QAC5B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAChB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC;qBAAM,CAAC;oBACJ,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAxBK,YAAY;IAZjB,IAAA,+BAAW,EAAC;QACT,WAAW,EAAE,yJAAyJ;QACtK,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;YACtE,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,KAAK,EAAE;YACtF,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;SAChG;QACD,MAAM,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QACvF,QAAQ,EAAE,CAAC,kDAAkD,EAAE,qEAAqE,CAAC;KACxI,CAAC;GACI,YAAY,CAwBjB;AAED,kBAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rand.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/rand.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAM,IAAK,SAAQ,QAAQ;;IAKhB,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"rand.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/rand.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,cAOM,IAAK,SAAQ,QAAQ;;IAKhB,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,IAAI,CAAC"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const function_1 = __importDefault(require("./function"));
7
- class Rand extends function_1.default {
13
+ const function_metadata_1 = require("./function_metadata");
14
+ let Rand = class Rand extends function_1.default {
8
15
  constructor() {
9
16
  super("rand");
10
17
  this._expectedParameterCount = 0;
@@ -12,6 +19,15 @@ class Rand extends function_1.default {
12
19
  value() {
13
20
  return Math.random();
14
21
  }
15
- }
22
+ };
23
+ Rand = __decorate([
24
+ (0, function_metadata_1.FunctionDef)({
25
+ description: "Generates a random number between 0 and 1",
26
+ category: "scalar",
27
+ parameters: [],
28
+ output: { description: "Random number between 0 and 1", type: "number", example: 0.7234 },
29
+ examples: ["WITH rand() AS r RETURN r"]
30
+ })
31
+ ], Rand);
16
32
  exports.default = Rand;
17
33
  //# sourceMappingURL=rand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rand.js","sourceRoot":"","sources":["../../../src/parsing/functions/rand.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,MAAM,IAAK,SAAQ,kBAAQ;IACvB;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACJ;AAED,kBAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"rand.js","sourceRoot":"","sources":["../../../src/parsing/functions/rand.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAAkC;AAClC,2DAAkD;AASlD,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,kBAAQ;IACvB;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;IACrC,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC;CACJ,CAAA;AARK,IAAI;IAPT,IAAA,+BAAW,EAAC;QACT,WAAW,EAAE,2CAA2C;QACxD,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;QACzF,QAAQ,EAAE,CAAC,2BAA2B,CAAC;KAC1C,CAAC;GACI,IAAI,CAQT;AAED,kBAAe,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/range.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,cAAM,KAAM,SAAQ,QAAQ;;IAKjB,KAAK,IAAI,GAAG;CAQtB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/range.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC,cAUM,KAAM,SAAQ,QAAQ;;IAKjB,KAAK,IAAI,GAAG;CAQtB;AAED,eAAe,KAAK,CAAC"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
12
  const function_1 = __importDefault(require("./function"));
7
- class Range extends function_1.default {
13
+ const function_metadata_1 = require("./function_metadata");
14
+ let Range = class Range extends function_1.default {
8
15
  constructor() {
9
16
  super("range");
10
17
  this._expectedParameterCount = 2;
@@ -17,6 +24,18 @@ class Range extends function_1.default {
17
24
  }
18
25
  return Array.from({ length: end - start + 1 }, (_, i) => start + i);
19
26
  }
20
- }
27
+ };
28
+ Range = __decorate([
29
+ (0, function_metadata_1.FunctionDef)({
30
+ description: "Generates an array of sequential integers",
31
+ category: "scalar",
32
+ parameters: [
33
+ { name: "start", description: "Starting number (inclusive)", type: "number" },
34
+ { name: "end", description: "Ending number (inclusive)", type: "number" }
35
+ ],
36
+ output: { description: "Array of integers from start to end", type: "array", items: { type: "number" }, example: [1, 2, 3, 4, 5] },
37
+ examples: ["WITH range(1, 5) AS nums RETURN nums"]
38
+ })
39
+ ], Range);
21
40
  exports.default = Range;
22
41
  //# sourceMappingURL=range.js.map