@finos/legend-application-studio 25.0.6 → 26.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 (264) hide show
  1. package/lib/application/LegendStudio.d.ts.map +1 -1
  2. package/lib/application/LegendStudio.js +2 -0
  3. package/lib/application/LegendStudio.js.map +1 -1
  4. package/lib/components/editor/editor-group/GenerationSpecificationEditor.d.ts.map +1 -1
  5. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js +5 -5
  6. package/lib/components/editor/editor-group/GenerationSpecificationEditor.js.map +1 -1
  7. package/lib/components/editor/editor-group/GrammarTextEditor.d.ts.map +1 -1
  8. package/lib/components/editor/editor-group/GrammarTextEditor.js +1 -28
  9. package/lib/components/editor/editor-group/GrammarTextEditor.js.map +1 -1
  10. package/lib/components/editor/editor-group/ModelImporter.d.ts.map +1 -1
  11. package/lib/components/editor/editor-group/ModelImporter.js +4 -4
  12. package/lib/components/editor/editor-group/ModelImporter.js.map +1 -1
  13. package/lib/components/editor/editor-group/RuntimeEditor.d.ts.map +1 -1
  14. package/lib/components/editor/editor-group/RuntimeEditor.js +2 -2
  15. package/lib/components/editor/editor-group/RuntimeEditor.js.map +1 -1
  16. package/lib/components/editor/editor-group/UnsupportedElementEditor.d.ts.map +1 -1
  17. package/lib/components/editor/editor-group/UnsupportedElementEditor.js +3 -3
  18. package/lib/components/editor/editor-group/UnsupportedElementEditor.js.map +1 -1
  19. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.d.ts.map +1 -1
  20. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js +4 -2
  21. package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js.map +1 -1
  22. package/lib/components/editor/editor-group/connection-editor/DatabaseEditorHelper.d.ts +0 -1
  23. package/lib/components/editor/editor-group/connection-editor/DatabaseEditorHelper.d.ts.map +1 -1
  24. package/lib/components/editor/editor-group/connection-editor/DatabaseEditorHelper.js +0 -60
  25. package/lib/components/editor/editor-group/connection-editor/DatabaseEditorHelper.js.map +1 -1
  26. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
  27. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +13 -11
  28. package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
  29. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
  30. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js +11 -22
  31. package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
  32. package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.d.ts.map +1 -1
  33. package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js +7 -3
  34. package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js.map +1 -1
  35. package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map +1 -1
  36. package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js +1 -4
  37. package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map +1 -1
  38. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.d.ts.map +1 -1
  39. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js +3 -1
  40. package/lib/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.js.map +1 -1
  41. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
  42. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +2 -2
  43. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
  44. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.d.ts.map +1 -1
  45. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +4 -2
  46. package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
  47. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
  48. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.js +3 -1
  49. package/lib/components/editor/editor-group/mapping-editor/NewMappingElementModal.js.map +1 -1
  50. package/lib/components/editor/editor-group/mapping-editor/relational/TableOrViewSourceTree.d.ts.map +1 -1
  51. package/lib/components/editor/editor-group/mapping-editor/relational/TableOrViewSourceTree.js +3 -3
  52. package/lib/components/editor/editor-group/mapping-editor/relational/TableOrViewSourceTree.js.map +1 -1
  53. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
  54. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js +3 -3
  55. package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
  56. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.d.ts.map +1 -1
  57. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js +5 -10
  58. package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js.map +1 -1
  59. package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
  60. package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js +1 -4
  61. package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
  62. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.d.ts.map +1 -1
  63. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js +2 -2
  64. package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js.map +1 -1
  65. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.d.ts.map +1 -1
  66. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js +2 -1
  67. package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js.map +1 -1
  68. package/lib/components/editor/editor-group/testable/TestableSharedComponents.d.ts.map +1 -1
  69. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js +2 -2
  70. package/lib/components/editor/editor-group/testable/TestableSharedComponents.js.map +1 -1
  71. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.d.ts.map +1 -1
  72. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js +2 -2
  73. package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js.map +1 -1
  74. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js +2 -2
  75. package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js.map +1 -1
  76. package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
  77. package/lib/components/editor/side-bar/Explorer.js +14 -5
  78. package/lib/components/editor/side-bar/Explorer.js.map +1 -1
  79. package/lib/components/editor/side-bar/ProjectOverview.d.ts.map +1 -1
  80. package/lib/components/editor/side-bar/ProjectOverview.js +0 -5
  81. package/lib/components/editor/side-bar/ProjectOverview.js.map +1 -1
  82. package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
  83. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +2 -2
  84. package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
  85. package/lib/components/extensions/Core_LegendStudioApplicationPlugin.d.ts.map +1 -1
  86. package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js +0 -3
  87. package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js.map +1 -1
  88. package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts +1 -3
  89. package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts.map +1 -1
  90. package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.js +0 -16
  91. package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.js.map +1 -1
  92. package/lib/index.css +2 -2
  93. package/lib/index.css.map +1 -1
  94. package/lib/index.d.ts +0 -1
  95. package/lib/index.d.ts.map +1 -1
  96. package/lib/index.js +0 -1
  97. package/lib/index.js.map +1 -1
  98. package/lib/package.json +1 -1
  99. package/lib/stores/LegendStudioApplicationPlugin.d.ts +0 -8
  100. package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
  101. package/lib/stores/LegendStudioBaseStore.d.ts +1 -0
  102. package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
  103. package/lib/stores/LegendStudioBaseStore.js +10 -0
  104. package/lib/stores/LegendStudioBaseStore.js.map +1 -1
  105. package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
  106. package/lib/stores/editor/EditorGraphState.js +2 -2
  107. package/lib/stores/editor/EditorGraphState.js.map +1 -1
  108. package/lib/stores/editor/EditorSDLCState.d.ts +8 -5
  109. package/lib/stores/editor/EditorSDLCState.d.ts.map +1 -1
  110. package/lib/stores/editor/EditorSDLCState.js +25 -5
  111. package/lib/stores/editor/EditorSDLCState.js.map +1 -1
  112. package/lib/stores/editor/EditorStore.d.ts +0 -2
  113. package/lib/stores/editor/EditorStore.d.ts.map +1 -1
  114. package/lib/stores/editor/EditorStore.js +10 -15
  115. package/lib/stores/editor/EditorStore.js.map +1 -1
  116. package/lib/stores/editor/EditorTabManagerState.d.ts.map +1 -1
  117. package/lib/stores/editor/EditorTabManagerState.js +1 -1
  118. package/lib/stores/editor/EditorTabManagerState.js.map +1 -1
  119. package/lib/stores/editor/ExplorerTreeState.d.ts +5 -1
  120. package/lib/stores/editor/ExplorerTreeState.d.ts.map +1 -1
  121. package/lib/stores/editor/ExplorerTreeState.js +13 -0
  122. package/lib/stores/editor/ExplorerTreeState.js.map +1 -1
  123. package/lib/stores/editor/GraphEditGrammarModeState.d.ts +0 -3
  124. package/lib/stores/editor/GraphEditGrammarModeState.d.ts.map +1 -1
  125. package/lib/stores/editor/GraphEditGrammarModeState.js +26 -21
  126. package/lib/stores/editor/GraphEditGrammarModeState.js.map +1 -1
  127. package/lib/stores/editor/editor-state/GrammarTextEditorState.d.ts +3 -4
  128. package/lib/stores/editor/editor-state/GrammarTextEditorState.d.ts.map +1 -1
  129. package/lib/stores/editor/editor-state/GrammarTextEditorState.js +5 -111
  130. package/lib/stores/editor/editor-state/GrammarTextEditorState.js.map +1 -1
  131. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +2 -4
  132. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
  133. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js +6 -8
  134. package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
  135. package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts +4 -2
  136. package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts.map +1 -1
  137. package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.js +8 -4
  138. package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.js.map +1 -1
  139. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts +4 -7
  140. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts.map +1 -1
  141. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js +0 -3
  142. package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js.map +1 -1
  143. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts +1 -0
  144. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts.map +1 -1
  145. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js +19 -2
  146. package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js.map +1 -1
  147. package/lib/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js +1 -1
  148. package/lib/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js.map +1 -1
  149. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
  150. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js +5 -2
  151. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
  152. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.d.ts +3 -1
  153. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.d.ts.map +1 -1
  154. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.js +6 -0
  155. package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.js.map +1 -1
  156. package/lib/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js +1 -1
  157. package/lib/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js.map +1 -1
  158. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.d.ts +1 -0
  159. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
  160. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js +23 -3
  161. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
  162. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
  163. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js +4 -3
  164. package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
  165. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts +3 -4
  166. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
  167. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +2 -4
  168. package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
  169. package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts +0 -4
  170. package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
  171. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js +0 -48
  172. package/lib/stores/editor/sidebar-state/ProjectOverviewState.js.map +1 -1
  173. package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts +1 -1
  174. package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts.map +1 -1
  175. package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.js +1 -4
  176. package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
  177. package/lib/stores/editor/utils/ModelClassifierUtils.d.ts +2 -1
  178. package/lib/stores/editor/utils/ModelClassifierUtils.d.ts.map +1 -1
  179. package/lib/stores/editor/utils/ModelClassifierUtils.js +2 -1
  180. package/lib/stores/editor/utils/ModelClassifierUtils.js.map +1 -1
  181. package/lib/stores/editor/utils/TestableUtils.d.ts +3 -1
  182. package/lib/stores/editor/utils/TestableUtils.d.ts.map +1 -1
  183. package/lib/stores/editor/utils/TestableUtils.js +6 -0
  184. package/lib/stores/editor/utils/TestableUtils.js.map +1 -1
  185. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts +2 -2
  186. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
  187. package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
  188. package/lib/stores/project-view/ProjectViewerStore.d.ts.map +1 -1
  189. package/lib/stores/project-view/ProjectViewerStore.js +8 -5
  190. package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
  191. package/package.json +11 -11
  192. package/src/application/LegendStudio.tsx +2 -0
  193. package/src/components/editor/editor-group/GenerationSpecificationEditor.tsx +21 -22
  194. package/src/components/editor/editor-group/GrammarTextEditor.tsx +1 -41
  195. package/src/components/editor/editor-group/ModelImporter.tsx +13 -10
  196. package/src/components/editor/editor-group/RuntimeEditor.tsx +2 -9
  197. package/src/components/editor/editor-group/UnsupportedElementEditor.tsx +16 -10
  198. package/src/components/editor/editor-group/connection-editor/DatabaseBuilder.tsx +6 -5
  199. package/src/components/editor/editor-group/connection-editor/DatabaseEditorHelper.tsx +0 -43
  200. package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +22 -23
  201. package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +51 -83
  202. package/src/components/editor/editor-group/mapping-editor/ClassMappingEditor.tsx +23 -8
  203. package/src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx +5 -4
  204. package/src/components/editor/editor-group/mapping-editor/EnumerationMappingEditor.tsx +5 -1
  205. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +39 -29
  206. package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +9 -3
  207. package/src/components/editor/editor-group/mapping-editor/NewMappingElementModal.tsx +5 -1
  208. package/src/components/editor/editor-group/mapping-editor/relational/TableOrViewSourceTree.tsx +3 -5
  209. package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx +21 -23
  210. package/src/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.tsx +24 -55
  211. package/src/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.tsx +3 -4
  212. package/src/components/editor/editor-group/service-editor/ServicePostValidationEditor.tsx +20 -24
  213. package/src/components/editor/editor-group/service-editor/ServiceRegistrationEditor.tsx +4 -1
  214. package/src/components/editor/editor-group/testable/TestableSharedComponents.tsx +4 -5
  215. package/src/components/editor/editor-group/uml-editor/AssociationEditor.tsx +5 -4
  216. package/src/components/editor/editor-group/uml-editor/ClassQueryBuilder.tsx +3 -3
  217. package/src/components/editor/side-bar/Explorer.tsx +40 -2
  218. package/src/components/editor/side-bar/ProjectOverview.tsx +0 -5
  219. package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +2 -4
  220. package/src/components/extensions/Core_LegendStudioApplicationPlugin.tsx +0 -8
  221. package/src/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.tsx +0 -18
  222. package/src/index.ts +0 -1
  223. package/src/stores/LegendStudioApplicationPlugin.ts +0 -10
  224. package/src/stores/LegendStudioBaseStore.ts +12 -0
  225. package/src/stores/editor/EditorGraphState.ts +2 -4
  226. package/src/stores/editor/EditorSDLCState.ts +33 -4
  227. package/src/stores/editor/EditorStore.ts +24 -19
  228. package/src/stores/editor/EditorTabManagerState.ts +1 -4
  229. package/src/stores/editor/ExplorerTreeState.ts +22 -0
  230. package/src/stores/editor/GraphEditGrammarModeState.ts +49 -39
  231. package/src/stores/editor/editor-state/GrammarTextEditorState.ts +6 -145
  232. package/src/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.ts +8 -18
  233. package/src/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.ts +17 -4
  234. package/src/stores/editor/editor-state/element-editor-state/data/DataEditorState.ts +5 -7
  235. package/src/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.ts +24 -2
  236. package/src/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.ts +1 -1
  237. package/src/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.ts +4 -1
  238. package/src/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.ts +13 -0
  239. package/src/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.ts +1 -1
  240. package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts +30 -7
  241. package/src/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.ts +7 -5
  242. package/src/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +4 -5
  243. package/src/stores/editor/sidebar-state/ProjectOverviewState.ts +0 -87
  244. package/src/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +3 -7
  245. package/src/stores/editor/utils/ModelClassifierUtils.ts +3 -1
  246. package/src/stores/editor/utils/TestableUtils.ts +13 -0
  247. package/src/stores/graph-modifier/STO_Relational_GraphModifierHelper.ts +1 -2
  248. package/src/stores/project-view/ProjectViewerStore.ts +10 -8
  249. package/tsconfig.json +0 -3
  250. package/lib/components/editor/side-bar/ProjectDependantsEditor.d.ts +0 -19
  251. package/lib/components/editor/side-bar/ProjectDependantsEditor.d.ts.map +0 -1
  252. package/lib/components/editor/side-bar/ProjectDependantsEditor.js +0 -76
  253. package/lib/components/editor/side-bar/ProjectDependantsEditor.js.map +0 -1
  254. package/lib/stores/editor/EditorDepotState.d.ts +0 -25
  255. package/lib/stores/editor/EditorDepotState.d.ts.map +0 -1
  256. package/lib/stores/editor/EditorDepotState.js +0 -49
  257. package/lib/stores/editor/EditorDepotState.js.map +0 -1
  258. package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.d.ts +0 -31
  259. package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.d.ts.map +0 -1
  260. package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.js +0 -42
  261. package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.js.map +0 -1
  262. package/src/components/editor/side-bar/ProjectDependantsEditor.tsx +0 -219
  263. package/src/stores/editor/EditorDepotState.ts +0 -70
  264. package/src/stores/editor/sidebar-state/ProjectDependantEditorState.ts +0 -50
@@ -21,6 +21,7 @@ import {
21
21
  CheckSquareIcon,
22
22
  SquareIcon,
23
23
  PanelLoadingIndicator,
24
+ PanelFormBooleanField,
24
25
  } from '@finos/legend-art';
25
26
  import { prettyCONSTName } from '@finos/legend-shared';
26
27
  import { LEGEND_STUDIO_TEST_ID } from '../../../../__lib__/LegendStudioTesting.js';
@@ -164,7 +165,6 @@ export const BulkServiceRegistrationEditor = observer(() => {
164
165
  className="btn--dark model-loader__header__load-btn"
165
166
  onClick={registerService}
166
167
  disabled={disableRegistration}
167
- tabIndex={-1}
168
168
  title="Register Service"
169
169
  >
170
170
  Register
@@ -185,32 +185,17 @@ export const BulkServiceRegistrationEditor = observer(() => {
185
185
  {`${globalBulkServiceRegistrationState.serviceConfigState.registrationState.message}...`}
186
186
  </div>
187
187
  )}
188
- <div className="panel__content__form__section">
189
- <div className="panel__content__form__section__header__label">
190
- Activate Service
191
- </div>
192
- <div
193
- className="panel__content__form__section__toggler"
194
- onClick={toggleActivatePostRegistration}
195
- >
196
- <button
197
- className={clsx('panel__content__form__section__toggler__btn', {
198
- 'panel__content__form__section__toggler__btn--toggled':
199
- globalBulkServiceRegistrationState.activatePostRegistration,
200
- })}
201
- tabIndex={-1}
202
- >
203
- {globalBulkServiceRegistrationState.activatePostRegistration ? (
204
- <CheckSquareIcon />
205
- ) : (
206
- <SquareIcon />
207
- )}
208
- </button>
209
- <div className="panel__content__form__section__toggler__prompt">
210
- Activates service after registration
211
- </div>
212
- </div>
213
- </div>
188
+
189
+ <PanelFormBooleanField
190
+ isReadOnly={false}
191
+ value={globalBulkServiceRegistrationState.activatePostRegistration}
192
+ name="Activate Service"
193
+ prompt="Activates service after registration"
194
+ update={(value: boolean | undefined): void =>
195
+ toggleActivatePostRegistration()
196
+ }
197
+ />
198
+
214
199
  <div className="panel__content__form__section">
215
200
  <div className="panel__content__form__section__header__label">
216
201
  Execution Server
@@ -272,34 +257,18 @@ export const BulkServiceRegistrationEditor = observer(() => {
272
257
  </div>
273
258
  )}
274
259
  {
275
- <div className="panel__content__form__section">
276
- <div className="panel__content__form__section__header__label">
277
- Generate Lineage
278
- </div>
279
- <div
280
- className="panel__content__form__section__toggler"
281
- onClick={toggleUseGenerateLineage}
282
- >
283
- <button
284
- className={clsx('panel__content__form__section__toggler__btn', {
285
- 'panel__content__form__section__toggler__btn--toggled':
286
- globalBulkServiceRegistrationState.serviceConfigState
287
- .TEMPORARY__useGenerateLineage,
288
- })}
289
- tabIndex={-1}
290
- >
291
- {globalBulkServiceRegistrationState.serviceConfigState
292
- .TEMPORARY__useGenerateLineage ? (
293
- <CheckSquareIcon />
294
- ) : (
295
- <SquareIcon />
296
- )}
297
- </button>
298
- <div className="panel__content__form__section__toggler__prompt">
299
- Use Generate (slower)
300
- </div>
301
- </div>
302
- </div>
260
+ <PanelFormBooleanField
261
+ isReadOnly={false}
262
+ value={
263
+ globalBulkServiceRegistrationState.serviceConfigState
264
+ .TEMPORARY__useGenerateLineage
265
+ }
266
+ name="Generate Lineage"
267
+ prompt="Use Generate (slower)"
268
+ update={(value: boolean | undefined): void =>
269
+ toggleUseGenerateLineage()
270
+ }
271
+ />
303
272
  }
304
273
  <div className="panel__content__form__section">
305
274
  <div className="panel__content__form__section__header__label">
@@ -215,10 +215,9 @@ export const ServiceExecutionQueryEditor = observer(
215
215
  executionState.isGeneratingPlan ||
216
216
  executionState.isGeneratingPlan;
217
217
 
218
- const cancelQuery = (): void => {
219
- executionState.setIsRunningQuery(false);
220
- executionState.setQueryRunPromise(undefined);
221
- };
218
+ const cancelQuery = applicationStore.guardUnhandledError(() =>
219
+ flowResult(executionState.cancelQuery()),
220
+ );
222
221
 
223
222
  const generatePlan = applicationStore.guardUnhandledError(() =>
224
223
  flowResult(executionState.generatePlan(false)),
@@ -36,6 +36,10 @@ import {
36
36
  ResizablePanelSplitterLine,
37
37
  TimesIcon,
38
38
  clsx,
39
+ Panel,
40
+ PanelHeader,
41
+ PanelHeaderActions,
42
+ PanelHeaderActionItem,
39
43
  } from '@finos/legend-art';
40
44
  import type { PostValidation } from '@finos/legend-graph';
41
45
  import { forwardRef, useEffect, useState } from 'react';
@@ -395,31 +399,25 @@ export const ServicePostValidationsEditor = observer(
395
399
  }, [validationState]);
396
400
  return (
397
401
  <div className="service-post-validation-editor">
398
- <div className="panel__header">
399
- <div className="panel__header__title">
400
- <div className="panel__header__title__label">Post Validations</div>
401
- </div>
402
- </div>
402
+ <PanelHeader title="Post validations" />
403
403
  <div className="service-test-editor__content">
404
404
  <ResizablePanelGroup orientation="vertical">
405
405
  <ResizablePanel minSize={100} size={300}>
406
- <div className="panel__header">
406
+ <PanelHeader>
407
407
  <div className="panel__header__title">
408
408
  <div className="panel__header__title__label">
409
409
  Post Validations
410
410
  </div>
411
411
  </div>
412
- <div className="panel__header__actions">
413
- <button
414
- className="panel__header__action"
415
- tabIndex={-1}
412
+ <PanelHeaderActions>
413
+ <PanelHeaderActionItem
416
414
  onClick={addPostValidation}
417
415
  title="Add Post Validations"
418
416
  >
419
417
  <PlusIcon />
420
- </button>
421
- </div>
422
- </div>
418
+ </PanelHeaderActionItem>
419
+ </PanelHeaderActions>
420
+ </PanelHeader>
423
421
  <PanelContent>
424
422
  {service.postValidations.map((postValidation, _idx) => (
425
423
  <PostValidationItem
@@ -444,15 +442,13 @@ export const ServicePostValidationsEditor = observer(
444
442
  <ResizablePanelSplitterLine color="var(--color-dark-grey-200)" />
445
443
  </ResizablePanelSplitter>
446
444
  <ResizablePanel>
447
- <div className="panel service-test-editor">
448
- <div className="service-test-suite-editor__header">
449
- <div className="service-test-suite-editor__header__title">
450
- <div className="service-test-suite-editor__header__title__label service-test-suite-editor__header__title__label--tests-suites">
451
- Validation
452
- </div>
453
- </div>
454
- </div>
455
- <div className="service-test-editor__content">
445
+ <Panel className="service-test-editor">
446
+ <PanelHeader
447
+ className="service-test-suite-editor__header"
448
+ title="valiation"
449
+ labelClassName="service-test-suite-editor__header__title__label--tests-suites"
450
+ />
451
+ <PanelContent className="service-test-editor__content">
456
452
  {validationState.selectedPostValidationState && (
457
453
  <ServicePostValidationEditor
458
454
  postValidationState={
@@ -469,8 +465,8 @@ export const ServicePostValidationsEditor = observer(
469
465
  tooltipText="Click to add post validation"
470
466
  />
471
467
  )}
472
- </div>
473
- </div>
468
+ </PanelContent>
469
+ </Panel>
474
470
  </ResizablePanel>
475
471
  </ResizablePanelGroup>
476
472
  </div>
@@ -285,7 +285,10 @@ export const ServiceRegistrationEditor = observer(() => {
285
285
  darkMode={true}
286
286
  disabled={registrationState.versionOptions === undefined}
287
287
  placeholder={versionPlaceholder}
288
- isLoading={editorStore.depotState.isFetchingProjectVersions}
288
+ isLoading={
289
+ editorStore.sdlcState.fetchPublishedProjectVersionsState
290
+ .isInProgress
291
+ }
289
292
  />
290
293
  </div>
291
294
  </div>
@@ -28,6 +28,7 @@ import {
28
28
  ModalHeader,
29
29
  PanelContent,
30
30
  PanelFormTextField,
31
+ PanelHeader,
31
32
  PanelLoadingIndicator,
32
33
  RefreshIcon,
33
34
  WrenchIcon,
@@ -136,10 +137,8 @@ const EqualToJsonAsssertionEditor = observer(
136
137
 
137
138
  return (
138
139
  <>
139
- <div className="panel__header">
140
- <div className="panel__header__title">
141
- <div className="panel__header__title__label">expected</div>
142
- </div>
140
+ <PanelHeader>
141
+ <PanelHeader title="expected" />
143
142
  <div className="panel__header__actions">
144
143
  <button
145
144
  className="panel__header__action"
@@ -151,7 +150,7 @@ const EqualToJsonAsssertionEditor = observer(
151
150
  <WrenchIcon />
152
151
  </button>
153
152
  </div>
154
- </div>
153
+ </PanelHeader>
155
154
  <div className="equal-to-json-editor__content panel__content">
156
155
  <div className="equal-to-json-editor__content__data">
157
156
  <CodeEditor
@@ -44,6 +44,7 @@ import {
44
44
  PanelDropZone,
45
45
  Panel,
46
46
  InfoCircleIcon,
47
+ PanelHeader,
47
48
  } from '@finos/legend-art';
48
49
  import { getElementIcon } from '../../../ElementIconUtils.js';
49
50
  import { prettyCONSTName, guaranteeType } from '@finos/legend-shared';
@@ -512,7 +513,7 @@ export const AssociationEditor = observer(
512
513
  minSize={56}
513
514
  >
514
515
  <Panel>
515
- <div className="panel__header">
516
+ <PanelHeader>
516
517
  <div className="panel__header__title">
517
518
  {isReadOnly && (
518
519
  <div className="uml-element-editor__header__lock">
@@ -524,8 +525,8 @@ export const AssociationEditor = observer(
524
525
  {association.name}
525
526
  </div>
526
527
  </div>
527
- </div>
528
- <div className="panel__header uml-element-editor__tabs__header">
528
+ </PanelHeader>
529
+ <PanelHeader className="uml-element-editor__tabs__header">
529
530
  <div className="uml-element-editor__tabs">
530
531
  {tabs.map((tab) => (
531
532
  <div
@@ -552,7 +553,7 @@ export const AssociationEditor = observer(
552
553
  <PlusIcon />
553
554
  </button>
554
555
  </div>
555
- </div>
556
+ </PanelHeader>
556
557
  <div
557
558
  className={clsx('panel__content', {
558
559
  'panel__content--with-backdrop-element':
@@ -274,7 +274,7 @@ const PromoteToServiceQueryBuilderAction = observer(
274
274
  !queryBuilderState.allValidationIssues.length,
275
275
  );
276
276
 
277
- const renderPromoteModal = (): React.ReactNode => {
277
+ const renderSaveAsModal = (): React.ReactNode => {
278
278
  if (
279
279
  promoteQueryModal === PROMOTE_QUERY_TYPE.SERVICE &&
280
280
  queryBuilderState.mapping
@@ -355,11 +355,11 @@ const PromoteToServiceQueryBuilderAction = observer(
355
355
  }}
356
356
  >
357
357
  <div className="query-builder__sub-header__custom-action__label">
358
- Promote To...
358
+ Save As...
359
359
  </div>
360
360
  <CaretDownIcon className="query-builder__sub-header__custom-action__icon" />
361
361
  </DropdownMenu>
362
- {renderPromoteModal()}
362
+ {renderSaveAsModal()}
363
363
  </>
364
364
  );
365
365
  },
@@ -30,7 +30,6 @@ import {
30
30
  PanelLoadingIndicator,
31
31
  BlankPanelContent,
32
32
  TreeView,
33
- ProjectConfigurationIcon,
34
33
  ChevronDownIcon,
35
34
  ChevronRightIcon,
36
35
  CompressIcon,
@@ -98,6 +97,9 @@ import {
98
97
  getFunctionSignature,
99
98
  getFunctionNameWithPath,
100
99
  getElementRootPackage,
100
+ type PackageableElement,
101
+ PackageableConnection,
102
+ RelationalDatabaseConnection,
101
103
  } from '@finos/legend-graph';
102
104
  import { useApplicationStore } from '@finos/legend-application';
103
105
  import {
@@ -120,6 +122,8 @@ import {
120
122
  CODE_EDITOR_LANGUAGE,
121
123
  CodeEditor,
122
124
  } from '@finos/legend-lego/code-editor';
125
+ import { guaranteeRelationalDatabaseConnection } from '../../../stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.js';
126
+ import { DatabaseBuilder } from '../editor-group/connection-editor/DatabaseBuilder.js';
123
127
 
124
128
  const ElementRenamer = observer(() => {
125
129
  const editorStore = useEditorStore();
@@ -431,6 +435,12 @@ const SampleDataGenerator = observer(() => {
431
435
  );
432
436
  });
433
437
 
438
+ const isRelationalDatabaseConnection = (
439
+ val: PackageableElement | undefined,
440
+ ): boolean =>
441
+ val instanceof PackageableConnection &&
442
+ val.connectionValue instanceof RelationalDatabaseConnection;
443
+
434
444
  const ExplorerContextMenu = observer(
435
445
  forwardRef<
436
446
  HTMLDivElement,
@@ -492,6 +502,16 @@ const ExplorerContextMenu = observer(
492
502
  }
493
503
  },
494
504
  );
505
+ const buildDatabase = editorStore.applicationStore.guardUnhandledError(
506
+ async () => {
507
+ if (isRelationalDatabaseConnection(node?.packageableElement)) {
508
+ editorStore.explorerTreeState.buildDbBuilderState(
509
+ guaranteeRelationalDatabaseConnection(node?.packageableElement),
510
+ editorStore.isInViewerMode,
511
+ );
512
+ }
513
+ },
514
+ );
495
515
  const removeElement = (): void => {
496
516
  if (node) {
497
517
  flowResult(
@@ -701,6 +721,14 @@ const ExplorerContextMenu = observer(
701
721
  <MenuContentDivider />
702
722
  </>
703
723
  )}
724
+ {isRelationalDatabaseConnection(node.packageableElement) && (
725
+ <>
726
+ <MenuContentItem onClick={buildDatabase}>
727
+ Build Database...
728
+ </MenuContentItem>
729
+ <MenuContentDivider />
730
+ </>
731
+ )}
704
732
  {extraExplorerContextMenuItems}
705
733
  {Boolean(extraExplorerContextMenuItems.length) && (
706
734
  <MenuContentDivider />
@@ -753,7 +781,9 @@ const ProjectConfig = observer(() => {
753
781
  >
754
782
  <div className="tree-view__node__icon explorer__package-tree__node__icon">
755
783
  <div className="explorer__package-tree__node__icon__type explorer__config__icon">
756
- <ProjectConfigurationIcon />
784
+ <div>
785
+ <SettingsEthernetIcon />
786
+ </div>
757
787
  </div>
758
788
  </div>
759
789
  <button
@@ -1013,6 +1043,14 @@ const ExplorerTrees = observer(() => {
1013
1043
  />
1014
1044
  <ElementRenamer />
1015
1045
  <SampleDataGenerator />
1046
+ {editorStore.explorerTreeState.databaseBuilderState && (
1047
+ <DatabaseBuilder
1048
+ databaseBuilderState={
1049
+ editorStore.explorerTreeState.databaseBuilderState
1050
+ }
1051
+ isReadOnly={false}
1052
+ />
1053
+ )}
1016
1054
  {editorStore.projectConfigurationEditorState
1017
1055
  .projectConfiguration && <ProjectConfig />}
1018
1056
  {/* SYSTEM TREE */}
@@ -56,7 +56,6 @@ import {
56
56
  import { useEditorStore } from '../EditorStoreProvider.js';
57
57
  import { useApplicationStore } from '@finos/legend-application';
58
58
  import { useLegendStudioApplicationStore } from '../../LegendStudioFrameworkProvider.js';
59
- import { ProjectDependantsEditor } from './ProjectDependantsEditor.js';
60
59
 
61
60
  const ShareProjectModal = observer(
62
61
  (props: { open: boolean; closeModal: () => void }) => {
@@ -812,7 +811,6 @@ export const ProjectOverviewActivityBar = observer(() => {
812
811
  mode: PROJECT_OVERVIEW_ACTIVITY_MODE.RELEASE,
813
812
  title: 'Release',
814
813
  },
815
- { mode: PROJECT_OVERVIEW_ACTIVITY_MODE.DEPENDANTS, title: 'Dependants' },
816
814
  { mode: PROJECT_OVERVIEW_ACTIVITY_MODE.VERSIONS, title: 'Versions' },
817
815
  { mode: PROJECT_OVERVIEW_ACTIVITY_MODE.WORKSPACES, title: 'Workspaces' },
818
816
  ].filter((activity): activity is ProjectOverviewActivityDisplay =>
@@ -863,9 +861,6 @@ export const ProjectOverview = observer(() => {
863
861
  return <OverviewViewer />;
864
862
  case PROJECT_OVERVIEW_ACTIVITY_MODE.RELEASE:
865
863
  return <ReleaseEditor />;
866
- // TODO: @xannem move this into dependency dashboard extension
867
- case PROJECT_OVERVIEW_ACTIVITY_MODE.DEPENDANTS:
868
- return <ProjectDependantsEditor />;
869
864
  case PROJECT_OVERVIEW_ACTIVITY_MODE.VERSIONS:
870
865
  return <VersionsViewer />;
871
866
  case PROJECT_OVERVIEW_ACTIVITY_MODE.WORKSPACES:
@@ -496,9 +496,7 @@ export const GlobalTestRunner = observer(
496
496
  const reset = (): void => globalTestRunnerState.init(true);
497
497
 
498
498
  const renderTestRunnerTab = (): React.ReactNode => {
499
- if (
500
- selectedTab === GLOBAL_TEST_RUNNER_TABS.GLOBAL_TEST_RUNNER.valueOf()
501
- ) {
499
+ if (selectedTab === GLOBAL_TEST_RUNNER_TABS.GLOBAL_TEST_RUNNER) {
502
500
  return (
503
501
  <div
504
502
  data-testid={LEGEND_STUDIO_TEST_ID.GLOBAL_TEST_RUNNER}
@@ -580,7 +578,7 @@ export const GlobalTestRunner = observer(
580
578
  }
581
579
  return (
582
580
  <UnsupportedEditorPanel
583
- text="Can't display this editor"
581
+ text="Can't display this tab"
584
582
  isReadOnly={true}
585
583
  />
586
584
  );
@@ -60,14 +60,6 @@ export class Core_LegendStudioApplicationPlugin extends LegendStudioApplicationP
60
60
  plugin as DSL_LegendStudioApplicationPlugin_Extension
61
61
  ).getExtraPureGrammarKeywords?.() ?? [],
62
62
  ),
63
- extraParserKeywords: applicationStore.pluginManager
64
- .getApplicationPlugins()
65
- .flatMap(
66
- (plugin) =>
67
- (
68
- plugin as DSL_LegendStudioApplicationPlugin_Extension
69
- ).getExtraPureGrammarParserNames?.() ?? [],
70
- ),
71
63
  });
72
64
  },
73
65
  ];
@@ -51,7 +51,6 @@ import {
51
51
  type PureGrammarParserKeywordSuggestionGetter,
52
52
  LegendStudioApplicationPlugin,
53
53
  type DSL_LegendStudioApplicationPlugin_Extension,
54
- type PureGrammarElementLabeler,
55
54
  } from '../../stores/LegendStudioApplicationPlugin.js';
56
55
  import type {
57
56
  ConnectionEditorRenderer,
@@ -126,10 +125,6 @@ export class DSL_ExternalFormat_LegendStudioApplicationPlugin
126
125
  ];
127
126
  }
128
127
 
129
- getExtraPureGrammarParserNames(): string[] {
130
- return [PURE_GRAMMAR_EXTERNAL_FORMAT_PARSER_NAME];
131
- }
132
-
133
128
  getExtraPureGrammarKeywords(): string[] {
134
129
  return [
135
130
  PURE_GRAMMAR_BINDING_ELEMENT_TYPE_LABEL,
@@ -138,19 +133,6 @@ export class DSL_ExternalFormat_LegendStudioApplicationPlugin
138
133
  ];
139
134
  }
140
135
 
141
- getExtraPureGrammarElementLabelers(): PureGrammarElementLabeler[] {
142
- return [
143
- (element): string | undefined => {
144
- if (element instanceof Binding) {
145
- return PURE_GRAMMAR_BINDING_ELEMENT_TYPE_LABEL;
146
- } else if (element instanceof SchemaSet) {
147
- return PURE_GRAMMAR_SCHEMA_SET_ELEMENT_TYPE_LABEL;
148
- }
149
- return undefined;
150
- },
151
- ];
152
- }
153
-
154
136
  getExtraPureGrammarConnectionLabelers(): PureGrammarConnectionLabeler[] {
155
137
  return [
156
138
  (connection): string | undefined => {
package/src/index.ts CHANGED
@@ -105,7 +105,6 @@ export {
105
105
  FileGenerationState,
106
106
  GeneratedFileStructureState,
107
107
  } from './stores/editor/editor-state/FileGenerationState.js';
108
- export { DSL_ExternalFormat_LegendStudioApplicationPlugin } from './components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.js';
109
108
  export {
110
109
  externalFormatData_setData,
111
110
  externalFormatData_setContentType,
@@ -217,21 +217,11 @@ export type PureGrammarParserElementSnippetSuggestionsGetter = (
217
217
  */
218
218
  export interface DSL_LegendStudioApplicationPlugin_Extension
219
219
  extends LegendStudioApplicationPlugin {
220
- /**
221
- * Get the list of supported Pure grammar parsers.
222
- */
223
- getExtraPureGrammarParserNames?(): string[];
224
-
225
220
  /**
226
221
  * Get the list of supported Pure grammar keywords.
227
222
  */
228
223
  getExtraPureGrammarKeywords?(): string[];
229
224
 
230
- /**
231
- * Get the list of Pure grammar element labelers.
232
- */
233
- getExtraPureGrammarElementLabelers?(): PureGrammarElementLabeler[];
234
-
235
225
  /**
236
226
  * Get the list of the supported packageable element type specifiers.
237
227
  */
@@ -62,6 +62,7 @@ export class LegendStudioBaseStore {
62
62
  readonly initState = ActionState.create();
63
63
 
64
64
  isSDLCAuthorized: boolean | undefined = false;
65
+ private isSDLCServerInitialized = false;
65
66
  SDLCServerTermsOfServicesUrlsToView: string[] = [];
66
67
 
67
68
  constructor(applicationStore: LegendStudioApplicationStore) {
@@ -116,6 +117,14 @@ export class LegendStudioBaseStore {
116
117
  // setup SDLC server client
117
118
  yield flowResult(this.initializeSDLCServerClient());
118
119
 
120
+ // if SDLC server is not properly authorized/initialized, we would need to stop making call
121
+ // to SDLC server, as this could intertwine and mess up OIDC/OAuth authentication on the server
122
+ // See https://github.com/finos/legend-studio/pull/2205
123
+ // See https://github.com/finos/legend-sdlc/pull/628
124
+ if (!this.isSDLCServerInitialized) {
125
+ return;
126
+ }
127
+
119
128
  try {
120
129
  const currentUser = User.serialization.fromJson(
121
130
  (yield this.sdlcServerClient.getCurrentUser()) as PlainObject<User>,
@@ -226,6 +235,9 @@ export class LegendStudioBaseStore {
226
235
  // fetch server features config and platforms
227
236
  yield this.sdlcServerClient.fetchServerPlatforms();
228
237
  yield this.sdlcServerClient.fetchServerFeaturesConfiguration();
238
+
239
+ // the sdlc server client is authorized and initialized
240
+ this.isSDLCServerInitialized = true;
229
241
  }
230
242
  } catch (error) {
231
243
  assertErrorThrown(error);
@@ -727,7 +727,7 @@ export class EditorGraphState {
727
727
  projectDependencies: ProjectDependency[],
728
728
  ): Promise<ProjectDependencyCoordinates[]> {
729
729
  return Promise.all(
730
- projectDependencies.map((dep) => {
730
+ projectDependencies.map(async (dep) => {
731
731
  /**
732
732
  * We expect current dependency ids to be in the format of {groupId}:{artifactId}.
733
733
  * For the legacy dependency we must fetch the corresponding coordinates (group, artifact ids) from the depot server
@@ -835,8 +835,6 @@ export class EditorGraphState {
835
835
  return label;
836
836
  }
837
837
  }
838
- throw new UnsupportedOperationError(
839
- `Can't get type label for element '${element.path}': no compatible label getter available from plugins`,
840
- );
838
+ return PACKAGEABLE_ELEMENT_TYPE.UNKNOWN;
841
839
  }
842
840
  }
@@ -32,6 +32,7 @@ import {
32
32
  HttpStatus,
33
33
  guaranteeNonNullable,
34
34
  assertTrue,
35
+ ActionState,
35
36
  } from '@finos/legend-shared';
36
37
  import { EDITOR_MODE, ACTIVITY_MODE } from './EditorConfig.js';
37
38
  import { type Entity, extractEntityNameFromPath } from '@finos/legend-storage';
@@ -56,16 +57,20 @@ export const entityDiffSorter = (a: EntityDiff, b: EntityDiff): number =>
56
57
  export class EditorSDLCState {
57
58
  readonly editorStore: EditorStore;
58
59
 
60
+ readonly fetchPublishedProjectVersionsState = ActionState.create();
61
+
62
+ isWorkspaceOutdated = false;
63
+ isCheckingIfWorkspaceIsOutdated = false;
64
+ isFetchingProjectVersions = false;
65
+ isFetchingProject = false;
66
+
59
67
  currentProject?: Project | undefined;
60
68
  currentWorkspace?: Workspace | undefined;
61
69
  remoteWorkspaceRevision?: Revision | undefined;
62
70
  currentRevision?: Revision | undefined;
63
- isWorkspaceOutdated = false;
64
71
  workspaceWorkflows: Workflow[] = [];
65
72
  projectVersions: Version[] = [];
66
- isCheckingIfWorkspaceIsOutdated = false;
67
- isFetchingProjectVersions = false;
68
- isFetchingProject = false;
73
+ projectPublishedVersions: string[] = [];
69
74
 
70
75
  constructor(editorStore: EditorStore) {
71
76
  makeObservable(this, {
@@ -79,6 +84,7 @@ export class EditorSDLCState {
79
84
  isCheckingIfWorkspaceIsOutdated: observable,
80
85
  isFetchingProjectVersions: observable,
81
86
  isFetchingProject: observable,
87
+ projectPublishedVersions: observable,
82
88
  activeProject: computed,
83
89
  activeWorkspace: computed,
84
90
  activeRevision: computed,
@@ -99,6 +105,7 @@ export class EditorSDLCState {
99
105
  buildWorkspaceBaseRevisionEntityHashesIndex: flow,
100
106
  buildProjectLatestRevisionEntityHashesIndex: flow,
101
107
  fetchWorkspaceWorkflows: flow,
108
+ fetchPublishedProjectVersions: flow,
102
109
  });
103
110
 
104
111
  this.editorStore = editorStore;
@@ -477,4 +484,26 @@ export class EditorSDLCState {
477
484
  this.editorStore.applicationStore.notificationService.notifyError(error);
478
485
  }
479
486
  }
487
+
488
+ *fetchPublishedProjectVersions(): GeneratorFn<void> {
489
+ try {
490
+ this.fetchPublishedProjectVersionsState.inProgress();
491
+ this.projectPublishedVersions =
492
+ (yield this.editorStore.depotServerClient.getVersions(
493
+ this.editorStore.projectConfigurationEditorState
494
+ .currentProjectConfiguration.groupId,
495
+ this.editorStore.projectConfigurationEditorState
496
+ .currentProjectConfiguration.artifactId,
497
+ true,
498
+ )) as string[];
499
+ } catch (error) {
500
+ assertErrorThrown(error);
501
+ this.editorStore.applicationStore.logService.error(
502
+ LogEvent.create(LEGEND_STUDIO_APP_EVENT.DEPOT_MANAGER_FAILURE),
503
+ error,
504
+ );
505
+ } finally {
506
+ this.fetchPublishedProjectVersionsState.complete();
507
+ }
508
+ }
480
509
  }