@finos/legend-application-query 5.2.6 → 5.2.7

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 (231) hide show
  1. package/lib/components/QueryBuilder.d.ts.map +1 -1
  2. package/lib/components/QueryBuilder.js +22 -11
  3. package/lib/components/QueryBuilder.js.map +1 -1
  4. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  5. package/lib/components/QueryBuilderResultPanel.js +12 -7
  6. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  7. package/lib/components/QueryBuilderSetupPanel.js +1 -1
  8. package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
  9. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts +1 -2
  10. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  11. package/lib/components/explorer/QueryBuilderExplorerPanel.js +14 -16
  12. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  13. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +2 -2
  14. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  15. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
  16. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js +22 -105
  17. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
  18. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +1 -2
  19. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  20. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +8 -10
  21. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
  22. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  23. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +23 -17
  24. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  25. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts +2 -2
  26. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts.map +1 -1
  27. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js +15 -12
  28. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js.map +1 -1
  29. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +2 -2
  30. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  31. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +23 -28
  32. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  33. package/lib/components/filter/QueryBuilderFilterPanel.js +7 -7
  34. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  35. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -1
  36. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js +1 -1
  37. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
  38. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
  39. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +5 -3
  40. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  41. package/lib/index.css +2 -2
  42. package/lib/index.css.map +1 -1
  43. package/lib/package.json +7 -7
  44. package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -1
  45. package/lib/stores/QueryBuilderPreviewDataHelper.js +17 -14
  46. package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -1
  47. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  48. package/lib/stores/QueryBuilderPropertyEditorState.js +34 -24
  49. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  50. package/lib/stores/QueryBuilderState.d.ts +1 -2
  51. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  52. package/lib/stores/QueryBuilderState.js +17 -26
  53. package/lib/stores/QueryBuilderState.js.map +1 -1
  54. package/lib/stores/QueryBuilderStateBuilder.d.ts +124 -0
  55. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -0
  56. package/lib/stores/QueryBuilderStateBuilder.js +310 -0
  57. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -0
  58. package/lib/stores/{QueryBuilderTestUtils.d.ts → QueryBuilderStateTestUtils.d.ts} +2 -2
  59. package/lib/stores/QueryBuilderStateTestUtils.d.ts.map +1 -0
  60. package/lib/stores/{QueryBuilderTestUtils.js → QueryBuilderStateTestUtils.js} +2 -2
  61. package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -0
  62. package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -1
  63. package/lib/stores/QueryBuilderTypeaheadHelper.js +14 -12
  64. package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
  65. package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts +3 -11
  66. package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
  67. package/lib/stores/QueryBuilderValueSpecificationBuilder.js +10 -319
  68. package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
  69. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts +27 -0
  70. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -0
  71. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +153 -0
  72. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -0
  73. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +37 -1
  74. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  75. package/lib/stores/QueryBuilderValueSpecificationHelper.js +79 -2
  76. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  77. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +12 -11
  78. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  79. package/lib/stores/explorer/QueryBuilderExplorerState.js +53 -20
  80. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  81. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.d.ts +1 -1
  82. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.d.ts.map +1 -1
  83. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.js +3 -1
  84. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.js.map +1 -1
  85. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +17 -0
  86. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
  87. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +10 -0
  88. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
  89. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts +3 -20
  90. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
  91. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +31 -73
  92. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  93. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +17 -4
  94. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  95. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +110 -21
  96. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  97. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts +20 -0
  98. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts.map +1 -0
  99. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js +62 -0
  100. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -0
  101. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts +2 -1
  102. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
  103. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +3 -8
  104. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  105. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts +9 -2
  106. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts.map +1 -1
  107. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js +28 -5
  108. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js.map +1 -1
  109. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +2 -2
  110. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  111. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts +10 -2
  112. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts.map +1 -1
  113. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +102 -39
  114. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
  115. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.d.ts +25 -0
  116. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -0
  117. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js +186 -0
  118. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js.map +1 -0
  119. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts +9 -4
  120. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
  121. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js +129 -13
  122. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  123. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.d.ts +20 -0
  124. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.d.ts.map +1 -0
  125. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.js +96 -0
  126. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -0
  127. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +1 -1
  128. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
  129. package/lib/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.d.ts → QueryBuilderPostFilterStateBuilder.d.ts} +4 -3
  130. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -0
  131. package/lib/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.js → QueryBuilderPostFilterStateBuilder.js} +30 -21
  132. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -0
  133. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -1
  134. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +1 -4
  135. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
  136. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +1 -1
  137. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  138. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +1 -1
  139. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  140. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +1 -1
  141. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  142. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +1 -1
  143. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  144. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +1 -1
  145. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
  146. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +1 -1
  147. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  148. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +1 -1
  149. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
  150. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +1 -1
  151. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  152. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +1 -1
  153. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
  154. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +1 -1
  155. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  156. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts +19 -0
  157. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -0
  158. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +74 -0
  159. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -0
  160. package/lib/stores/filter/{QueryBuilderValueSpecificationBuilder.d.ts → QueryBuilderFilterValueSpecificationBuilder.d.ts} +1 -1
  161. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts.map +1 -0
  162. package/lib/stores/filter/{QueryBuilderValueSpecificationBuilder.js → QueryBuilderFilterValueSpecificationBuilder.js} +1 -1
  163. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -0
  164. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.d.ts.map +1 -1
  165. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js +5 -5
  166. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js.map +1 -1
  167. package/package.json +14 -14
  168. package/src/components/QueryBuilder.tsx +47 -28
  169. package/src/components/QueryBuilderResultPanel.tsx +21 -14
  170. package/src/components/QueryBuilderSetupPanel.tsx +1 -1
  171. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +23 -38
  172. package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +2 -2
  173. package/src/components/fetch-structure/QueryBuilderFetchStructurePanel.tsx +41 -175
  174. package/src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx +9 -12
  175. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +62 -28
  176. package/src/components/fetch-structure/QueryBuilderProjectionPanel.tsx +74 -48
  177. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +33 -41
  178. package/src/components/filter/QueryBuilderFilterPanel.tsx +7 -7
  179. package/src/components/shared/QueryBuilderPanelIssueCountBadge.tsx +3 -1
  180. package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +5 -8
  181. package/src/stores/QueryBuilderPreviewDataHelper.ts +27 -18
  182. package/src/stores/QueryBuilderPropertyEditorState.ts +40 -31
  183. package/src/stores/QueryBuilderState.ts +26 -32
  184. package/src/stores/QueryBuilderStateBuilder.ts +584 -0
  185. package/src/stores/{QueryBuilderTestUtils.ts → QueryBuilderStateTestUtils.ts} +1 -1
  186. package/src/stores/QueryBuilderTypeaheadHelper.ts +23 -16
  187. package/src/stores/QueryBuilderValueSpecificationBuilder.ts +24 -584
  188. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +248 -0
  189. package/src/stores/QueryBuilderValueSpecificationHelper.ts +114 -0
  190. package/src/stores/explorer/QueryBuilderExplorerState.ts +73 -33
  191. package/src/stores/explorer/QueryBuilderPropertySearchPanelState.ts +3 -1
  192. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +33 -2
  193. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +53 -118
  194. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +166 -26
  195. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts +131 -0
  196. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +10 -19
  197. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.ts +68 -4
  198. package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +2 -2
  199. package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +172 -67
  200. package/src/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.ts +426 -0
  201. package/src/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +266 -21
  202. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.ts +228 -0
  203. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +1 -1
  204. package/src/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.ts → QueryBuilderPostFilterStateBuilder.ts} +68 -48
  205. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +1 -11
  206. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +1 -1
  207. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +1 -1
  208. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +1 -1
  209. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +1 -1
  210. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +1 -1
  211. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +1 -1
  212. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +1 -1
  213. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +1 -1
  214. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +1 -1
  215. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +1 -1
  216. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +155 -0
  217. package/src/stores/filter/{QueryBuilderValueSpecificationBuilder.ts → QueryBuilderFilterValueSpecificationBuilder.ts} +0 -0
  218. package/src/stores/filter/operators/QueryBuilderFilterOperatorHelper.ts +5 -5
  219. package/tsconfig.json +10 -5
  220. package/tsconfig.package.json +1 -1
  221. package/lib/stores/QueryBuilderTestUtils.d.ts.map +0 -1
  222. package/lib/stores/QueryBuilderTestUtils.js.map +0 -1
  223. package/lib/stores/QueryBuilderValueSpecificationProcessor.d.ts +0 -56
  224. package/lib/stores/QueryBuilderValueSpecificationProcessor.d.ts.map +0 -1
  225. package/lib/stores/QueryBuilderValueSpecificationProcessor.js +0 -548
  226. package/lib/stores/QueryBuilderValueSpecificationProcessor.js.map +0 -1
  227. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.d.ts.map +0 -1
  228. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.js.map +0 -1
  229. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.d.ts.map +0 -1
  230. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.js.map +0 -1
  231. package/src/stores/QueryBuilderValueSpecificationProcessor.ts +0 -1254
@@ -0,0 +1,426 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ type INTERNAL__UnknownValueSpecification,
19
+ type ValueSpecification,
20
+ AbstractPropertyExpression,
21
+ CollectionInstanceValue,
22
+ DerivedProperty,
23
+ matchFunctionName,
24
+ RawLambda,
25
+ SimpleFunctionExpression,
26
+ V1_deserializeRawValueSpecification,
27
+ V1_RawLambda,
28
+ VariableExpression,
29
+ } from '@finos/legend-graph';
30
+ import {
31
+ assertNonNullable,
32
+ assertTrue,
33
+ assertType,
34
+ guaranteeNonNullable,
35
+ guaranteeType,
36
+ isNonNullable,
37
+ returnUndefOnError,
38
+ type PlainObject,
39
+ } from '@finos/legend-shared';
40
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../QueryBuilder_Const.js';
41
+ import type { QueryBuilderState } from '../../QueryBuilderState.js';
42
+ import { QueryBuilderValueSpecificationProcessor } from '../../QueryBuilderStateBuilder.js';
43
+ import {
44
+ extractNullableNumberFromInstanceValue,
45
+ extractNullableStringFromInstanceValue,
46
+ validatePropertyExpressionChain,
47
+ } from '../../QueryBuilderValueSpecificationHelper.js';
48
+ import { FETCH_STRUCTURE_IMPLEMENTATION } from '../QueryBuilderFetchStructureImplementationState.js';
49
+ import {
50
+ QueryBuilderDerivationProjectionColumnState,
51
+ QueryBuilderSimpleProjectionColumnState,
52
+ } from './QueryBuilderProjectionColumnState.js';
53
+ import { QueryBuilderProjectionState } from './QueryBuilderProjectionState.js';
54
+ import {
55
+ COLUMN_SORT_TYPE,
56
+ SortColumnState,
57
+ } from './QueryResultSetModifierState.js';
58
+
59
+ export const processTDSProjectExpression = (
60
+ expression: SimpleFunctionExpression,
61
+ queryBuilderState: QueryBuilderState,
62
+ ): void => {
63
+ // update fetch-structure
64
+ queryBuilderState.fetchStructureState.changeImplementation(
65
+ FETCH_STRUCTURE_IMPLEMENTATION.PROJECTION,
66
+ );
67
+
68
+ // check parameters
69
+ assertTrue(
70
+ expression.parametersValues.length === 3,
71
+ `Can't process project() expression: project() expects 2 arguments`,
72
+ );
73
+
74
+ // check preceding expression
75
+ const precedingExpression = guaranteeType(
76
+ expression.parametersValues[0],
77
+ SimpleFunctionExpression,
78
+ `Can't process project() expression: only support project() immediately following an expression`,
79
+ );
80
+ assertTrue(
81
+ matchFunctionName(precedingExpression.functionName, [
82
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL,
83
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER,
84
+ ]),
85
+ `Can't process project() expression: only support project() immediately following either getAll() or filter()`,
86
+ );
87
+ QueryBuilderValueSpecificationProcessor.process(
88
+ precedingExpression,
89
+ queryBuilderState,
90
+ );
91
+
92
+ // check columns
93
+ const columnLambdas = expression.parametersValues[1];
94
+ assertType(
95
+ columnLambdas,
96
+ CollectionInstanceValue,
97
+ `Can't process project() expression: project() expects argument #1 to be a collection`,
98
+ );
99
+ columnLambdas.values.map((value) =>
100
+ QueryBuilderValueSpecificationProcessor.processChild(
101
+ value,
102
+ expression,
103
+ queryBuilderState,
104
+ ),
105
+ );
106
+
107
+ // check column aliases
108
+ const columnAliases = expression.parametersValues[2];
109
+ assertType(
110
+ columnAliases,
111
+ CollectionInstanceValue,
112
+ `Can't process project() expression: project() expects argument #2 to be a collection`,
113
+ );
114
+ assertTrue(
115
+ columnLambdas.values.length === columnAliases.values.length,
116
+ `Can't process project() expression: number of aliases does not match the number of columns`,
117
+ );
118
+ const aliases = columnAliases.values
119
+ .map(extractNullableStringFromInstanceValue)
120
+ .filter(isNonNullable);
121
+
122
+ // build state
123
+ if (
124
+ queryBuilderState.fetchStructureState.implementation instanceof
125
+ QueryBuilderProjectionState
126
+ ) {
127
+ const projectionState =
128
+ queryBuilderState.fetchStructureState.implementation;
129
+ projectionState.columns.forEach((column, idx) =>
130
+ column.setColumnName(aliases[idx] as string),
131
+ );
132
+ }
133
+ };
134
+
135
+ export const processTDSProjectionColumnPropertyExpression = (
136
+ expression: AbstractPropertyExpression,
137
+ queryBuilderState: QueryBuilderState,
138
+ ): void => {
139
+ if (
140
+ queryBuilderState.fetchStructureState.implementation instanceof
141
+ QueryBuilderProjectionState
142
+ ) {
143
+ const projectionState =
144
+ queryBuilderState.fetchStructureState.implementation;
145
+ // NOTE: we do this before creating the projection state, as we will
146
+ // auto-fill arguments for derived properties when missing as part of building
147
+ // the property expression state.
148
+ let currentPropertyExpression: ValueSpecification = expression;
149
+ while (currentPropertyExpression instanceof AbstractPropertyExpression) {
150
+ const propertyExpression = currentPropertyExpression;
151
+ validatePropertyExpressionChain(
152
+ currentPropertyExpression,
153
+ queryBuilderState.graphManagerState.graph,
154
+ );
155
+ currentPropertyExpression = guaranteeNonNullable(
156
+ currentPropertyExpression.parametersValues[0],
157
+ );
158
+ // here we just do a simple check to ensure that if we encounter derived properties
159
+ // the number of parameters and arguments provided match
160
+ if (propertyExpression.func instanceof DerivedProperty) {
161
+ assertTrue(
162
+ (Array.isArray(propertyExpression.func.parameters)
163
+ ? propertyExpression.func.parameters.length
164
+ : 0) ===
165
+ propertyExpression.parametersValues.length - 1,
166
+ `Can't process property expression: derived property '${propertyExpression.func.name}' expects number of provided arguments to match number of parameters`,
167
+ );
168
+ }
169
+ // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
170
+ // $x.employees->subType(@Person)->subType(@Staff)
171
+ while (
172
+ currentPropertyExpression instanceof SimpleFunctionExpression &&
173
+ matchFunctionName(
174
+ currentPropertyExpression.functionName,
175
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE,
176
+ )
177
+ ) {
178
+ currentPropertyExpression = guaranteeNonNullable(
179
+ currentPropertyExpression.parametersValues[0],
180
+ );
181
+ }
182
+ }
183
+ assertType(
184
+ currentPropertyExpression,
185
+ VariableExpression,
186
+ `Can't process property expression: expects expression root to be a variable`,
187
+ );
188
+
189
+ const columnState = new QueryBuilderSimpleProjectionColumnState(
190
+ projectionState,
191
+ expression,
192
+ false,
193
+ );
194
+
195
+ projectionState.addColumn(columnState, { skipSorting: true });
196
+
197
+ // NOTE: technically we should set the lambda parameter name when we process
198
+ // the lambda, not when we process the lambda body like this, but that requires
199
+ // some setup, so it's easier to do it here. The validation of this should have
200
+ // already been taken care of by the builder.
201
+ columnState.setLambdaParameterName(currentPropertyExpression.name);
202
+ }
203
+ };
204
+
205
+ export const processTDSProjectionDerivationExpression = (
206
+ value: INTERNAL__UnknownValueSpecification,
207
+ parentExpression: SimpleFunctionExpression,
208
+ queryBuilderState: QueryBuilderState,
209
+ ): void => {
210
+ if (
211
+ queryBuilderState.fetchStructureState.implementation instanceof
212
+ QueryBuilderProjectionState
213
+ ) {
214
+ const projectionState =
215
+ queryBuilderState.fetchStructureState.implementation;
216
+ const rawLambdaProtocol = returnUndefOnError(() =>
217
+ guaranteeType(
218
+ V1_deserializeRawValueSpecification(
219
+ value.content as PlainObject<V1_RawLambda>,
220
+ ),
221
+ V1_RawLambda,
222
+ ),
223
+ );
224
+ assertNonNullable(
225
+ rawLambdaProtocol,
226
+ `Can't process unknown value: only support ${parentExpression.functionName}() column expression as a lambda`,
227
+ );
228
+
229
+ const columnState = new QueryBuilderDerivationProjectionColumnState(
230
+ projectionState,
231
+ new RawLambda(rawLambdaProtocol.parameters, rawLambdaProtocol.body),
232
+ );
233
+ projectionState.addColumn(columnState, { skipSorting: true });
234
+ }
235
+ };
236
+
237
+ export const processTDSTakeExpression = (
238
+ expression: SimpleFunctionExpression,
239
+ queryBuilderState: QueryBuilderState,
240
+ ): void => {
241
+ // check parameters
242
+ assertTrue(
243
+ expression.parametersValues.length === 2,
244
+ `Can't process take() expression: take() expects 1 argument`,
245
+ );
246
+
247
+ // check preceding expression
248
+ const precedingExpression = guaranteeType(
249
+ expression.parametersValues[0],
250
+ SimpleFunctionExpression,
251
+ `Can't process take() expression: only support take() immediately following an expression`,
252
+ );
253
+
254
+ assertTrue(
255
+ matchFunctionName(precedingExpression.functionName, [
256
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
257
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
258
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
259
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
260
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
261
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
262
+ ]),
263
+ `Can't process take() expression: only support take() in TDS expression`,
264
+ );
265
+ QueryBuilderValueSpecificationProcessor.process(
266
+ precedingExpression,
267
+ queryBuilderState,
268
+ );
269
+
270
+ // build state
271
+ if (
272
+ queryBuilderState.fetchStructureState.implementation instanceof
273
+ QueryBuilderProjectionState
274
+ ) {
275
+ const projectionState =
276
+ queryBuilderState.fetchStructureState.implementation;
277
+ const takeValue = extractNullableNumberFromInstanceValue(
278
+ guaranteeNonNullable(expression.parametersValues[1]),
279
+ );
280
+ projectionState.resultSetModifierState.setLimit(takeValue);
281
+ }
282
+ };
283
+
284
+ export const processTDSDistinctExpression = (
285
+ expression: SimpleFunctionExpression,
286
+ queryBuilderState: QueryBuilderState,
287
+ ): void => {
288
+ // check parameters
289
+ assertTrue(
290
+ expression.parametersValues.length === 1,
291
+ `Can't process disctinct() expression: distinct() expects no parameter`,
292
+ );
293
+
294
+ // check preceding expression
295
+ const precedingExpression = guaranteeType(
296
+ expression.parametersValues[0],
297
+ SimpleFunctionExpression,
298
+ `Can't process distinct() expression: only support distinct() immediately following an expression`,
299
+ );
300
+ assertTrue(
301
+ matchFunctionName(precedingExpression.functionName, [
302
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
303
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
304
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
305
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
306
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
307
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
308
+ ]),
309
+ `Can't process distinct() expression: only support distinct() in TDS expression`,
310
+ );
311
+ QueryBuilderValueSpecificationProcessor.process(
312
+ precedingExpression,
313
+ queryBuilderState,
314
+ );
315
+
316
+ // build state
317
+ if (
318
+ queryBuilderState.fetchStructureState.implementation instanceof
319
+ QueryBuilderProjectionState
320
+ ) {
321
+ const projectionState =
322
+ queryBuilderState.fetchStructureState.implementation;
323
+ projectionState.resultSetModifierState.distinct = true;
324
+ }
325
+ };
326
+
327
+ export const processTDSSortExpression = (
328
+ expression: SimpleFunctionExpression,
329
+ queryBuilderState: QueryBuilderState,
330
+ ): void => {
331
+ // check parameters
332
+ assertTrue(
333
+ expression.parametersValues.length === 2,
334
+ `Can't process sort() expression: sort() expects 1 argument`,
335
+ );
336
+
337
+ // check preceding expression
338
+ const precedingExpression = guaranteeType(
339
+ expression.parametersValues[0],
340
+ SimpleFunctionExpression,
341
+ `Can't process sort() expression: only support sort() immediately following an expression`,
342
+ );
343
+ assertTrue(
344
+ matchFunctionName(precedingExpression.functionName, [
345
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
346
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
347
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
348
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
349
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
350
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
351
+ ]),
352
+ `Can't process sort() expression: only support sort() in TDS expression`,
353
+ );
354
+ QueryBuilderValueSpecificationProcessor.process(
355
+ precedingExpression,
356
+ queryBuilderState,
357
+ );
358
+
359
+ // check sort configuration
360
+ const sortLambdas = expression.parametersValues[1];
361
+ assertType(
362
+ sortLambdas,
363
+ CollectionInstanceValue,
364
+ `Can't process sort() expression: sort() argument should be a collection`,
365
+ );
366
+ sortLambdas.values.map((value) =>
367
+ QueryBuilderValueSpecificationProcessor.processChild(
368
+ value,
369
+ expression,
370
+ queryBuilderState,
371
+ ),
372
+ );
373
+ };
374
+
375
+ export const processTDSSortDirectionExpression = (
376
+ expression: SimpleFunctionExpression,
377
+ parentExpression: SimpleFunctionExpression | undefined,
378
+ queryBuilderState: QueryBuilderState,
379
+ ): void => {
380
+ const functionName = expression.functionName;
381
+
382
+ // check parent expression
383
+ assertTrue(
384
+ Boolean(
385
+ parentExpression &&
386
+ matchFunctionName(
387
+ parentExpression.functionName,
388
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
389
+ ),
390
+ ),
391
+ `Can't process ${functionName}() expression: only support ${functionName}() used within a sort() expression`,
392
+ );
393
+
394
+ // check parameters
395
+ assertTrue(
396
+ expression.parametersValues.length === 1,
397
+ `Can't process ${functionName}() expression: ${functionName}() expects no argument`,
398
+ );
399
+
400
+ // build state
401
+ if (
402
+ queryBuilderState.fetchStructureState.implementation instanceof
403
+ QueryBuilderProjectionState
404
+ ) {
405
+ const projectionState =
406
+ queryBuilderState.fetchStructureState.implementation;
407
+ const sortColumnName = extractNullableStringFromInstanceValue(
408
+ guaranteeNonNullable(expression.parametersValues[0]),
409
+ );
410
+ const queryBuilderProjectionColumnState = projectionState.columns.find(
411
+ (e) => e.columnName === sortColumnName,
412
+ );
413
+ if (queryBuilderProjectionColumnState) {
414
+ const sortColumnState = new SortColumnState(
415
+ queryBuilderProjectionColumnState,
416
+ );
417
+ sortColumnState.sortType = matchFunctionName(
418
+ functionName,
419
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_ASC,
420
+ )
421
+ ? COLUMN_SORT_TYPE.ASC
422
+ : COLUMN_SORT_TYPE.DESC;
423
+ projectionState.resultSetModifierState.addSortColumn(sortColumnState);
424
+ }
425
+ }
426
+ };