@finos/legend-graph 1.2.0 → 2.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 (354) hide show
  1. package/lib/GraphManagerState.d.ts +4 -4
  2. package/lib/GraphManagerState.d.ts.map +1 -1
  3. package/lib/GraphManagerState.js +6 -6
  4. package/lib/GraphManagerState.js.map +1 -1
  5. package/lib/GraphManagerTestUtils.d.ts +5 -2
  6. package/lib/GraphManagerTestUtils.d.ts.map +1 -1
  7. package/lib/GraphManagerTestUtils.js +10 -3
  8. package/lib/GraphManagerTestUtils.js.map +1 -1
  9. package/lib/MetaModelConst.d.ts +3 -1
  10. package/lib/MetaModelConst.d.ts.map +1 -1
  11. package/lib/MetaModelConst.js +2 -0
  12. package/lib/MetaModelConst.js.map +1 -1
  13. package/lib/graph/BasicModel.d.ts.map +1 -1
  14. package/lib/graph/BasicModel.js +1 -0
  15. package/lib/graph/BasicModel.js.map +1 -1
  16. package/lib/graph/DSLExternalFormat_Extension.d.ts +22 -0
  17. package/lib/graph/DSLExternalFormat_Extension.d.ts.map +1 -0
  18. package/lib/graph/DSLExternalFormat_Extension.js +31 -0
  19. package/lib/graph/DSLExternalFormat_Extension.js.map +1 -0
  20. package/lib/graph/DSLExternalFormat_PureGraphPlugin.d.ts +23 -0
  21. package/lib/graph/DSLExternalFormat_PureGraphPlugin.d.ts.map +1 -0
  22. package/lib/graph/DSLExternalFormat_PureGraphPlugin.js +28 -0
  23. package/lib/graph/DSLExternalFormat_PureGraphPlugin.js.map +1 -0
  24. package/lib/graph/DependencyManager.d.ts.map +1 -1
  25. package/lib/graph/DependencyManager.js +2 -0
  26. package/lib/graph/DependencyManager.js.map +1 -1
  27. package/lib/graph/PureModel.d.ts.map +1 -1
  28. package/lib/graph/PureModel.js +8 -3
  29. package/lib/graph/PureModel.js.map +1 -1
  30. package/lib/graphManager/AbstractPureGraphManager.d.ts +10 -6
  31. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  32. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  33. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.d.ts +21 -0
  34. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.d.ts.map +1 -0
  35. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.js +21 -0
  36. package/lib/graphManager/DSLExternalFormat_GraphManagerHelper.js.map +1 -0
  37. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.d.ts +25 -0
  38. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.d.ts.map +1 -0
  39. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.js +67 -0
  40. package/lib/graphManager/DSLExternalFormat_PureGraphManagerPlugin.js.map +1 -0
  41. package/lib/graphManager/GraphBuilderReport.d.ts +28 -0
  42. package/lib/graphManager/GraphBuilderReport.d.ts.map +1 -0
  43. package/lib/graphManager/GraphBuilderReport.js +24 -0
  44. package/lib/graphManager/GraphBuilderReport.js.map +1 -0
  45. package/lib/graphManager/{GraphManagerLogEvent.d.ts → GraphManagerEvent.d.ts} +12 -18
  46. package/lib/graphManager/GraphManagerEvent.d.ts.map +1 -0
  47. package/lib/graphManager/GraphManagerEvent.js +45 -0
  48. package/lib/graphManager/GraphManagerEvent.js.map +1 -0
  49. package/lib/graphManager/GraphManagerTelemetry.d.ts +28 -0
  50. package/lib/graphManager/GraphManagerTelemetry.d.ts.map +1 -0
  51. package/lib/graphManager/GraphManagerTelemetry.js +22 -0
  52. package/lib/graphManager/GraphManagerTelemetry.js.map +1 -0
  53. package/lib/graphManager/action/EngineError.d.ts +3 -0
  54. package/lib/graphManager/action/EngineError.d.ts.map +1 -1
  55. package/lib/graphManager/action/EngineError.js +3 -0
  56. package/lib/graphManager/action/EngineError.js.map +1 -1
  57. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.d.ts +26 -0
  58. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.d.ts.map +1 -0
  59. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.js +27 -0
  60. package/lib/graphManager/action/externalFormat/ExternalFormatDescription.js.map +1 -0
  61. package/lib/index.d.ts +15 -1
  62. package/lib/index.d.ts.map +1 -1
  63. package/lib/index.js +16 -1
  64. package/lib/index.js.map +1 -1
  65. package/lib/models/DSLExternalFormat_ModelUtils.d.ts +24 -0
  66. package/lib/models/DSLExternalFormat_ModelUtils.d.ts.map +1 -0
  67. package/lib/models/DSLExternalFormat_ModelUtils.js +25 -0
  68. package/lib/models/DSLExternalFormat_ModelUtils.js.map +1 -0
  69. package/lib/models/metamodels/pure/packageableElements/PackageableElement.js +1 -1
  70. package/lib/models/metamodels/pure/packageableElements/PackageableElement.js.map +1 -1
  71. package/lib/models/metamodels/pure/packageableElements/domain/Package.d.ts.map +1 -1
  72. package/lib/models/metamodels/pure/packageableElements/domain/Package.js +4 -2
  73. package/lib/models/metamodels/pure/packageableElements/domain/Package.js.map +1 -1
  74. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.d.ts +29 -0
  75. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.d.ts.map +1 -0
  76. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js +45 -0
  77. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.js.map +1 -0
  78. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.d.ts +23 -0
  79. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.d.ts.map +1 -0
  80. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.js +35 -0
  81. package/lib/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.js.map +1 -0
  82. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.d.ts +28 -0
  83. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.d.ts.map +1 -0
  84. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.js +53 -0
  85. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.js.map +1 -0
  86. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.d.ts +29 -0
  87. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.d.ts.map +1 -0
  88. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.js +55 -0
  89. package/lib/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.js.map +1 -0
  90. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.d.ts +25 -0
  91. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.d.ts.map +1 -0
  92. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.js +38 -0
  93. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.js.map +1 -0
  94. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts +35 -0
  95. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.d.ts.map +1 -0
  96. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js +65 -0
  97. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.js.map +1 -0
  98. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.d.ts +31 -0
  99. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.d.ts.map +1 -0
  100. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js +61 -0
  101. package/lib/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.js.map +1 -0
  102. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.d.ts +33 -0
  103. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.d.ts.map +1 -0
  104. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.js +46 -0
  105. package/lib/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.js.map +1 -0
  106. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.d.ts +2 -1
  107. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.d.ts.map +1 -1
  108. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.js +1 -1
  109. package/lib/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.js.map +1 -1
  110. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.d.ts +3 -0
  111. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.d.ts.map +1 -1
  112. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js +1 -0
  113. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js.map +1 -1
  114. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +9 -3
  115. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  116. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +32 -8
  117. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  118. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts +3 -0
  119. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.d.ts.map +1 -1
  120. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js +7 -0
  121. package/lib/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.js.map +1 -1
  122. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.d.ts +4 -0
  123. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.d.ts.map +1 -1
  124. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.js +11 -0
  125. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.js.map +1 -1
  126. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts +34 -0
  127. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -0
  128. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +253 -0
  129. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -0
  130. package/lib/models/protocols/pure/v1/V1_Core_SystemModels.json +2248 -0
  131. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +13 -7
  132. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  133. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +209 -192
  134. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  135. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +4 -0
  136. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  137. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +17 -3
  138. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  139. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.d.ts +21 -0
  140. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.d.ts.map +1 -0
  141. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.js +22 -0
  142. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.js.map +1 -0
  143. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts +6 -2
  144. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts.map +1 -1
  145. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js +31 -16
  146. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js.map +1 -1
  147. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +5 -0
  148. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  149. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +4 -0
  150. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  151. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.d.ts +28 -0
  152. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.d.ts.map +1 -0
  153. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.js +38 -0
  154. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.js.map +1 -0
  155. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.d.ts +25 -0
  156. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.d.ts.map +1 -0
  157. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.js +35 -0
  158. package/lib/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.js.map +1 -0
  159. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.d.ts +0 -2
  160. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.d.ts.map +1 -1
  161. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.js +0 -2
  162. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.js.map +1 -1
  163. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.d.ts +0 -2
  164. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.d.ts.map +1 -1
  165. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.js +0 -3
  166. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextData.js.map +1 -1
  167. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.d.ts +24 -0
  168. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.d.ts.map +1 -0
  169. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.js +32 -0
  170. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.js.map +1 -0
  171. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.d.ts +21 -0
  172. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.d.ts.map +1 -0
  173. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.js +24 -0
  174. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.js.map +1 -0
  175. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.d.ts +23 -0
  176. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.d.ts.map +1 -0
  177. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.js +31 -0
  178. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.js.map +1 -0
  179. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.d.ts +25 -0
  180. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.d.ts.map +1 -0
  181. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.js +34 -0
  182. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.js.map +1 -0
  183. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.d.ts +21 -0
  184. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.d.ts.map +1 -0
  185. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.js +24 -0
  186. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.js.map +1 -0
  187. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.d.ts +28 -0
  188. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.d.ts.map +1 -0
  189. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.js +38 -0
  190. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.js.map +1 -0
  191. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.d.ts +22 -0
  192. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.d.ts.map +1 -0
  193. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.js +29 -0
  194. package/lib/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.js.map +1 -0
  195. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.d.ts +2 -0
  196. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.d.ts.map +1 -1
  197. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.js.map +1 -1
  198. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.d.ts +25 -0
  199. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.d.ts.map +1 -0
  200. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.js +34 -0
  201. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.js.map +1 -0
  202. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.d.ts +2 -1
  203. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.d.ts.map +1 -1
  204. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.js +1 -1
  205. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.js.map +1 -1
  206. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +4 -1
  207. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  208. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +8 -2
  209. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  210. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.d.ts +2 -0
  211. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.d.ts.map +1 -1
  212. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.js +2 -0
  213. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.js.map +1 -1
  214. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.d.ts +3 -0
  215. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.d.ts.map +1 -1
  216. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.js +5 -0
  217. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.js.map +1 -1
  218. package/lib/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.d.ts +1 -1
  219. package/lib/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.js +1 -1
  220. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  221. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +4 -1
  222. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  223. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.d.ts.map +1 -1
  224. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js +5 -2
  225. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.js.map +1 -1
  226. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts +2 -0
  227. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  228. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +34 -2
  229. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  230. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.d.ts +22 -0
  231. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.d.ts.map +1 -0
  232. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.js +19 -0
  233. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.js.map +1 -0
  234. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts +2 -0
  235. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.d.ts.map +1 -1
  236. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js +8 -0
  237. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.js.map +1 -1
  238. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts +2 -0
  239. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts.map +1 -1
  240. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js +5 -2
  241. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js.map +1 -1
  242. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +1 -1
  243. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +12 -4
  244. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  245. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
  246. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +5 -2
  247. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
  248. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  249. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +5 -3
  250. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  251. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.js +4 -4
  252. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.js.map +1 -1
  253. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +2 -2
  254. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
  255. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  256. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +3 -7
  257. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  258. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.js +2 -2
  259. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.js.map +1 -1
  260. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  261. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +4 -1
  262. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  263. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.d.ts +25 -0
  264. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.d.ts.map +1 -0
  265. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.js +62 -0
  266. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.js.map +1 -0
  267. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.d.ts.map +1 -1
  268. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.js +10 -1
  269. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.js.map +1 -1
  270. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.d.ts.map +1 -1
  271. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js +23 -2
  272. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js.map +1 -1
  273. package/lib/package.json +68 -0
  274. package/package.json +15 -11
  275. package/src/GraphManagerState.ts +14 -7
  276. package/src/GraphManagerTestUtils.tsx +17 -3
  277. package/src/MetaModelConst.ts +2 -0
  278. package/src/graph/BasicModel.ts +2 -0
  279. package/src/graph/DSLExternalFormat_Extension.ts +37 -0
  280. package/src/graph/DSLExternalFormat_PureGraphPlugin.ts +35 -0
  281. package/src/graph/DependencyManager.ts +5 -0
  282. package/src/graph/PureModel.ts +16 -2
  283. package/src/graphManager/AbstractPureGraphManager.ts +19 -6
  284. package/src/graphManager/DSLExternalFormat_GraphManagerHelper.ts +30 -0
  285. package/src/graphManager/DSLExternalFormat_PureGraphManagerPlugin.ts +86 -0
  286. package/src/graphManager/GraphBuilderReport.ts +31 -0
  287. package/src/graphManager/{GraphManagerLogEvent.ts → GraphManagerEvent.ts} +10 -20
  288. package/src/graphManager/GraphManagerTelemetry.ts +35 -0
  289. package/src/graphManager/action/EngineError.ts +3 -0
  290. package/src/graphManager/action/externalFormat/ExternalFormatDescription.ts +30 -0
  291. package/src/index.ts +16 -2
  292. package/src/models/DSLExternalFormat_ModelUtils.ts +24 -0
  293. package/src/models/metamodels/pure/packageableElements/PackageableElement.ts +1 -1
  294. package/src/models/metamodels/pure/packageableElements/domain/Package.ts +3 -2
  295. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_ExternalFormatConnection.ts +57 -0
  296. package/src/models/metamodels/pure/packageableElements/externalFormat/connection/DSLExternalFormat_UrlStream.ts +39 -0
  297. package/src/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_Schema.ts +59 -0
  298. package/src/models/metamodels/pure/packageableElements/externalFormat/schemaSet/DSLExternalFormat_SchemaSet.ts +74 -0
  299. package/src/models/metamodels/pure/packageableElements/externalFormat/store/BindingTransformer.ts +44 -0
  300. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_Binding.ts +80 -0
  301. package/src/models/metamodels/pure/packageableElements/externalFormat/store/DSLExternalFormat_ModelUnit.ts +98 -0
  302. package/src/models/metamodels/pure/packageableElements/mapping/MergeOperationSetImplementation.ts +81 -0
  303. package/src/models/metamodels/pure/packageableElements/mapping/OperationSetImplementation.ts +1 -1
  304. package/src/models/metamodels/pure/packageableElements/mapping/SetImplementation.ts +5 -0
  305. package/src/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +40 -9
  306. package/src/models/metamodels/pure/packageableElements/store/relational/mapping/RelationalPropertyMapping.ts +9 -0
  307. package/src/models/metamodels/pure/packageableElements/store/relational/model/RelationalDataType.ts +14 -0
  308. package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +417 -0
  309. package/src/models/protocols/pure/v1/V1_Core_SystemModels.json +2248 -0
  310. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +324 -384
  311. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +34 -2
  312. package/src/models/protocols/pure/v1/engine/V1_EngineEvent.ts +21 -0
  313. package/src/models/protocols/pure/v1/engine/V1_EngineHelper.ts +59 -29
  314. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +22 -0
  315. package/src/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatDescription.ts +46 -0
  316. package/src/models/protocols/pure/v1/engine/externalFormat/V1_ExternalFormatModelGeneration.ts +44 -0
  317. package/src/models/protocols/pure/v1/model/context/V1_PureModelContext.ts +1 -5
  318. package/src/models/protocols/pure/v1/model/context/V1_PureModelContextData.ts +0 -9
  319. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_ExternalFormatConnection.ts +42 -0
  320. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/connection/V1_DSLExternalFormat_UrlStream.ts +26 -0
  321. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_Schema.ts +33 -0
  322. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/schemaSet/V1_DSLExternalFormat_SchemaSet.ts +43 -0
  323. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_BindingTransformer.ts +26 -0
  324. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_Binding.ts +45 -0
  325. package/src/models/protocols/pure/v1/model/packageableElements/externalFormat/store/V1_DSLExternalFormat_ModelUnit.ts +31 -0
  326. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.ts +4 -0
  327. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_MergeOperationClassMapping.ts +46 -0
  328. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_OperationClassMapping.ts +1 -1
  329. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +8 -2
  330. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/mapping/V1_RelationalPropertyMapping.ts +3 -0
  331. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/model/V1_RelationalDataType.ts +9 -0
  332. package/src/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.ts +1 -1
  333. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +4 -1
  334. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DatabaseTransformer.ts +4 -0
  335. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +53 -1
  336. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_DSLExternalFormat_GraphBuilderHelper.ts +40 -0
  337. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingFirstPassBuilder.ts +32 -0
  338. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.ts +9 -2
  339. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +15 -4
  340. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +4 -0
  341. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +18 -5
  342. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.ts +4 -4
  343. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +2 -2
  344. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +4 -10
  345. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.ts +2 -2
  346. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +4 -1
  347. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DSLExternalFormat_ProtocolHelper.ts +90 -0
  348. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DatabaseSerializationHelper.ts +13 -0
  349. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.ts +30 -1
  350. package/tsconfig.json +31 -1
  351. package/CHANGELOG.md +0 -223
  352. package/lib/graphManager/GraphManagerLogEvent.d.ts.map +0 -1
  353. package/lib/graphManager/GraphManagerLogEvent.js +0 -52
  354. package/lib/graphManager/GraphManagerLogEvent.js.map +0 -1
@@ -14,9 +14,9 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { flow, flowResult, makeObservable, runInAction } from 'mobx';
17
- import { GRAPH_MANAGER_LOG_EVENT } from '../../../../graphManager/GraphManagerLogEvent';
17
+ import { GRAPH_MANAGER_EVENT } from '../../../../graphManager/GraphManagerEvent';
18
18
  import { CORE_PURE_PATH, ELEMENT_PATH_DELIMITER, ROOT_PACKAGE_NAME, SOURCE_INFORMATION_KEY, } from '../../../../MetaModelConst';
19
- import { TracerService, LogEvent, getClass, guaranteeNonNullable, UnsupportedOperationError, recursiveOmit, assertTrue, assertErrorThrown, promisify, } from '@finos/legend-shared';
19
+ import { TracerService, LogEvent, getClass, guaranteeNonNullable, UnsupportedOperationError, recursiveOmit, assertTrue, assertErrorThrown, promisify, StopWatch, } from '@finos/legend-shared';
20
20
  import { AbstractPureGraphManager, } from '../../../../graphManager/AbstractPureGraphManager';
21
21
  import { PureModel, } from '../../../../graph/PureModel';
22
22
  import { RawLambda } from '../../../metamodels/pure/rawValueSpecification/RawLambda';
@@ -78,6 +78,8 @@ import { V1_buildExecutionResult } from './engine/V1_ExecutionHelper';
78
78
  import { ENTITY_PATH_DELIMITER, } from '@finos/legend-model-storage';
79
79
  import { DependencyGraphBuilderError, GraphBuilderError, SystemGraphBuilderError, } from '../../../../graphManager/GraphManagerUtils';
80
80
  import { PackageableElementReference } from '../../../metamodels/pure/packageableElements/PackageableElementReference';
81
+ import { V1_ExternalFormatModelGenerationInput } from './engine/externalFormat/V1_ExternalFormatModelGeneration';
82
+ import { GraphBuilderReport } from '../../../../graphManager/GraphBuilderReport';
81
83
  const V1_FUNCTION_SUFFIX_MULTIPLICITY_INFINITE = 'MANY';
82
84
  const getMultiplicitySuffix = (multiplicity) => {
83
85
  if (multiplicity.lowerBound === multiplicity.upperBound) {
@@ -114,7 +116,16 @@ class V1_PureModelContextDataIndex {
114
116
  generationSpecifications = [];
115
117
  otherElementsByBuilder = new Map();
116
118
  }
117
- const indexPureModelContextData = (data, extensions) => {
119
+ const mergePureModelContextData = (...data) => {
120
+ const mergedData = new V1_PureModelContextData();
121
+ for (const _data of data) {
122
+ mergedData.elements = mergedData.elements.concat(_data.elements);
123
+ mergedData.serializer = _data.serializer ?? mergedData.serializer;
124
+ mergedData.origin = _data.origin ?? mergedData.origin;
125
+ }
126
+ return mergedData;
127
+ };
128
+ const indexPureModelContextData = (report, data, extensions) => {
118
129
  const index = new V1_PureModelContextDataIndex();
119
130
  index.elements = data.elements;
120
131
  const otherElementsByClass = new Map();
@@ -180,6 +191,37 @@ const indexPureModelContextData = (data, extensions) => {
180
191
  const builder = extensions.getExtraBuilderForProtocolClassOrThrow(_class);
181
192
  index.otherElementsByBuilder.set(builder, (index.otherElementsByBuilder.get(builder) ?? []).concat(elements));
182
193
  });
194
+ // report
195
+ report.elementCount.total = report.elementCount.total + index.elements.length;
196
+ report.elementCount.other =
197
+ (report.elementCount.other ?? 0) +
198
+ otherElementsByClass.size +
199
+ index.fileGenerations.length +
200
+ index.generationSpecifications.length;
201
+ report.elementCount.sectionIndex =
202
+ (report.elementCount.sectionIndex ?? 0) + index.sectionIndices.length;
203
+ report.elementCount.association =
204
+ (report.elementCount.association ?? 0) + index.associations.length;
205
+ report.elementCount.class =
206
+ (report.elementCount.class ?? 0) + index.classes.length;
207
+ report.elementCount.enumeration =
208
+ (report.elementCount.enumeration ?? 0) + index.enumerations.length;
209
+ report.elementCount.function =
210
+ (report.elementCount.function ?? 0) + index.functions.length;
211
+ report.elementCount.profile =
212
+ (report.elementCount.profile ?? 0) + index.profiles.length;
213
+ report.elementCount.measure =
214
+ (report.elementCount.measure ?? 0) + index.measures.length;
215
+ report.elementCount.store =
216
+ (report.elementCount.store ?? 0) + index.stores.length;
217
+ report.elementCount.mapping =
218
+ (report.elementCount.mapping ?? 0) + index.mappings.length;
219
+ report.elementCount.connection =
220
+ (report.elementCount.connection ?? 0) + index.connections.length;
221
+ report.elementCount.runtime =
222
+ (report.elementCount.runtime ?? 0) + index.runtimes.length;
223
+ report.elementCount.service =
224
+ (report.elementCount.service ?? 0) + index.services.length;
183
225
  return index;
184
226
  };
185
227
  export class V1_PureGraphManager extends AbstractPureGraphManager {
@@ -192,6 +234,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
192
234
  buildSystem: flow,
193
235
  buildDependencies: flow,
194
236
  buildGraph: flow,
237
+ buildGraphFromInputs: flow,
195
238
  buildGenerations: flow,
196
239
  initializeAndIndexElements: flow,
197
240
  postProcess: flow,
@@ -199,11 +242,11 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
199
242
  buildStores: flow,
200
243
  buildMappings: flow,
201
244
  buildConnectionsAndRuntimes: flow,
202
- buildSectionIndex: flow,
245
+ buildSectionIndices: flow,
203
246
  buildOtherElements: flow,
204
247
  buildServices: flow,
205
248
  buildFileGenerations: flow,
206
- buildGenerationSpecificationss: flow,
249
+ buildGenerationSpecifications: flow,
207
250
  });
208
251
  // setup plugins
209
252
  this.extensions = new V1_GraphBuilderExtensions(this.pluginManager.getPureProtocolProcessorPlugins());
@@ -226,204 +269,121 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
226
269
  }
227
270
  // --------------------------------------------- Graph Builder ---------------------------------------------
228
271
  *buildSystem(coreModel, systemModel, options) {
229
- const startTime = Date.now();
272
+ const stopWatch = new StopWatch();
273
+ const report = new GraphBuilderReport();
274
+ const graphBuilderState = systemModel.buildState;
275
+ graphBuilderState.reset();
230
276
  // Create a dummy graph for system processing. This is to ensure system model does not depend on the main graph
231
277
  const graph = new PureModel(coreModel, systemModel, this.pluginManager.getPureGraphPlugins());
232
278
  try {
233
- const systemData = new V1_PureModelContextData();
234
- yield V1_entitiesToPureModelContextData(
235
- /**
236
- * Get all system entities.
237
- *
238
- * NOTE: right now, we are doing extra work here: JSON -> protocol -> entities -> protocol, since we are
239
- * expecting to get these models from some a remote SDLC project in the future.
240
- */
241
- V1_deserializePureModelContextData(V1_CORE_SYSTEM_MODELS)
242
- .elements.concat(this.pluginManager
279
+ // deserialize
280
+ graphBuilderState.setMessage(`Collecting and deserializing elements...`);
281
+ const systemData = mergePureModelContextData(V1_deserializePureModelContextData(V1_CORE_SYSTEM_MODELS), ...this.pluginManager
243
282
  .getPureProtocolProcessorPlugins()
244
283
  .flatMap((plugin) => plugin.V1_getExtraSystemModels?.() ?? [])
245
- .flatMap((modelContextData) => V1_deserializePureModelContextData(modelContextData).elements))
246
- .map((element) => this.elementProtocolToEntity(element)), systemData, this.pluginManager.getPureProtocolProcessorPlugins());
247
- const systemGraphBuilderInput = [
284
+ .map((modelContextData) => V1_deserializePureModelContextData(modelContextData)));
285
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
286
+ // prepare build inputs
287
+ const buildInputs = [
248
288
  {
249
289
  model: systemModel,
250
- data: indexPureModelContextData(systemData, this.extensions),
290
+ data: indexPureModelContextData(report, systemData, this.extensions),
251
291
  },
252
292
  ];
253
- yield flowResult(this.initializeAndIndexElements(graph, systemGraphBuilderInput));
254
- // NOTE: right now we only have profile and enumeration for system, we might need to generalize this step in the future
255
- yield flowResult(this.buildTypes(graph, systemGraphBuilderInput));
256
- yield flowResult(this.buildOtherElements(graph, systemGraphBuilderInput));
257
- yield flowResult(this.postProcess(graph, systemGraphBuilderInput));
258
- if (!options?.quiet) {
259
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_SYSTEM_BUILT), Date.now() - startTime, 'ms', `[profile: ${systemModel.ownProfiles.length}, enumeration: ${systemModel.ownEnumerations.length}]`);
260
- }
261
- systemModel.buildState.pass();
293
+ // build
294
+ yield flowResult(this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, graphBuilderState, options));
295
+ graphBuilderState.pass();
296
+ report.timings = {
297
+ ...Object.fromEntries(stopWatch.records),
298
+ [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
299
+ };
300
+ return report;
262
301
  }
263
302
  catch (error) {
264
303
  assertErrorThrown(error);
265
- systemModel.buildState.fail();
266
- if (!options?.quiet) {
267
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_FAILURE), '[ERROR]', Date.now() - startTime, 'ms');
268
- }
304
+ graphBuilderState.fail();
305
+ this.log.error(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE));
269
306
  throw new SystemGraphBuilderError(error);
270
307
  }
308
+ finally {
309
+ graphBuilderState.setMessage(undefined);
310
+ }
271
311
  }
272
312
  *buildDependencies(coreModel, systemModel, dependencyManager, dependencyEntitiesMap, options) {
273
- const startTime = Date.now();
274
- dependencyManager.buildState.reset();
313
+ const stopWatch = new StopWatch();
314
+ const report = new GraphBuilderReport();
315
+ const graphBuilderState = dependencyManager.buildState;
316
+ graphBuilderState.reset();
275
317
  // Create a dummy graph for system processing. This is to ensure dependency models do not depend on the main graph
276
318
  const graph = new PureModel(coreModel, systemModel, this.pluginManager.getPureGraphPlugins());
277
319
  graph.setDependencyManager(dependencyManager);
278
320
  try {
279
321
  dependencyManager.initialize(dependencyEntitiesMap);
280
- // Parse/Build Data
322
+ // deserialize
323
+ graphBuilderState.setMessage(`Partitioning and deserializing elements...`);
281
324
  const dependencyDataMap = new Map();
282
325
  yield Promise.all(Array.from(dependencyEntitiesMap.entries()).map(([dependencyKey, entities]) => {
283
326
  const projectModelData = new V1_PureModelContextData();
284
327
  dependencyDataMap.set(dependencyKey, projectModelData);
285
328
  return V1_entitiesToPureModelContextData(entities, projectModelData, this.pluginManager.getPureProtocolProcessorPlugins());
286
329
  }));
287
- const preprocessingFinishedTime = Date.now();
288
- if (!options?.quiet) {
289
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DEPENDENCIES_PREPROCESSED), preprocessingFinishedTime - startTime, 'ms');
290
- }
291
- const graphBuilderInput = Array.from(dependencyDataMap.entries()).map(([dependencyKey, dependencyData]) => ({
292
- data: indexPureModelContextData(dependencyData, this.extensions),
330
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
331
+ // prepare build inputs
332
+ const buildInputs = Array.from(dependencyDataMap.entries()).map(([dependencyKey, dependencyData]) => ({
333
+ data: indexPureModelContextData(report, dependencyData, this.extensions),
293
334
  model: graph.dependencyManager.getModel(dependencyKey),
294
335
  }));
295
- yield flowResult(this.initializeAndIndexElements(graph, graphBuilderInput, options));
296
- // NOTE: we might need to process sectionIndex if we support unresolved element paths in dependencies
297
- yield flowResult(this.buildTypes(graph, graphBuilderInput, options));
298
- yield flowResult(this.buildStores(graph, graphBuilderInput, options));
299
- yield flowResult(this.buildMappings(graph, graphBuilderInput, options));
300
- yield flowResult(this.buildConnectionsAndRuntimes(graph, graphBuilderInput, options));
301
- yield flowResult(this.buildServices(graph, graphBuilderInput, options));
302
- yield flowResult(this.buildFileGenerations(graph, graphBuilderInput, options));
303
- yield flowResult(this.buildGenerationSpecificationss(graph, graphBuilderInput, options));
304
- yield flowResult(this.buildOtherElements(graph, graphBuilderInput, options));
305
- yield flowResult(this.postProcess(graph, graphBuilderInput));
306
- const processingFinishedTime = Date.now();
307
- if (!options?.quiet) {
308
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DEPENDENCIES_PROCESSED), processingFinishedTime - preprocessingFinishedTime, 'ms');
309
- }
310
- dependencyManager.buildState.pass();
311
- if (!options?.quiet) {
312
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DEPENDENCIES_BUILT), '[TOTAL]', Date.now() - startTime, 'ms');
313
- }
336
+ // build
337
+ yield flowResult(this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, graphBuilderState, options));
338
+ graphBuilderState.pass();
339
+ report.otherStats.projectCount = dependencyEntitiesMap.size;
340
+ report.timings = {
341
+ ...Object.fromEntries(stopWatch.records),
342
+ [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
343
+ };
344
+ return report;
314
345
  }
315
346
  catch (error) {
316
347
  assertErrorThrown(error);
317
- if (!options?.quiet) {
318
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_FAILURE), '[ERROR]', Date.now() - startTime, 'ms');
319
- }
320
- dependencyManager.buildState.fail();
348
+ this.log.error(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE));
349
+ graphBuilderState.fail();
321
350
  throw new DependencyGraphBuilderError(error);
322
351
  }
352
+ finally {
353
+ graphBuilderState.setMessage(undefined);
354
+ }
323
355
  }
324
356
  *buildGraph(graph, entities, options) {
325
- let stepStartTime = Date.now();
326
- let stepFinishedTime;
327
- const startTime = stepStartTime;
357
+ const stopWatch = new StopWatch();
358
+ const report = new GraphBuilderReport();
359
+ const graphBuilderState = graph.buildState;
360
+ graphBuilderState.reset();
328
361
  try {
329
- // Parse/Build Data
362
+ // deserialize
363
+ graphBuilderState.setMessage(`Deserializing elements...`);
330
364
  const data = new V1_PureModelContextData();
331
365
  yield V1_entitiesToPureModelContextData(entities, data, this.pluginManager.getPureProtocolProcessorPlugins());
332
- const graphBuilderInput = [
366
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
367
+ // prepare build inputs
368
+ const buildInputs = [
333
369
  {
334
370
  model: graph,
335
- data: indexPureModelContextData(data, this.extensions),
371
+ data: indexPureModelContextData(report, data, this.extensions),
336
372
  },
337
373
  ];
338
- stepFinishedTime = Date.now();
339
- if (!options?.quiet) {
340
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DATA_MODEL_PARSED), stepFinishedTime - stepStartTime, 'ms');
341
- }
342
- stepStartTime = stepFinishedTime;
343
- yield flowResult(this.initializeAndIndexElements(graph, graphBuilderInput, options));
344
- stepFinishedTime = Date.now();
345
- if (!options?.quiet) {
346
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_ELEMENTS_INITIALIZED_AND_INDEXED), stepFinishedTime - stepStartTime, 'ms', `[element: ${data.elements.length}]`);
347
- }
348
- stepStartTime = stepFinishedTime;
349
- // Section index
350
- yield flowResult(this.buildSectionIndex(graph, graphBuilderInput, options));
351
- stepFinishedTime = Date.now();
352
- if (!options?.quiet) {
353
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_SECTION_INDICES_BUILT), stepFinishedTime - stepStartTime, 'ms', `[sectionIndex: ${graph.ownSectionIndices.length}]`);
354
- }
355
- stepStartTime = stepFinishedTime;
356
- // Types
357
- yield flowResult(this.buildTypes(graph, graphBuilderInput, options));
358
- stepFinishedTime = Date.now();
359
- if (!options?.quiet) {
360
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DOMAIN_MODELS_BUILT), stepFinishedTime - stepStartTime, 'ms', `[class: ${graph.ownClasses.length}, enumeration: ${graph.ownEnumerations.length}, association: ${graph.ownAssociations.length}, profile: ${graph.ownProfiles.length}, functions: ${graph.ownFunctions.length}]`);
361
- }
362
- stepStartTime = stepFinishedTime;
363
- // Stores
364
- yield flowResult(this.buildStores(graph, graphBuilderInput, options));
365
- stepFinishedTime = Date.now();
366
- // TODO: we might want to detail out the number of stores by type
367
- if (!options?.quiet) {
368
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_STORES_BUILT), stepFinishedTime - stepStartTime, 'ms', `[store: ${graph.ownStores.length}]`);
369
- }
370
- stepStartTime = stepFinishedTime;
371
- // Mappings
372
- yield flowResult(this.buildMappings(graph, graphBuilderInput, options));
373
- stepFinishedTime = Date.now();
374
- if (!options?.quiet) {
375
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_MAPPINGS_BUILT), stepFinishedTime - stepStartTime, 'ms', `[mapping: ${graph.ownMappings.length}]`);
376
- }
377
- stepStartTime = stepFinishedTime;
378
- // Connections and runtimes
379
- yield flowResult(this.buildConnectionsAndRuntimes(graph, graphBuilderInput, options));
380
- stepFinishedTime = Date.now();
381
- if (!options?.quiet) {
382
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_CONNECTIONS_BUILT), stepFinishedTime - stepStartTime, 'ms', `[connection: ${graph.ownConnections.length}]`);
383
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_RUNTIMES_BUILT), stepFinishedTime - stepStartTime, 'ms', `[runtime: ${graph.ownRuntimes.length}]`);
384
- }
385
- stepStartTime = stepFinishedTime;
386
- // Services
387
- yield flowResult(this.buildServices(graph, graphBuilderInput, options));
388
- stepFinishedTime = Date.now();
389
- if (!options?.quiet) {
390
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_SERVICES_BUILT), stepFinishedTime - stepStartTime, 'ms', `[service: ${graph.ownServices.length}]`);
391
- }
392
- stepStartTime = stepFinishedTime;
393
- // File Generation
394
- yield flowResult(this.buildFileGenerations(graph, graphBuilderInput, options));
395
- stepFinishedTime = Date.now();
396
- if (!options?.quiet) {
397
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_FILE_GENERATIONS_BUILT), stepFinishedTime - stepStartTime, 'ms', `[file-generation: ${graph.ownFileGenerations.length}]`);
398
- }
399
- stepStartTime = stepFinishedTime;
400
- // Generation Specifications (tree)
401
- yield flowResult(this.buildGenerationSpecificationss(graph, graphBuilderInput, options));
402
- stepFinishedTime = Date.now();
403
- if (!options?.quiet) {
404
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_GENERATION_TREE_BUILT), stepFinishedTime - stepStartTime, 'ms', `[generation-specification: ${graph.ownGenerationSpecifications.length}]`);
405
- }
406
- stepStartTime = stepFinishedTime;
407
- // Other elements
408
- yield flowResult(this.buildOtherElements(graph, graphBuilderInput, options));
409
- stepFinishedTime = Date.now();
410
- if (!options?.quiet) {
411
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_OTHER_ELEMENTS_BUILT), stepFinishedTime - stepStartTime, 'ms');
412
- }
413
- yield flowResult(this.postProcess(graph, graphBuilderInput, {
414
- TEMPORARY__keepSectionIndex: options?.TEMPORARY__keepSectionIndex,
415
- }));
416
- graph.buildState.pass();
417
- if (!options?.quiet) {
418
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_COMPLETED), '[TOTAL]', Date.now() - startTime, 'ms');
419
- }
374
+ // build
375
+ yield flowResult(this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, graphBuilderState, options));
376
+ graphBuilderState.pass();
377
+ report.timings = {
378
+ ...Object.fromEntries(stopWatch.records),
379
+ [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
380
+ };
381
+ return report;
420
382
  }
421
383
  catch (error) {
422
384
  assertErrorThrown(error);
423
- if (!options?.quiet) {
424
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_FAILURE), '[ERROR]', Date.now() - startTime, 'ms');
425
- }
426
- graph.buildState.fail();
385
+ this.log.error(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE));
386
+ graphBuilderState.fail();
427
387
  /**
428
388
  * Wrap all error with `GraphBuilderError`, as we throw a lot of assertion error in the graph builder
429
389
  * But we might want to rethink this decision in the future and throw appropriate type of error
@@ -432,47 +392,46 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
432
392
  ? error
433
393
  : new GraphBuilderError(error);
434
394
  }
395
+ finally {
396
+ graphBuilderState.setMessage(undefined);
397
+ }
435
398
  }
436
399
  *buildGenerations(graph, generatedEntities, options) {
437
- const stepStartTime = Date.now();
400
+ const stopWatch = new StopWatch();
401
+ const report = new GraphBuilderReport();
438
402
  const generatedModel = graph.generationModel;
439
- generatedModel.buildState.reset();
403
+ const graphBuilderState = generatedModel.buildState;
404
+ graphBuilderState.reset();
440
405
  try {
441
- if (!options?.quiet) {
442
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_DATA_MODEL_PARSED));
443
- }
406
+ // deserialize
407
+ graphBuilderState.setMessage(`Deserializing elements...`);
444
408
  const generatedDataMap = new Map();
445
409
  yield Promise.all(Array.from(generatedEntities.entries()).map(([generationParentPath, entities]) => {
446
410
  const generatedData = new V1_PureModelContextData();
447
411
  generatedDataMap.set(generationParentPath, generatedData);
448
412
  return V1_entitiesToPureModelContextData(entities, generatedData, this.pluginManager.getPureProtocolProcessorPlugins());
449
413
  }));
450
- const generationGraphBuilderInput = Array.from(generatedDataMap.entries()).map(([generationParentPath, generatedData]) => ({
414
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_DESERIALIZED);
415
+ // prepare build inputs
416
+ const buildInputs = Array.from(generatedDataMap.entries()).map(([generationParentPath, generatedData]) => ({
451
417
  parentElementPath: generationParentPath,
452
- data: indexPureModelContextData(generatedData, this.extensions),
418
+ data: indexPureModelContextData(report, generatedData, this.extensions),
453
419
  model: generatedModel,
454
420
  }));
455
- yield flowResult(this.initializeAndIndexElements(graph, generationGraphBuilderInput));
456
- yield flowResult(this.buildTypes(graph, generationGraphBuilderInput));
457
- yield flowResult(this.buildStores(graph, generationGraphBuilderInput));
458
- yield flowResult(this.buildMappings(graph, generationGraphBuilderInput));
459
- yield flowResult(this.buildConnectionsAndRuntimes(graph, generationGraphBuilderInput));
460
- yield flowResult(this.buildServices(graph, generationGraphBuilderInput));
461
- yield flowResult(this.buildFileGenerations(graph, generationGraphBuilderInput));
462
- yield flowResult(this.buildGenerationSpecificationss(graph, generationGraphBuilderInput));
463
- yield flowResult(this.buildOtherElements(graph, generationGraphBuilderInput));
464
- yield flowResult(this.postProcess(graph, generationGraphBuilderInput));
465
- generatedModel.buildState.pass();
466
- if (!options?.quiet) {
467
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_GENERATIONS_BUILT), Date.now() - stepStartTime, `${graph.generationModel.allOwnElements.length} generated elements processed`, 'ms');
468
- }
421
+ // build
422
+ yield flowResult(this.buildGraphFromInputs(graph, buildInputs, report, stopWatch, graphBuilderState, options));
423
+ graphBuilderState.pass();
424
+ report.otherStats.generationCount = generatedDataMap.size;
425
+ report.timings = {
426
+ ...Object.fromEntries(stopWatch.records),
427
+ [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: stopWatch.elapsed,
428
+ };
429
+ return report;
469
430
  }
470
431
  catch (error) {
471
432
  assertErrorThrown(error);
472
- if (!options?.quiet) {
473
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_BUILDER_FAILURE), Date.now() - stepStartTime, 'ms');
474
- }
475
- generatedModel.buildState.fail();
433
+ this.log.error(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE));
434
+ graphBuilderState.fail();
476
435
  /**
477
436
  * Wrap all error with `GraphBuilderError`, as we throw a lot of assertion error in the graph builder
478
437
  * But we might want to rethink this decision in the future and throw appropriate type of error
@@ -481,6 +440,51 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
481
440
  ? error
482
441
  : new GraphBuilderError(error);
483
442
  }
443
+ finally {
444
+ graphBuilderState.setMessage(undefined);
445
+ }
446
+ }
447
+ *buildGraphFromInputs(graph, inputs, report, stopWatch, graphBuilderState, options) {
448
+ // index
449
+ graphBuilderState.setMessage(`Indexing ${report.elementCount.total} elements...`);
450
+ yield flowResult(this.initializeAndIndexElements(graph, inputs, options));
451
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_ELEMENTS_INDEXED);
452
+ // build section index
453
+ graphBuilderState.setMessage(`Building section indices...`);
454
+ yield flowResult(this.buildSectionIndices(graph, inputs, options));
455
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_SECTION_INDICES_BUILT);
456
+ // build types
457
+ graphBuilderState.setMessage(`Building domain models...`);
458
+ yield flowResult(this.buildTypes(graph, inputs, options));
459
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_DOMAIN_MODELS_BUILT);
460
+ // build stores
461
+ graphBuilderState.setMessage(`Building stores...`);
462
+ yield flowResult(this.buildStores(graph, inputs, options));
463
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_STORES_BUILT);
464
+ // build mappings
465
+ graphBuilderState.setMessage(`Building mappings...`);
466
+ yield flowResult(this.buildMappings(graph, inputs, options));
467
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_MAPPINGS_BUILT);
468
+ // build connections and runtimes
469
+ graphBuilderState.setMessage(`Building connections and runtimes...`);
470
+ yield flowResult(this.buildConnectionsAndRuntimes(graph, inputs, options));
471
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_CONNECTIONS_AND_RUNTIMES_BUILT);
472
+ // build services
473
+ graphBuilderState.setMessage(`Building services...`);
474
+ yield flowResult(this.buildServices(graph, inputs, options));
475
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_SERVICES_BUILT);
476
+ // build other elements
477
+ graphBuilderState.setMessage(`Building other elements...`);
478
+ yield flowResult(this.buildFileGenerations(graph, inputs, options));
479
+ yield flowResult(this.buildGenerationSpecifications(graph, inputs, options));
480
+ yield flowResult(this.buildOtherElements(graph, inputs, options));
481
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_OTHER_ELEMENTS_BUILT);
482
+ // post-process
483
+ graphBuilderState.setMessage(`Post-processing graph...`);
484
+ yield flowResult(this.postProcess(graph, inputs, {
485
+ TEMPORARY__keepSectionIndex: options?.TEMPORARY__keepSectionIndex,
486
+ }));
487
+ stopWatch.record(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_POST_PROCESSED);
484
488
  }
485
489
  getBuilderContext(graph, currentSubGraph, element, options) {
486
490
  return new V1_GraphBuilderContextBuilder(graph, currentSubGraph, this.extensions, this.log, options)
@@ -559,10 +563,10 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
559
563
  *buildFileGenerations(graph, inputs, options) {
560
564
  yield Promise.all(inputs.flatMap((input) => input.data.fileGenerations.map((element) => this.visitWithErrorHandling(element, new V1_ProtocolToMetaModelGraphSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
561
565
  }
562
- *buildGenerationSpecificationss(graph, inputs, options) {
566
+ *buildGenerationSpecifications(graph, inputs, options) {
563
567
  yield Promise.all(inputs.flatMap((input) => input.data.generationSpecifications.map((element) => this.visitWithErrorHandling(element, new V1_ProtocolToMetaModelGraphSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
564
568
  }
565
- *buildSectionIndex(graph, inputs, options) {
569
+ *buildSectionIndices(graph, inputs, options) {
566
570
  yield Promise.all(inputs.flatMap((input) => input.data.sectionIndices.map((element) => this.visitWithErrorHandling(element, new V1_ProtocolToMetaModelGraphSecondPassBuilder(this.getBuilderContext(graph, input.model, element, options))))));
567
571
  }
568
572
  *buildOtherElements(graph, inputs, options) {
@@ -589,13 +593,13 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
589
593
  const startTime = Date.now();
590
594
  const graphData = this.graphToPureModelContextData(graph);
591
595
  const grammarToJson = await this.engine.pureModelContextDataToPureCode(graphData);
592
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED), Date.now() - startTime, 'ms');
596
+ this.log.info(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED), Date.now() - startTime, 'ms');
593
597
  return grammarToJson;
594
598
  }
595
599
  async entitiesToPureCode(entities) {
596
600
  const startTime = Date.now();
597
601
  const grammarToJson = await this.engine.pureModelContextDataToPureCode(await this.entitiesToPureModelContextData(entities));
598
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED), Date.now() - startTime, 'ms');
602
+ this.log.info(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED), Date.now() - startTime, 'ms');
599
603
  return grammarToJson;
600
604
  }
601
605
  async pureCodeToEntities(code, options) {
@@ -687,6 +691,19 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
687
691
  serializeRawValueSpecification(metamodel) {
688
692
  return V1_serializeRawValueSpecification(metamodel.accept_RawValueSpecificationVisitor(new V1_RawValueSpecificationTransformer(new V1_GraphTransformerContextBuilder(this.pluginManager.getPureProtocolProcessorPlugins()).build())));
689
693
  }
694
+ // ------------------------------------------- External Format --------------------------------
695
+ getAvailableExternalFormatsDescriptions() {
696
+ return this.engine.getAvailableExternalFormatsDescriptions();
697
+ }
698
+ generateModelFromExternalFormat(configurationProperties, graph) {
699
+ const config = {};
700
+ configurationProperties.forEach((property) => {
701
+ config[property.name] = property.value;
702
+ });
703
+ const model = this.getFullGraphModelData(graph);
704
+ const input = new V1_ExternalFormatModelGenerationInput(model, config);
705
+ return this.engine.generateModel(input);
706
+ }
690
707
  // ------------------------------------------- Import -------------------------------------------
691
708
  getAvailableImportConfigurationDescriptions() {
692
709
  return this.engine.getAvailableImportConfigurationDescriptions();
@@ -711,7 +728,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
711
728
  async entitiesToPureProtocolText(entities) {
712
729
  return JSON.stringify(V1_serializePureModelContext(await this.entitiesToPureModelContextData(entities)), undefined, this.engine.config.tabSize);
713
730
  }
714
- pureProtocolToEntities = (protocol) => {
731
+ pureProtocolTextToEntities = (protocol) => {
715
732
  const graphData = V1_deserializePureModelContextData(JSON.parse(protocol));
716
733
  return this.pureModelContextDataToEntities(graphData);
717
734
  };
@@ -781,8 +798,8 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
781
798
  // --------------------------------------------- Service ---------------------------------------------
782
799
  async runServiceTests(service, graph) {
783
800
  const protocolGraph = this.getFullGraphModelData(graph);
784
- const targetService = guaranteeNonNullable(protocolGraph
785
- .getElementsOfType(V1_Service)
801
+ const targetService = guaranteeNonNullable(protocolGraph.elements
802
+ .filter((element) => element instanceof V1_Service)
786
803
  .find((element) => element.path === service.path), `Can't run service test: service '${service.path}' not found`);
787
804
  protocolGraph.elements = protocolGraph.elements.filter((element) => !(element instanceof V1_Service));
788
805
  protocolGraph.elements.push(targetService);
@@ -1019,7 +1036,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
1019
1036
  graphData.elements = graph.allOwnElements.map((element) => this.elementToProtocol(element, {
1020
1037
  keepSourceInformation: options?.keepSourceInformation,
1021
1038
  }));
1022
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_META_MODEL_TO_PROTOCOL_TRANSFORMED), Date.now() - startTime, 'ms');
1039
+ this.log.info(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_META_MODEL_TO_PROTOCOL_TRANSFORMED), Date.now() - startTime, 'ms');
1023
1040
  return graphData;
1024
1041
  };
1025
1042
  getGraphCompileContext = (graph) => {
@@ -1031,7 +1048,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
1031
1048
  ...dependencyManager.allElements,
1032
1049
  ...generatedModel.allOwnElements,
1033
1050
  ].map((element) => this.elementToProtocol(element));
1034
- this.log.info(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_COMPILE_CONTEXT_COLLECTED), Date.now() - startTime, 'ms');
1051
+ this.log.info(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_COMPILE_CONTEXT_COLLECTED), Date.now() - startTime, 'ms');
1035
1052
  return graphData;
1036
1053
  };
1037
1054
  // --------------------------------------------- Utilities ---------------------------------------------
@@ -1129,7 +1146,7 @@ export class V1_PureGraphManager extends AbstractPureGraphManager {
1129
1146
  }
1130
1147
  catch (error) {
1131
1148
  assertErrorThrown(error);
1132
- this.log.warn(LogEvent.create(GRAPH_MANAGER_LOG_EVENT.GRAPH_MANAGER_FAILURE), `Can't extract assertion result`);
1149
+ this.log.warn(LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_MANAGER_FAILURE), `Can't extract assertion result`);
1133
1150
  json = undefined;
1134
1151
  }
1135
1152
  if (!json) {