@finos/legend-extension-dsl-data-quality 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts +46 -0
  4. package/lib/components/DSL_DataQuality_ClassElementDriver.d.ts.map +1 -0
  5. package/lib/components/DSL_DataQuality_ClassElementDriver.js +116 -0
  6. package/lib/components/DSL_DataQuality_ClassElementDriver.js.map +1 -0
  7. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts +30 -0
  8. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.d.ts.map +1 -0
  9. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js +161 -0
  10. package/lib/components/DSL_DataQuality_LegendStudioApplicationPlugin.js.map +1 -0
  11. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts +25 -0
  12. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.d.ts.map +1 -0
  13. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js +2 -0
  14. package/lib/components/DSL_DataQuality_LegendStudioPlugin_Extension.js.map +1 -0
  15. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts +27 -0
  16. package/lib/components/DSL_DataQuality_ServiceElementDriver.d.ts.map +1 -0
  17. package/lib/components/DSL_DataQuality_ServiceElementDriver.js +41 -0
  18. package/lib/components/DSL_DataQuality_ServiceElementDriver.js.map +1 -0
  19. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts +19 -0
  20. package/lib/components/DSL_NewDataQualityClassValidationElement.d.ts.map +1 -0
  21. package/lib/components/DSL_NewDataQualityClassValidationElement.js +64 -0
  22. package/lib/components/DSL_NewDataQualityClassValidationElement.js.map +1 -0
  23. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts +19 -0
  24. package/lib/components/DSL_NewDataQualityServiceValidationElement.d.ts.map +1 -0
  25. package/lib/components/DSL_NewDataQualityServiceValidationElement.js +41 -0
  26. package/lib/components/DSL_NewDataQualityServiceValidationElement.js.map +1 -0
  27. package/lib/components/DataQualityClassValidationEditor.d.ts +19 -0
  28. package/lib/components/DataQualityClassValidationEditor.d.ts.map +1 -0
  29. package/lib/components/DataQualityClassValidationEditor.js +29 -0
  30. package/lib/components/DataQualityClassValidationEditor.js.map +1 -0
  31. package/lib/components/DataQualityConstraintsSelection.d.ts +39 -0
  32. package/lib/components/DataQualityConstraintsSelection.d.ts.map +1 -0
  33. package/lib/components/DataQualityConstraintsSelection.js +133 -0
  34. package/lib/components/DataQualityConstraintsSelection.js.map +1 -0
  35. package/lib/components/DataQualityDataSpaceBuilder.d.ts +22 -0
  36. package/lib/components/DataQualityDataSpaceBuilder.d.ts.map +1 -0
  37. package/lib/components/DataQualityDataSpaceBuilder.js +101 -0
  38. package/lib/components/DataQualityDataSpaceBuilder.js.map +1 -0
  39. package/lib/components/DataQualityExplorerPanel.d.ts +29 -0
  40. package/lib/components/DataQualityExplorerPanel.d.ts.map +1 -0
  41. package/lib/components/DataQualityExplorerPanel.js +185 -0
  42. package/lib/components/DataQualityExplorerPanel.js.map +1 -0
  43. package/lib/components/DataQualityFilterPanel.d.ts +24 -0
  44. package/lib/components/DataQualityFilterPanel.d.ts.map +1 -0
  45. package/lib/components/DataQualityFilterPanel.js +32 -0
  46. package/lib/components/DataQualityFilterPanel.js.map +1 -0
  47. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts +22 -0
  48. package/lib/components/DataQualityMappingAndRuntimeBuilder.d.ts.map +1 -0
  49. package/lib/components/DataQualityMappingAndRuntimeBuilder.js +98 -0
  50. package/lib/components/DataQualityMappingAndRuntimeBuilder.js.map +1 -0
  51. package/lib/components/DataQualityResultPanel.d.ts +22 -0
  52. package/lib/components/DataQualityResultPanel.d.ts.map +1 -0
  53. package/lib/components/DataQualityResultPanel.js +110 -0
  54. package/lib/components/DataQualityResultPanel.js.map +1 -0
  55. package/lib/components/DataQualityResultValues.d.ts +24 -0
  56. package/lib/components/DataQualityResultValues.d.ts.map +1 -0
  57. package/lib/components/DataQualityResultValues.js +31 -0
  58. package/lib/components/DataQualityResultValues.js.map +1 -0
  59. package/lib/components/DataQualityServiceValidationEditor.d.ts +19 -0
  60. package/lib/components/DataQualityServiceValidationEditor.d.ts.map +1 -0
  61. package/lib/components/DataQualityServiceValidationEditor.js +29 -0
  62. package/lib/components/DataQualityServiceValidationEditor.js.map +1 -0
  63. package/lib/components/DataQualitySideBar.d.ts +40 -0
  64. package/lib/components/DataQualitySideBar.d.ts.map +1 -0
  65. package/lib/components/DataQualitySideBar.js +78 -0
  66. package/lib/components/DataQualitySideBar.js.map +1 -0
  67. package/lib/components/DataQualityStructuralValidationsPanel.d.ts +22 -0
  68. package/lib/components/DataQualityStructuralValidationsPanel.d.ts.map +1 -0
  69. package/lib/components/DataQualityStructuralValidationsPanel.js +50 -0
  70. package/lib/components/DataQualityStructuralValidationsPanel.js.map +1 -0
  71. package/lib/components/DataQualityTabs.d.ts +22 -0
  72. package/lib/components/DataQualityTabs.d.ts.map +1 -0
  73. package/lib/components/DataQualityTabs.js +58 -0
  74. package/lib/components/DataQualityTabs.js.map +1 -0
  75. package/lib/components/DataQualityValidationEditor.d.ts +23 -0
  76. package/lib/components/DataQualityValidationEditor.d.ts.map +1 -0
  77. package/lib/components/DataQualityValidationEditor.js +24 -0
  78. package/lib/components/DataQualityValidationEditor.js.map +1 -0
  79. package/lib/components/constants/DataQualityConstants.d.ts +24 -0
  80. package/lib/components/constants/DataQualityConstants.d.ts.map +1 -0
  81. package/lib/components/constants/DataQualityConstants.js +25 -0
  82. package/lib/components/constants/DataQualityConstants.js.map +1 -0
  83. package/lib/components/index.d.ts +19 -0
  84. package/lib/components/index.d.ts.map +1 -0
  85. package/lib/components/index.js +19 -0
  86. package/lib/components/index.js.map +1 -0
  87. package/lib/components/states/ConstraintState.d.ts +30 -0
  88. package/lib/components/states/ConstraintState.d.ts.map +1 -0
  89. package/lib/components/states/ConstraintState.js +55 -0
  90. package/lib/components/states/ConstraintState.js.map +1 -0
  91. package/lib/components/states/DataQualityClassValidationState.d.ts +43 -0
  92. package/lib/components/states/DataQualityClassValidationState.d.ts.map +1 -0
  93. package/lib/components/states/DataQualityClassValidationState.js +162 -0
  94. package/lib/components/states/DataQualityClassValidationState.js.map +1 -0
  95. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts +34 -0
  96. package/lib/components/states/DataQualityGraphFetchTreeState.d.ts.map +1 -0
  97. package/lib/components/states/DataQualityGraphFetchTreeState.js +70 -0
  98. package/lib/components/states/DataQualityGraphFetchTreeState.js.map +1 -0
  99. package/lib/components/states/DataQualityQueryBuilderState.d.ts +19 -0
  100. package/lib/components/states/DataQualityQueryBuilderState.d.ts.map +1 -0
  101. package/lib/components/states/DataQualityQueryBuilderState.js +19 -0
  102. package/lib/components/states/DataQualityQueryBuilderState.js.map +1 -0
  103. package/lib/components/states/DataQualityResultState.d.ts +44 -0
  104. package/lib/components/states/DataQualityResultState.d.ts.map +1 -0
  105. package/lib/components/states/DataQualityResultState.js +154 -0
  106. package/lib/components/states/DataQualityResultState.js.map +1 -0
  107. package/lib/components/states/DataQualityServiceValidationState.d.ts +25 -0
  108. package/lib/components/states/DataQualityServiceValidationState.d.ts.map +1 -0
  109. package/lib/components/states/DataQualityServiceValidationState.js +33 -0
  110. package/lib/components/states/DataQualityServiceValidationState.js.map +1 -0
  111. package/lib/components/states/DataQualityState.d.ts +67 -0
  112. package/lib/components/states/DataQualityState.d.ts.map +1 -0
  113. package/lib/components/states/DataQualityState.js +204 -0
  114. package/lib/components/states/DataQualityState.js.map +1 -0
  115. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts +51 -0
  116. package/lib/components/utils/DataQualityGraphFetchTreeUtil.d.ts.map +1 -0
  117. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js +321 -0
  118. package/lib/components/utils/DataQualityGraphFetchTreeUtil.js.map +1 -0
  119. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts +29 -0
  120. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.d.ts.map +1 -0
  121. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js +30 -0
  122. package/lib/graph/metamodel/DSL_DataQuality_HashUtils.js.map +1 -0
  123. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts +22 -0
  124. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.d.ts.map +1 -0
  125. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js +31 -0
  126. package/lib/graph/metamodel/DSL_DataQuality_PureGraphPlugin.js.map +1 -0
  127. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts +26 -0
  128. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.d.ts.map +1 -0
  129. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js +44 -0
  130. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js.map +1 -0
  131. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts +47 -0
  132. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.d.ts.map +1 -0
  133. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js +75 -0
  134. package/lib/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.js.map +1 -0
  135. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts +20 -0
  136. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.d.ts.map +1 -0
  137. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js +20 -0
  138. package/lib/graph-manager/DSL_DataQuality_GraphManagerHelper.js.map +1 -0
  139. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts +20 -0
  140. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.d.ts.map +1 -0
  141. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js +30 -0
  142. package/lib/graph-manager/DSL_DataQuality_GraphManagerPreset.js.map +1 -0
  143. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts +26 -0
  144. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.d.ts.map +1 -0
  145. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js +57 -0
  146. package/lib/graph-manager/DSL_DataQuality_GraphModifierHelper.js.map +1 -0
  147. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts +7 -0
  148. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.d.ts.map +1 -0
  149. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js +42 -0
  150. package/lib/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.js.map +1 -0
  151. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts +24 -0
  152. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.d.ts.map +1 -0
  153. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js +98 -0
  154. package/lib/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.js.map +1 -0
  155. package/lib/graph-manager/index.d.ts +19 -0
  156. package/lib/graph-manager/index.d.ts.map +1 -0
  157. package/lib/graph-manager/index.js +19 -0
  158. package/lib/graph-manager/index.js.map +1 -0
  159. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts +27 -0
  160. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.d.ts.map +1 -0
  161. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js +21 -0
  162. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.js.map +1 -0
  163. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts +25 -0
  164. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.d.ts.map +1 -0
  165. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js +140 -0
  166. package/lib/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.js.map +1 -0
  167. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts +18 -0
  168. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.d.ts.map +1 -0
  169. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js +20 -0
  170. package/lib/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.js.map +1 -0
  171. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts +41 -0
  172. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.d.ts.map +1 -0
  173. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js +95 -0
  174. package/lib/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.js.map +1 -0
  175. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts +46 -0
  176. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.d.ts.map +1 -0
  177. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js +76 -0
  178. package/lib/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.js.map +1 -0
  179. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts +22 -0
  180. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.d.ts.map +1 -0
  181. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js +32 -0
  182. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.js.map +1 -0
  183. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts +22 -0
  184. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.d.ts.map +1 -0
  185. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js +31 -0
  186. package/lib/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.js.map +1 -0
  187. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts +24 -0
  188. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -0
  189. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js +92 -0
  190. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.js.map +1 -0
  191. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts +20 -0
  192. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.d.ts.map +1 -0
  193. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js +56 -0
  194. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.js.map +1 -0
  195. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts +22 -0
  196. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.d.ts.map +1 -0
  197. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js +70 -0
  198. package/lib/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.js.map +1 -0
  199. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts +29 -0
  200. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.d.ts.map +1 -0
  201. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js +80 -0
  202. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.js.map +1 -0
  203. package/lib/index.css +17 -0
  204. package/lib/index.css.map +1 -0
  205. package/lib/package.json +87 -0
  206. package/package.json +87 -0
  207. package/src/components/DSL_DataQuality_ClassElementDriver.tsx +175 -0
  208. package/src/components/DSL_DataQuality_LegendStudioApplicationPlugin.tsx +220 -0
  209. package/src/components/DSL_DataQuality_LegendStudioPlugin_Extension.ts +39 -0
  210. package/src/components/DSL_DataQuality_ServiceElementDriver.tsx +57 -0
  211. package/src/components/DSL_NewDataQualityClassValidationElement.tsx +156 -0
  212. package/src/components/DSL_NewDataQualityServiceValidationElement.tsx +74 -0
  213. package/src/components/DataQualityClassValidationEditor.tsx +49 -0
  214. package/src/components/DataQualityConstraintsSelection.tsx +376 -0
  215. package/src/components/DataQualityDataSpaceBuilder.tsx +274 -0
  216. package/src/components/DataQualityExplorerPanel.tsx +584 -0
  217. package/src/components/DataQualityFilterPanel.tsx +50 -0
  218. package/src/components/DataQualityMappingAndRuntimeBuilder.tsx +224 -0
  219. package/src/components/DataQualityResultPanel.tsx +335 -0
  220. package/src/components/DataQualityResultValues.tsx +61 -0
  221. package/src/components/DataQualityServiceValidationEditor.tsx +49 -0
  222. package/src/components/DataQualitySideBar.tsx +216 -0
  223. package/src/components/DataQualityStructuralValidationsPanel.tsx +105 -0
  224. package/src/components/DataQualityTabs.tsx +104 -0
  225. package/src/components/DataQualityValidationEditor.tsx +52 -0
  226. package/src/components/constants/DataQualityConstants.ts +24 -0
  227. package/src/components/index.ts +19 -0
  228. package/src/components/states/ConstraintState.ts +70 -0
  229. package/src/components/states/DataQualityClassValidationState.ts +308 -0
  230. package/src/components/states/DataQualityGraphFetchTreeState.ts +125 -0
  231. package/src/components/states/DataQualityQueryBuilderState.ts +19 -0
  232. package/src/components/states/DataQualityResultState.ts +217 -0
  233. package/src/components/states/DataQualityServiceValidationState.ts +56 -0
  234. package/src/components/states/DataQualityState.ts +354 -0
  235. package/src/components/utils/DataQualityGraphFetchTreeUtil.ts +592 -0
  236. package/src/graph/metamodel/DSL_DataQuality_HashUtils.ts +29 -0
  237. package/src/graph/metamodel/DSL_DataQuality_PureGraphPlugin.ts +36 -0
  238. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.ts +55 -0
  239. package/src/graph/metamodel/pure/packageableElements/data-quality/DataQualityValidationConfiguration.ts +107 -0
  240. package/src/graph-manager/DSL_DataQuality_GraphManagerHelper.ts +46 -0
  241. package/src/graph-manager/DSL_DataQuality_GraphManagerPreset.ts +31 -0
  242. package/src/graph-manager/DSL_DataQuality_GraphModifierHelper.ts +113 -0
  243. package/src/graph-manager/DSL_DataQuality_PureGraphManagerPlugin.ts +59 -0
  244. package/src/graph-manager/action/changeDetection/DSL_DataQuality_ObserverHelper.ts +153 -0
  245. package/src/graph-manager/index.ts +19 -0
  246. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureGraphManagerExtension.ts +59 -0
  247. package/src/graph-manager/protocol/pure/DSL_DataQuality_PureProtocolProcessorPlugin.ts +283 -0
  248. package/src/graph-manager/protocol/pure/DSL_DataQuality_buildGraphManagerExtension.ts +27 -0
  249. package/src/graph-manager/protocol/pure/v1/V1_DSL_Data_Quality_PureGraphManagerExtension.ts +246 -0
  250. package/src/graph-manager/protocol/pure/v1/V1_DataQualityConstraintsConfiguration.ts +103 -0
  251. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityPropertyGraphFetchTree.ts +37 -0
  252. package/src/graph-manager/protocol/pure/v1/model/graphFetch/V1_DataQualityRootGraphFetchTree.ts +36 -0
  253. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationBuilderHelper.ts +241 -0
  254. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationSerializer.ts +113 -0
  255. package/src/graph-manager/protocol/pure/v1/transformation/V1_ValueSpecificationTransformer.ts +139 -0
  256. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataQuality_ProtocolHelper.ts +186 -0
  257. package/style/_data-quality-validation-builder.scss +1660 -0
  258. package/style/index.scss +67 -0
  259. package/tsconfig.json +137 -0
  260. package/tsconfig.package.json +9 -0
@@ -0,0 +1,592 @@
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 { type TreeData, type TreeNodeData } from '@finos/legend-art';
18
+ import {
19
+ type Hashable,
20
+ addUniqueEntry,
21
+ assertErrorThrown,
22
+ assertType,
23
+ deleteEntry,
24
+ hashArray,
25
+ LogEvent,
26
+ UnsupportedOperationError,
27
+ } from '@finos/legend-shared';
28
+ import { action, computed, makeObservable, observable } from 'mobx';
29
+ import {
30
+ type AbstractProperty,
31
+ type Type,
32
+ type Constraint,
33
+ type GraphFetchTree,
34
+ type RawLambda,
35
+ Class,
36
+ GRAPH_MANAGER_EVENT,
37
+ PackageableElementExplicitReference,
38
+ PropertyExplicitReference,
39
+ getAllClassConstraints,
40
+ isStubbed_RawLambda,
41
+ TYPE_CAST_TOKEN,
42
+ } from '@finos/legend-graph';
43
+ import {
44
+ type QueryBuilderExplorerTreeNodeData,
45
+ graphFetchTree_addSubTree,
46
+ graphFetchTree_removeSubTree,
47
+ type QueryBuilderExplorerTreeRootNodeData,
48
+ QueryBuilderExplorerTreePropertyNodeData,
49
+ QueryBuilderExplorerTreeSubTypeNodeData,
50
+ } from '@finos/legend-query-builder';
51
+ import type { DataQualityState } from '../states/DataQualityState.js';
52
+ import {
53
+ DataQualityPropertyGraphFetchTree,
54
+ DataQualityRootGraphFetchTree,
55
+ } from '../../graph/metamodel/pure/packageableElements/data-quality/DataQualityGraphFetchTree.js';
56
+ import { ConstraintState } from '../states/ConstraintState.js';
57
+ import type { EditorStore } from '@finos/legend-application-studio';
58
+ import { DATA_QUALITY_HASH_STRUCTURE } from '../../graph/metamodel/DSL_DataQuality_HashUtils.js';
59
+ import {
60
+ dataQualityGraphFetchTree_removeConstraints,
61
+ graphFetchTree_removeAllSubTrees,
62
+ } from '../../graph-manager/DSL_DataQuality_GraphModifierHelper.js';
63
+
64
+ export class DataQualityGraphFetchTreeNodeData
65
+ implements TreeNodeData, Hashable
66
+ {
67
+ readonly id: string;
68
+ readonly label: string;
69
+ readonly tree:
70
+ | DataQualityPropertyGraphFetchTree
71
+ | DataQualityRootGraphFetchTree;
72
+ readonly parentId?: string | undefined;
73
+ readonly editorStore: EditorStore;
74
+ isOpen?: boolean | undefined;
75
+ isReadOnly?: boolean;
76
+ childrenIds: string[] = [];
77
+ constraints: ConstraintState[] = [];
78
+
79
+ constructor(
80
+ editorStore: EditorStore,
81
+ id: string,
82
+ label: string,
83
+ parentId: string | undefined,
84
+ graphFetchTreeNode:
85
+ | DataQualityPropertyGraphFetchTree
86
+ | DataQualityRootGraphFetchTree,
87
+ ) {
88
+ makeObservable(this, {
89
+ hashCode: computed,
90
+ constraints: observable,
91
+ isReadOnly: observable,
92
+ setConstraintsForClass: action,
93
+ setIsReadOnly: action,
94
+ });
95
+
96
+ this.id = id;
97
+ this.label = label;
98
+ this.parentId = parentId;
99
+ this.tree = graphFetchTreeNode;
100
+ // NOTE: in this tree, every node is open
101
+ this.isOpen = true;
102
+ this.editorStore = editorStore;
103
+ }
104
+
105
+ setIsReadOnly(isReadOnly: boolean) {
106
+ this.isReadOnly = isReadOnly;
107
+ }
108
+
109
+ setConstraintsForClass(_class: Class, constraintsToSelect: string[]) {
110
+ const constraints = getAllClassConstraints(_class).map(
111
+ (constraint) => new ConstraintState(constraint),
112
+ );
113
+ const lambdas = new Map<string, RawLambda>();
114
+ const index = new Map<string, ConstraintState>();
115
+ constraints.forEach((constraintState) => {
116
+ if (!isStubbed_RawLambda(constraintState.constraint.functionDefinition)) {
117
+ lambdas.set(
118
+ constraintState.lambdaId,
119
+ constraintState.constraint.functionDefinition,
120
+ );
121
+ index.set(constraintState.lambdaId, constraintState);
122
+ if (
123
+ constraintsToSelect.find(
124
+ (constraintName) =>
125
+ constraintState.constraint.name === constraintName,
126
+ )
127
+ ) {
128
+ constraintState.isSelected = true;
129
+ }
130
+ }
131
+ });
132
+ if (lambdas.size) {
133
+ this.editorStore.graphManagerState.graphManager
134
+ .lambdasToPureCode(lambdas)
135
+ .then((res: Map<string, string>) => {
136
+ res.forEach((grammarText: string, key: string) => {
137
+ const constraintState = index.get(key);
138
+ constraintState?.setLambdaString(
139
+ constraintState.extractLambdaString(grammarText),
140
+ );
141
+ });
142
+ this.constraints = constraints;
143
+ })
144
+ .catch((error) => {
145
+ assertErrorThrown(error);
146
+ this.editorStore.applicationStore.logService.error(
147
+ LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
148
+ error,
149
+ );
150
+ });
151
+ }
152
+ }
153
+
154
+ get type(): Type {
155
+ if (this.tree instanceof DataQualityPropertyGraphFetchTree) {
156
+ return this.tree.property.value.genericType.value.rawType;
157
+ }
158
+ if (this.tree instanceof DataQualityRootGraphFetchTree) {
159
+ return this.tree.class.value;
160
+ }
161
+ throw new UnsupportedOperationError(
162
+ `Can't get type of Graph Fetch Tree`,
163
+ this.tree,
164
+ );
165
+ }
166
+
167
+ get hashCode(): string {
168
+ return hashArray([
169
+ DATA_QUALITY_HASH_STRUCTURE.DATA_QUALITY_GRAPH_FETCH_TREE_NODE_DATA,
170
+ this.id,
171
+ this.label,
172
+ this.tree,
173
+ this.parentId ?? '',
174
+ hashArray(this.childrenIds),
175
+ ]);
176
+ }
177
+ }
178
+
179
+ export interface DataQualityGraphFetchTreeData
180
+ extends TreeData<DataQualityGraphFetchTreeNodeData> {
181
+ tree: DataQualityRootGraphFetchTree;
182
+ }
183
+
184
+ export const generateRootGraphFetchTreeNodeID = (
185
+ parentNodeId: string | undefined,
186
+ classValue: string | undefined,
187
+ ): string =>
188
+ `${parentNodeId ? `${parentNodeId}.` : ''}${
189
+ classValue ? `${TYPE_CAST_TOKEN}${classValue}` : ''
190
+ }`;
191
+
192
+ const getPrunableNodes = (
193
+ treeData: DataQualityGraphFetchTreeData,
194
+ ): DataQualityGraphFetchTreeNodeData[] =>
195
+ Array.from(treeData.nodes.values()).filter(
196
+ (node) =>
197
+ (node.type instanceof Class &&
198
+ node.childrenIds.length === 0 &&
199
+ node.constraints.length === 0) ||
200
+ // orphan node
201
+ (node.tree instanceof DataQualityPropertyGraphFetchTree &&
202
+ node.parentId &&
203
+ !treeData.nodes.has(node.parentId)),
204
+ );
205
+
206
+ const removeNode = (
207
+ treeData: DataQualityGraphFetchTreeData,
208
+ node: DataQualityGraphFetchTreeNodeData,
209
+ ): void => {
210
+ const parentNode = node.parentId
211
+ ? treeData.nodes.get(node.parentId)
212
+ : undefined;
213
+ if (parentNode) {
214
+ deleteEntry(parentNode.childrenIds, node.id);
215
+ graphFetchTree_removeSubTree(parentNode.tree, node.tree);
216
+ } else {
217
+ if (node.tree instanceof DataQualityRootGraphFetchTree) {
218
+ deleteEntry(treeData.rootIds, node.id);
219
+ dataQualityGraphFetchTree_removeConstraints(node.tree);
220
+ graphFetchTree_removeAllSubTrees(node.tree);
221
+ }
222
+ graphFetchTree_removeSubTree(treeData.tree, node.tree);
223
+ }
224
+ treeData.nodes.delete(node.id);
225
+ };
226
+ const pruneTreeData = (treeData: DataQualityGraphFetchTreeData): void => {
227
+ let prunableNodes = getPrunableNodes(treeData);
228
+ while (prunableNodes.length) {
229
+ prunableNodes.forEach((node) => {
230
+ removeNode(treeData, node);
231
+ });
232
+ prunableNodes = getPrunableNodes(treeData);
233
+ }
234
+ };
235
+ export const removeNodeRecursively = (
236
+ treeData: DataQualityGraphFetchTreeData,
237
+ node: DataQualityGraphFetchTreeNodeData,
238
+ ): void => {
239
+ removeNode(treeData, node);
240
+ pruneTreeData(treeData);
241
+ };
242
+
243
+ export const generateGraphFetchTreeNodeID = (
244
+ property: AbstractProperty,
245
+ parentNodeId: string | undefined,
246
+ subType: Type | undefined,
247
+ ): string =>
248
+ `${parentNodeId ? `${parentNodeId}.` : ''}${property.name}${
249
+ subType ? `${TYPE_CAST_TOKEN}${subType.path}` : ''
250
+ }`;
251
+
252
+ const buildGraphFetchSubTree = (
253
+ editorStore: EditorStore,
254
+ tree: GraphFetchTree,
255
+ parentNode: DataQualityGraphFetchTreeNodeData | undefined,
256
+ nodes: Map<string, DataQualityGraphFetchTreeNodeData>,
257
+ fetchConstraints: boolean,
258
+ isReadOnly: boolean,
259
+ ): DataQualityGraphFetchTreeNodeData => {
260
+ assertType(
261
+ tree,
262
+ DataQualityPropertyGraphFetchTree,
263
+ 'Graph fetch sub-tree must be a property graph fetch tree',
264
+ );
265
+ const property = tree.property.value;
266
+ const subType = tree.subType?.value;
267
+ const parentNodeId = parentNode?.id;
268
+ const node = new DataQualityGraphFetchTreeNodeData(
269
+ editorStore,
270
+ generateGraphFetchTreeNodeID(property, parentNodeId, subType),
271
+ property.name,
272
+ parentNodeId,
273
+ tree,
274
+ );
275
+ node.setIsReadOnly(isReadOnly);
276
+ if (
277
+ node.type instanceof Class &&
278
+ fetchConstraints &&
279
+ tree.constraints.length
280
+ ) {
281
+ node.setConstraintsForClass(node.type, tree.constraints);
282
+ }
283
+ tree.subTrees.forEach((subTree) => {
284
+ const subTreeNode = buildGraphFetchSubTree(
285
+ editorStore,
286
+ subTree,
287
+ node,
288
+ nodes,
289
+ fetchConstraints,
290
+ isReadOnly,
291
+ );
292
+ addUniqueEntry(node.childrenIds, subTreeNode.id);
293
+ nodes.set(subTreeNode.id, subTreeNode);
294
+ });
295
+ return node;
296
+ };
297
+
298
+ const buildRootGraphFetchSubTree = (
299
+ editorStore: EditorStore,
300
+ tree: DataQualityRootGraphFetchTree,
301
+ parentNode: DataQualityGraphFetchTreeNodeData | undefined,
302
+ nodes: Map<string, DataQualityGraphFetchTreeNodeData>,
303
+ fetchConstraints: boolean,
304
+ isReadonly: boolean,
305
+ ): DataQualityGraphFetchTreeNodeData => {
306
+ const parentNodeId = parentNode?.id;
307
+ const node = new DataQualityGraphFetchTreeNodeData(
308
+ editorStore,
309
+ generateRootGraphFetchTreeNodeID(
310
+ parentNodeId,
311
+ tree.class.valueForSerialization ?? '',
312
+ ),
313
+ tree.class.value.name,
314
+ parentNodeId,
315
+ tree,
316
+ );
317
+ node.setIsReadOnly(isReadonly);
318
+ if (
319
+ node.type instanceof Class &&
320
+ fetchConstraints &&
321
+ tree.constraints.length
322
+ ) {
323
+ node.setConstraintsForClass(node.type, tree.constraints);
324
+ }
325
+ tree.subTrees.forEach((subTree) => {
326
+ const subTreeNode = buildGraphFetchSubTree(
327
+ editorStore,
328
+ subTree,
329
+ node,
330
+ nodes,
331
+ fetchConstraints,
332
+ isReadonly,
333
+ );
334
+ addUniqueEntry(node.childrenIds, subTreeNode.id);
335
+ nodes.set(subTreeNode.id, subTreeNode);
336
+ });
337
+ return node;
338
+ };
339
+
340
+ export const buildGraphFetchTreeData = (
341
+ editorStore: EditorStore,
342
+ tree: DataQualityRootGraphFetchTree,
343
+ displayRoot: boolean = false,
344
+ fetchConstraints: boolean,
345
+ isReadOnly: boolean,
346
+ ): DataQualityGraphFetchTreeData => {
347
+ const rootIds: string[] = [];
348
+ const nodes = new Map<string, DataQualityGraphFetchTreeNodeData>();
349
+ if (displayRoot) {
350
+ const rootNode = buildRootGraphFetchSubTree(
351
+ editorStore,
352
+ tree,
353
+ undefined,
354
+ nodes,
355
+ fetchConstraints,
356
+ isReadOnly,
357
+ );
358
+ addUniqueEntry(rootIds, rootNode.id);
359
+ nodes.set(rootNode.id, rootNode);
360
+ } else {
361
+ tree.subTrees.forEach((subTree) => {
362
+ const subTreeNode = buildGraphFetchSubTree(
363
+ editorStore,
364
+ subTree,
365
+ undefined,
366
+ nodes,
367
+ fetchConstraints,
368
+ isReadOnly,
369
+ );
370
+ addUniqueEntry(rootIds, subTreeNode.id);
371
+ nodes.set(subTreeNode.id, subTreeNode);
372
+ });
373
+ }
374
+
375
+ return { rootIds, nodes, tree };
376
+ };
377
+
378
+ export const isGraphFetchTreeDataEmpty = (
379
+ treeData: DataQualityGraphFetchTreeData,
380
+ ): boolean => treeData.tree.subTrees.length === 0;
381
+
382
+ export const isConstraintsClassesTreeEmpty = (
383
+ treeData: DataQualityGraphFetchTreeData,
384
+ ): boolean => treeData.rootIds.length === 0;
385
+
386
+ export const updateNodeConstraints = (
387
+ treeData: DataQualityGraphFetchTreeData,
388
+ node: DataQualityGraphFetchTreeNodeData,
389
+ constraint: Constraint,
390
+ addConstraint: boolean,
391
+ ): void => {
392
+ //update the node of graph fetch tree present
393
+ const updatedTreeNode = node.tree;
394
+ if (addConstraint) {
395
+ updatedTreeNode.constraints.push(constraint.name);
396
+ } else {
397
+ updatedTreeNode.constraints = updatedTreeNode.constraints.filter(
398
+ (constraintName) => constraintName !== constraint.name,
399
+ );
400
+ }
401
+ };
402
+
403
+ export const addQueryBuilderPropertyNode = (
404
+ treeData: DataQualityGraphFetchTreeData,
405
+ explorerTreeData: TreeData<QueryBuilderExplorerTreeNodeData>,
406
+ node:
407
+ | QueryBuilderExplorerTreePropertyNodeData
408
+ | QueryBuilderExplorerTreeRootNodeData,
409
+ dataQualityState: DataQualityState,
410
+ ): void => {
411
+ const editorStore = dataQualityState.editorStore;
412
+ const rootNodeId = generateRootGraphFetchTreeNodeID(
413
+ undefined,
414
+ treeData.tree.class.valueForSerialization ?? '',
415
+ );
416
+ //root node and property node handled differently
417
+ //handling property node
418
+ if (node instanceof QueryBuilderExplorerTreePropertyNodeData) {
419
+ // traverse the property node all the way to the root and resolve the
420
+ // chain of property that leads to this property node
421
+ const propertyGraphFetchTrees: DataQualityPropertyGraphFetchTree[] = [
422
+ new DataQualityPropertyGraphFetchTree(
423
+ PropertyExplicitReference.create(node.property),
424
+ undefined,
425
+ ),
426
+ ];
427
+ let parentExplorerTreeNode = explorerTreeData.nodes.get(node.parentId);
428
+ while (
429
+ parentExplorerTreeNode instanceof
430
+ QueryBuilderExplorerTreePropertyNodeData ||
431
+ parentExplorerTreeNode instanceof QueryBuilderExplorerTreeSubTypeNodeData
432
+ ) {
433
+ let subType = undefined;
434
+ let subtypeAssigned = false;
435
+ while (
436
+ parentExplorerTreeNode instanceof
437
+ QueryBuilderExplorerTreeSubTypeNodeData
438
+ ) {
439
+ if (!subtypeAssigned) {
440
+ subType = PackageableElementExplicitReference.create(
441
+ parentExplorerTreeNode.subclass,
442
+ );
443
+ subtypeAssigned = true;
444
+ }
445
+ parentExplorerTreeNode = explorerTreeData.nodes.get(
446
+ parentExplorerTreeNode.parentId,
447
+ );
448
+ }
449
+ if (
450
+ parentExplorerTreeNode instanceof
451
+ QueryBuilderExplorerTreePropertyNodeData &&
452
+ parentExplorerTreeNode.mappingData.entityMappedProperty?.subType &&
453
+ parentExplorerTreeNode.type instanceof Class
454
+ ) {
455
+ subType = PackageableElementExplicitReference.create(
456
+ parentExplorerTreeNode.type,
457
+ );
458
+ }
459
+ if (
460
+ parentExplorerTreeNode instanceof
461
+ QueryBuilderExplorerTreePropertyNodeData
462
+ ) {
463
+ const propertyGraphFetchTree = new DataQualityPropertyGraphFetchTree(
464
+ PropertyExplicitReference.create(parentExplorerTreeNode.property),
465
+ subType,
466
+ );
467
+ propertyGraphFetchTree.subTrees.push(
468
+ propertyGraphFetchTrees[0] as DataQualityPropertyGraphFetchTree,
469
+ );
470
+ propertyGraphFetchTrees.unshift(propertyGraphFetchTree);
471
+ parentExplorerTreeNode = explorerTreeData.nodes.get(
472
+ parentExplorerTreeNode.parentId,
473
+ );
474
+ } else {
475
+ dataQualityState.applicationStore.notificationService.notifyError(
476
+ `Can't cast the root class of graph fetch structure to its subtype`,
477
+ );
478
+ return;
479
+ }
480
+ }
481
+
482
+ // traverse the chain of property from the root class to find a node in the
483
+ // current graph fetch tree that matches any of this property, consider
484
+ // this the starting point
485
+ //
486
+ // If we found a match, use that as the starting point, otherwise, use the root
487
+ // of the graph fetch tree as the starting point
488
+ //
489
+ // NOTE: here we assume that we don't allow specifying duplicated nodes.
490
+ // perhaps we need to allow that behavior in the future so people can customize the
491
+ // shape of the object (e.g. same field but under different aliases)
492
+
493
+ //current node id will be pointing root node id
494
+ let currentNodeId: string | undefined = rootNodeId;
495
+ let parentNode: DataQualityGraphFetchTreeNodeData | undefined =
496
+ treeData.nodes.get(rootNodeId);
497
+ let newSubTree: DataQualityPropertyGraphFetchTree | undefined;
498
+ for (const propertyGraphFetchTree of propertyGraphFetchTrees) {
499
+ currentNodeId = generateGraphFetchTreeNodeID(
500
+ propertyGraphFetchTree.property.value,
501
+ currentNodeId,
502
+ propertyGraphFetchTree.subType?.value,
503
+ );
504
+ const existingGraphFetchNode = treeData.nodes.get(currentNodeId);
505
+ if (existingGraphFetchNode) {
506
+ parentNode = existingGraphFetchNode;
507
+ } else {
508
+ newSubTree = propertyGraphFetchTree;
509
+ break;
510
+ }
511
+ }
512
+
513
+ // construct the query builder graph fetch subtree from the starting point
514
+ if (newSubTree) {
515
+ const childNode = buildGraphFetchSubTree(
516
+ editorStore,
517
+ newSubTree,
518
+ parentNode,
519
+ treeData.nodes,
520
+ false,
521
+ false,
522
+ );
523
+ treeData.nodes.set(childNode.id, childNode);
524
+ if (parentNode) {
525
+ addUniqueEntry(parentNode.childrenIds, childNode.id);
526
+ graphFetchTree_addSubTree(
527
+ parentNode.tree,
528
+ childNode.tree,
529
+ dataQualityState.dataQualityQueryBuilderState.observerContext,
530
+ );
531
+ } else {
532
+ //this case arises when we reach upto rootNode
533
+ let rootNode = treeData.nodes.get(rootNodeId);
534
+ //check if root node exists in actual tree made
535
+ if (!rootNode) {
536
+ rootNode = buildRootGraphFetchSubTree(
537
+ editorStore,
538
+ treeData.tree,
539
+ undefined,
540
+ treeData.nodes,
541
+ false,
542
+ false,
543
+ );
544
+ addUniqueEntry(treeData.rootIds, rootNode.id);
545
+ treeData.nodes.set(rootNode.id, rootNode);
546
+ }
547
+ addUniqueEntry(rootNode.childrenIds, childNode.id);
548
+ graphFetchTree_addSubTree(
549
+ treeData.tree,
550
+ childNode.tree,
551
+ dataQualityState.dataQualityQueryBuilderState.observerContext,
552
+ );
553
+ }
554
+ }
555
+
556
+ const nodeToShowConstraintsFor = treeData.nodes.get(
557
+ `${rootNodeId}.${node.id}`,
558
+ );
559
+ //fetching constraints for class node and making sure constraints is populated for the first time
560
+ if (
561
+ nodeToShowConstraintsFor &&
562
+ node.type instanceof Class &&
563
+ nodeToShowConstraintsFor.constraints.length === 0
564
+ ) {
565
+ nodeToShowConstraintsFor.setConstraintsForClass(node.type, []);
566
+ treeData.nodes.set(nodeToShowConstraintsFor.id, nodeToShowConstraintsFor);
567
+ }
568
+ } else {
569
+ //this case arises when root node is dragged
570
+ let rootNodeFromTree = treeData.nodes.get(rootNodeId);
571
+ //check if root node already exists in data quality root graph fetch tree
572
+ if (!rootNodeFromTree) {
573
+ rootNodeFromTree = buildRootGraphFetchSubTree(
574
+ editorStore,
575
+ treeData.tree,
576
+ undefined,
577
+ treeData.nodes,
578
+ false,
579
+ false,
580
+ );
581
+ addUniqueEntry(treeData.rootIds, rootNodeFromTree.id);
582
+ }
583
+ //making sure root node is class type and constraints is fetch for first time
584
+ if (
585
+ node.type instanceof Class &&
586
+ rootNodeFromTree.constraints.length === 0
587
+ ) {
588
+ rootNodeFromTree.setConstraintsForClass(node.type, []);
589
+ }
590
+ treeData.nodes.set(rootNodeFromTree.id, rootNodeFromTree);
591
+ }
592
+ };
@@ -0,0 +1,29 @@
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
+ export enum DATA_QUALITY_HASH_STRUCTURE {
18
+ DATA_QUALITY_CONSTRAINTS_CONFIGURATION = 'DATA_QUALITY_CONSTRAINTS_CONFIGURATION',
19
+ DATA_QUALITY_SERVICE_VALIDATION_CONFIGURATION = 'DATA_QUALITY_SERVICE_VALIDATION_CONFIGURATION',
20
+ DATA_QUALTIY_DATASPACE_EXECUTION_CONTEXT = 'DATA_QUALITY_DATASPACE_EXECUTION_CONTEXT',
21
+ DATA_QUALITY_MAPPING_AND_RUNTIME_EXECUTION_CONTEXT = 'DATA_QUALITY_MAPPING_AND_RUNTIME_EXECUTION_CONTEXT',
22
+ DATA_QUALITY_GRAPH_FETCH_STATE = 'DATA_QUALITY_GRAPH_FETCH_STATE',
23
+ DATA_QUALITY_GRAPH_FETCH_TREE = 'DATA_QUALITY_GRAPH_FETCH_TREE',
24
+ DATA_QUALITY_ROOT_GRAPH_FETCH_TREE = 'DATA_QUALITY_ROOT_GRAPH_FETCH_TREE',
25
+ DATA_QUALITY_PROPERTY_GRAPH_FETCH_TREE = 'DATA_QUALITY_PROPERTY_GRAPH_FETCH_TREE',
26
+ DATA_QUALITY_SUBTYPE_GRAPH_FETCH_TREE = 'DATA_QUALITY_SUBTYPE_GRAPH_FETCH_TREE',
27
+ DATA_QUALITY_GRAPH_FETCH_TREE_NODE_DATA = 'DATA_QUALITY_GRAPH_FETCH_TREE_NODE_DATA',
28
+ DATA_QUALITY_STATE = 'DATA_QUALITY_STATE',
29
+ }
@@ -0,0 +1,36 @@
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 { type Clazz } from '@finos/legend-shared';
18
+ import { type PackageableElement, PureGraphPlugin } from '@finos/legend-graph';
19
+ import packageJson from '../../../package.json';
20
+ import {
21
+ DataQualityClassValidationsConfiguration,
22
+ DataQualityServiceValidationConfiguration,
23
+ } from './pure/packageableElements/data-quality/DataQualityValidationConfiguration.js';
24
+
25
+ export class DSL_DataQuality_PureGraphPlugin extends PureGraphPlugin {
26
+ constructor() {
27
+ super(packageJson.extensions.pureGraphPlugin, packageJson.version);
28
+ }
29
+
30
+ override getExtraPureGraphExtensionClasses(): Clazz<PackageableElement>[] {
31
+ return [
32
+ DataQualityClassValidationsConfiguration,
33
+ DataQualityServiceValidationConfiguration,
34
+ ];
35
+ }
36
+ }