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

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 (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
+ }