@finos/legend-graph 0.2.1 → 0.3.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 (218) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/lib/GraphManagerState.d.ts +1 -0
  3. package/lib/GraphManagerState.d.ts.map +1 -1
  4. package/lib/GraphManagerState.js +27 -2
  5. package/lib/GraphManagerState.js.map +1 -1
  6. package/lib/GraphManagerStateProvider.js +1 -1
  7. package/lib/GraphManagerStateProvider.js.map +1 -1
  8. package/lib/GraphManagerTestUtils.js +1 -1
  9. package/lib/GraphManagerTestUtils.js.map +1 -1
  10. package/lib/MetaModelConst.d.ts +7 -0
  11. package/lib/MetaModelConst.d.ts.map +1 -1
  12. package/lib/MetaModelConst.js +8 -0
  13. package/lib/MetaModelConst.js.map +1 -1
  14. package/lib/graph/PureGraphPlugin.d.ts +2 -0
  15. package/lib/graph/PureGraphPlugin.d.ts.map +1 -1
  16. package/lib/graph/PureGraphPlugin.js +3 -0
  17. package/lib/graph/PureGraphPlugin.js.map +1 -1
  18. package/lib/graphManager/AbstractPureGraphManager.d.ts +5 -9
  19. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  20. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  21. package/lib/graphManager/CorePureGraphManagerPlugin.d.ts +0 -2
  22. package/lib/graphManager/CorePureGraphManagerPlugin.d.ts.map +1 -1
  23. package/lib/graphManager/CorePureGraphManagerPlugin.js +1 -4
  24. package/lib/graphManager/CorePureGraphManagerPlugin.js.map +1 -1
  25. package/lib/graphManager/PureGraphManagerPlugin.d.ts +2 -0
  26. package/lib/graphManager/PureGraphManagerPlugin.d.ts.map +1 -1
  27. package/lib/graphManager/PureGraphManagerPlugin.js +3 -0
  28. package/lib/graphManager/PureGraphManagerPlugin.js.map +1 -1
  29. package/lib/graphManager/action/SourceInformationHelper.d.ts.map +1 -1
  30. package/lib/graphManager/action/SourceInformationHelper.js +3 -1
  31. package/lib/graphManager/action/SourceInformationHelper.js.map +1 -1
  32. package/lib/graphManager/action/query/Query.d.ts +11 -0
  33. package/lib/graphManager/action/query/Query.d.ts.map +1 -1
  34. package/lib/graphManager/action/query/Query.js +13 -0
  35. package/lib/graphManager/action/query/Query.js.map +1 -1
  36. package/lib/graphManager/action/query/QuerySearchSpecification.d.ts +29 -0
  37. package/lib/graphManager/action/query/QuerySearchSpecification.d.ts.map +1 -0
  38. package/lib/graphManager/action/query/QuerySearchSpecification.js +28 -0
  39. package/lib/graphManager/action/query/QuerySearchSpecification.js.map +1 -0
  40. package/lib/helpers/DomainHelper.d.ts +20 -0
  41. package/lib/helpers/DomainHelper.d.ts.map +1 -0
  42. package/lib/helpers/DomainHelper.js +37 -0
  43. package/lib/helpers/DomainHelper.js.map +1 -0
  44. package/lib/helpers/MappingResolutionHelper.js +1 -1
  45. package/lib/helpers/MappingResolutionHelper.js.map +1 -1
  46. package/lib/index.d.ts +2 -0
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js +2 -0
  49. package/lib/index.js.map +1 -1
  50. package/lib/models/metamodels/pure/packageableElements/domain/Association.js +1 -1
  51. package/lib/models/metamodels/pure/packageableElements/domain/Association.js.map +1 -1
  52. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.d.ts.map +1 -1
  53. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.js +2 -2
  54. package/lib/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.js.map +1 -1
  55. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.d.ts.map +1 -1
  56. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js +0 -1
  57. package/lib/models/metamodels/pure/packageableElements/mapping/SetImplementation.js.map +1 -1
  58. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +2 -0
  59. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  60. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +7 -0
  61. package/lib/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  62. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.d.ts.map +1 -1
  63. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.js +3 -1
  64. package/lib/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.js.map +1 -1
  65. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts +2 -0
  66. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
  67. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js +3 -0
  68. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js.map +1 -1
  69. package/lib/models/protocols/pure/v1/V1_Core_SystemModels.json +7 -0
  70. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +6 -9
  71. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  72. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +8 -8
  73. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  74. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +2 -6
  75. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  76. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +14 -5
  77. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  78. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts +3 -0
  79. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.d.ts.map +1 -1
  80. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js +62 -2
  81. package/lib/models/protocols/pure/v1/engine/V1_EngineHelper.js.map +1 -1
  82. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +4 -8
  83. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  84. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +1 -6
  85. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  86. package/lib/models/protocols/pure/v1/engine/generation/V1_FileGenerationInput.d.ts +3 -3
  87. package/lib/models/protocols/pure/v1/engine/generation/V1_FileGenerationInput.d.ts.map +1 -1
  88. package/lib/models/protocols/pure/v1/engine/generation/V1_FileGenerationInput.js +2 -2
  89. package/lib/models/protocols/pure/v1/engine/generation/V1_FileGenerationInput.js.map +1 -1
  90. package/lib/models/protocols/pure/v1/engine/query/V1_Query.d.ts +4 -0
  91. package/lib/models/protocols/pure/v1/engine/query/V1_Query.d.ts.map +1 -1
  92. package/lib/models/protocols/pure/v1/engine/query/V1_Query.js +7 -2
  93. package/lib/models/protocols/pure/v1/engine/query/V1_Query.js.map +1 -1
  94. package/lib/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.d.ts +33 -0
  95. package/lib/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.d.ts.map +1 -0
  96. package/lib/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.js +43 -0
  97. package/lib/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.js.map +1 -0
  98. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextPointer.d.ts +3 -3
  99. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextPointer.d.ts.map +1 -1
  100. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextText.d.ts +22 -0
  101. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextText.d.ts.map +1 -0
  102. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextText.js +21 -0
  103. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContextText.js.map +1 -0
  104. package/lib/models/protocols/pure/v1/model/context/{V1_AlloySdlc.d.ts → V1_SDLC.d.ts} +4 -4
  105. package/lib/models/protocols/pure/v1/model/context/V1_SDLC.d.ts.map +1 -0
  106. package/lib/models/protocols/pure/v1/model/context/{V1_AlloySdlc.js → V1_SDLC.js} +3 -3
  107. package/lib/models/protocols/pure/v1/model/context/V1_SDLC.js.map +1 -0
  108. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.d.ts.map +1 -1
  109. package/lib/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.js.map +1 -1
  110. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +1 -0
  111. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  112. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +2 -0
  113. package/lib/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  114. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  115. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +1 -0
  116. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  117. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.d.ts.map +1 -1
  118. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +6 -4
  119. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  120. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.d.ts.map +1 -1
  121. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js +4 -3
  122. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.js.map +1 -1
  123. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.d.ts.map +1 -1
  124. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js +6 -6
  125. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.js.map +1 -1
  126. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_GraphBuilderContext.d.ts.map +1 -1
  127. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_GraphBuilderContext.js +2 -2
  128. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_GraphBuilderContext.js.map +1 -1
  129. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.d.ts.map +1 -1
  130. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js +4 -4
  131. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js.map +1 -1
  132. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.d.ts.map +1 -1
  133. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.js +3 -3
  134. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.js.map +1 -1
  135. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.d.ts.map +1 -1
  136. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +12 -10
  137. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  138. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.d.ts.map +1 -1
  139. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.js +3 -2
  140. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.js.map +1 -1
  141. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
  142. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +1 -1
  143. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
  144. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.d.ts.map +1 -1
  145. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js +2 -1
  146. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.js.map +1 -1
  147. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.d.ts.map +1 -1
  148. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
  149. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.d.ts +1 -1
  150. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.d.ts.map +1 -1
  151. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.js +6 -4
  152. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.js.map +1 -1
  153. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  154. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +1 -0
  155. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  156. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  157. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +20 -12
  158. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  159. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.d.ts +4 -1
  160. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.d.ts.map +1 -1
  161. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.js +24 -8
  162. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.js.map +1 -1
  163. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  164. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +1 -0
  165. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  166. package/package.json +9 -9
  167. package/src/GraphManagerState.ts +35 -4
  168. package/src/MetaModelConst.ts +9 -0
  169. package/src/graph/PureGraphPlugin.ts +5 -0
  170. package/src/graphManager/AbstractPureGraphManager.ts +7 -9
  171. package/src/graphManager/CorePureGraphManagerPlugin.ts +1 -6
  172. package/src/graphManager/PureGraphManagerPlugin.ts +5 -0
  173. package/src/graphManager/action/SourceInformationHelper.ts +3 -1
  174. package/src/graphManager/action/query/Query.ts +15 -0
  175. package/src/graphManager/action/query/QuerySearchSpecification.ts +31 -0
  176. package/src/helpers/DomainHelper.ts +53 -0
  177. package/src/helpers/MappingResolutionHelper.ts +3 -3
  178. package/src/index.ts +2 -0
  179. package/src/models/metamodels/pure/packageableElements/domain/Association.ts +1 -1
  180. package/src/models/metamodels/pure/packageableElements/mapping/EnumValueMapping.ts +7 -2
  181. package/src/models/metamodels/pure/packageableElements/mapping/SetImplementation.ts +0 -1
  182. package/src/models/metamodels/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +8 -0
  183. package/src/models/metamodels/pure/packageableElements/store/relational/model/RelationalOperationElement.ts +3 -1
  184. package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +5 -0
  185. package/src/models/protocols/pure/v1/V1_Core_SystemModels.json +7 -0
  186. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +17 -14
  187. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +25 -12
  188. package/src/models/protocols/pure/v1/engine/V1_EngineHelper.ts +92 -1
  189. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +9 -14
  190. package/src/models/protocols/pure/v1/engine/generation/V1_FileGenerationInput.ts +5 -5
  191. package/src/models/protocols/pure/v1/engine/query/V1_Query.ts +12 -2
  192. package/src/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.ts +58 -0
  193. package/src/models/protocols/pure/v1/model/context/V1_PureModelContextPointer.ts +3 -3
  194. package/src/models/protocols/pure/v1/model/context/V1_PureModelContextText.ts +23 -0
  195. package/src/models/protocols/pure/v1/model/context/{V1_AlloySdlc.ts → V1_SDLC.ts} +3 -3
  196. package/src/models/protocols/pure/v1/model/packageableElements/mapping/V1_ClassMapping.ts +0 -1
  197. package/src/models/protocols/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +2 -0
  198. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +1 -0
  199. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +7 -4
  200. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ValueSpecificationTransformer.ts +4 -3
  201. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ExecutionPlanBuilder.ts +32 -6
  202. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_GraphBuilderContext.ts +2 -1
  203. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.ts +6 -3
  204. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphThirdPassBuilder.ts +3 -2
  205. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +18 -11
  206. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_AssociationMappingHelper.ts +3 -2
  207. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +13 -4
  208. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DomainBuilderHelper.ts +2 -1
  209. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +3 -1
  210. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ProcessingContext.ts +8 -4
  211. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +1 -0
  212. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +32 -13
  213. package/src/models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization.ts +32 -5
  214. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +1 -0
  215. package/tsconfig.json +6 -1
  216. package/tsconfig.package.json +1 -0
  217. package/lib/models/protocols/pure/v1/model/context/V1_AlloySdlc.d.ts.map +0 -1
  218. package/lib/models/protocols/pure/v1/model/context/V1_AlloySdlc.js.map +0 -1
@@ -43,20 +43,24 @@ export class V1_ProcessingContext {
43
43
  return this.tags;
44
44
  }
45
45
 
46
- getLastInferredVariableList(): Map<string, ValueSpecification> {
47
- return this.inferredVariableList[this.inferredVariableList.length - 1];
46
+ private get lastInferredVariableList():
47
+ | Map<string, ValueSpecification>
48
+ | undefined {
49
+ return this.inferredVariableList.length
50
+ ? this.inferredVariableList[this.inferredVariableList.length - 1]
51
+ : undefined;
48
52
  }
49
53
 
50
54
  addInferredVariables(name: string, variable: ValueSpecification): void {
51
55
  if (!this.inferredVariableList.length) {
52
56
  this.addVariableToNewLevel(name, variable);
53
57
  } else {
54
- this.getLastInferredVariableList().set(name, variable);
58
+ this.lastInferredVariableList?.set(name, variable);
55
59
  }
56
60
  }
57
61
 
58
62
  flushVariable(name: string): void {
59
- this.getLastInferredVariableList().delete(name);
63
+ this.lastInferredVariableList?.delete(name);
60
64
  }
61
65
 
62
66
  removeLastVariableLevel(): void {
@@ -134,6 +134,7 @@ export const V1_buildDatasourceSpecification = (
134
134
  snowflakeSpec.nonProxyHosts = protocol.nonProxyHosts;
135
135
  snowflakeSpec.organization = protocol.organization;
136
136
  snowflakeSpec.accountType = protocol.accountType;
137
+ snowflakeSpec.role = protocol.role;
137
138
  return snowflakeSpec;
138
139
  } else if (protocol instanceof V1_BigQueryDatasourceSpecification) {
139
140
  assertNonEmptyString(
@@ -19,6 +19,8 @@ import {
19
19
  guaranteeNonNullable,
20
20
  guaranteeType,
21
21
  UnsupportedOperationError,
22
+ isNonNullable,
23
+ uniq,
22
24
  } from '@finos/legend-shared';
23
25
  import {
24
26
  TYPICAL_MULTIPLICITY_TYPE,
@@ -203,7 +205,7 @@ export class V1_ValueSpecificationBuilder
203
205
  `Applying function '${appliedFunction.function}'`,
204
206
  );
205
207
  if (appliedFunction.function === LET_FUNCTION) {
206
- const vs = appliedFunction.parameters.map((expression) =>
208
+ const parameters = appliedFunction.parameters.map((expression) =>
207
209
  expression.accept_ValueSpecificationVisitor(
208
210
  new V1_ValueSpecificationBuilder(
209
211
  this.context,
@@ -212,11 +214,16 @@ export class V1_ValueSpecificationBuilder
212
214
  ),
213
215
  ),
214
216
  );
215
- const letName = guaranteeType(appliedFunction.parameters[0], V1_CString)
216
- .values[0];
217
- const ve = new VariableExpression(letName, vs[0].multiplicity);
218
- ve.genericType = vs[0].genericType;
219
- this.processingContext.addInferredVariables(letName, ve);
217
+ const letName = guaranteeNonNullable(
218
+ guaranteeType(appliedFunction.parameters[0], V1_CString).values[0],
219
+ );
220
+ const firstParam = guaranteeNonNullable(parameters[0]);
221
+ const variableExpression = new VariableExpression(
222
+ letName,
223
+ firstParam.multiplicity,
224
+ );
225
+ variableExpression.genericType = firstParam.genericType;
226
+ this.processingContext.addInferredVariables(letName, variableExpression);
220
227
  }
221
228
  const func = V1_buildFunctionExpression(
222
229
  appliedFunction.function,
@@ -260,6 +267,17 @@ export class V1_ValueSpecificationBuilder
260
267
  ),
261
268
  );
262
269
  instance.values = transformed;
270
+ // NOTE: Engine applies a more sophisticated `findMostCommon()` algorithm to find the collection's generic type. Here we only handle the case where the collection has one type.
271
+ const typeValues = uniq(
272
+ instance.values
273
+ .map((v) => v.genericType?.value.rawType)
274
+ .filter(isNonNullable),
275
+ );
276
+ if (typeValues.length === 1) {
277
+ instance.genericType = GenericTypeExplicitReference.create(
278
+ new GenericType(guaranteeNonNullable(typeValues[0])),
279
+ );
280
+ }
263
281
  return instance;
264
282
  }
265
283
 
@@ -598,7 +616,7 @@ export function V1_buildLambdaBody(
598
616
  ) as VariableExpression,
599
617
  );
600
618
  const openVariables: string[] = [];
601
- const valueSpecifications = expressions.map((e) =>
619
+ const _expressions = expressions.map((e) =>
602
620
  e.accept_ValueSpecificationVisitor(
603
621
  new V1_ValueSpecificationBuilder(
604
622
  context,
@@ -608,15 +626,16 @@ export function V1_buildLambdaBody(
608
626
  ),
609
627
  );
610
628
  // Remove let variables
629
+ const firstExpression = guaranteeNonNullable(_expressions[0]);
611
630
  const functionType = buildFunctionType(
612
631
  pureParameters,
613
- valueSpecifications[0].genericType?.value.rawType,
614
- valueSpecifications[0].multiplicity,
632
+ firstExpression.genericType?.value.rawType,
633
+ firstExpression.multiplicity,
615
634
  );
616
635
  processingContext.pop();
617
636
  const _lambda = new LambdaFunction(functionType);
618
637
  _lambda.openVariables = [];
619
- _lambda.expressionSequence = valueSpecifications;
638
+ _lambda.expressionSequence = _expressions;
620
639
  return _lambda;
621
640
  }
622
641
 
@@ -684,7 +703,7 @@ function buildPropertyGraphFetchTree(
684
703
  ): PropertyGraphFetchTree {
685
704
  let property: AbstractProperty;
686
705
  let pureParameters: ValueSpecification[] = [];
687
- if (!propertyGraphFetchTree.parameters.length) {
706
+ if (propertyGraphFetchTree.parameters.length) {
688
707
  const thisVariable = new V1_Variable();
689
708
  thisVariable.name = 'this';
690
709
  thisVariable.class = parentClass.path;
@@ -836,7 +855,7 @@ export function V1_processProperty(
836
855
  ),
837
856
  ),
838
857
  );
839
- let inferredVariable: ValueSpecification;
858
+ let inferredVariable: ValueSpecification | undefined;
840
859
  if (firstParameter instanceof V1_Variable) {
841
860
  inferredVariable = guaranteeType(
842
861
  processingContext.getInferredVariable(firstParameter.name),
@@ -846,7 +865,7 @@ export function V1_processProperty(
846
865
  inferredVariable = processedParameters[0];
847
866
  }
848
867
  let inferredType: Type | undefined =
849
- inferredVariable.genericType?.value.rawType;
868
+ inferredVariable?.genericType?.value.rawType;
850
869
  if (inferredVariable instanceof AbstractPropertyExpression) {
851
870
  inferredType = inferredVariable.func.genericType.value.rawType;
852
871
  }
@@ -40,14 +40,15 @@ import {
40
40
  } from '../../transformation/pureProtocol/V1_PackageableElementSerialization';
41
41
  import { V1_PureModelContextComposite } from '../../model/context/V1_PureModelContextComposite';
42
42
  import { V1_Protocol } from '../../model/V1_Protocol';
43
- import { V1_AlloySdlc } from '../../model/context/V1_AlloySdlc';
43
+ import { V1_AlloySDLC } from '../../model/context/V1_SDLC';
44
44
  import type { V1_PureModelContext } from '../../model/context/V1_PureModelContext';
45
45
  import { V1_packageableElementPointerDeserializerSchema } from '../../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper';
46
46
  import type { PureProtocolProcessorPlugin } from '../../../PureProtocolProcessorPlugin';
47
47
  import type { Entity } from '@finos/legend-model-storage';
48
48
  import { GraphDataDeserializationError } from '../../../../../../graphManager/GraphManagerUtils';
49
+ import { V1_PureModelContextText } from '../../model/context/V1_PureModelContextText';
49
50
 
50
- enum V1_SdlcType {
51
+ enum V1_SDLCType {
51
52
  ALLOY = 'alloy',
52
53
  }
53
54
 
@@ -55,6 +56,7 @@ export enum V1_PureModelContextType {
55
56
  DATA = 'data',
56
57
  POINTER = 'pointer',
57
58
  COMPOSITE = 'composite',
59
+ TEXT = 'text',
58
60
  }
59
61
 
60
62
  export const V1_entitiesToPureModelContextData = async (
@@ -98,8 +100,8 @@ export const V1_entitiesToPureModelContextData = async (
98
100
  }
99
101
  };
100
102
 
101
- const alloySdlcSerializationModelSchema = createModelSchema(V1_AlloySdlc, {
102
- _type: usingConstantValueSchema(V1_SdlcType.ALLOY),
103
+ const alloySDLCSerializationModelSchema = createModelSchema(V1_AlloySDLC, {
104
+ _type: usingConstantValueSchema(V1_SDLCType.ALLOY),
103
105
  baseVersion: optional(primitive()),
104
106
  version: primitive(),
105
107
  groupId: primitive(),
@@ -115,12 +117,29 @@ export const V1_pureModelContextDataPropSchema = custom(
115
117
  (value) => deserialize(V1_PureModelContextData, value),
116
118
  );
117
119
 
120
+ const V1_pureModelContextTextSchema = createModelSchema(
121
+ V1_PureModelContextText,
122
+ {
123
+ _type: usingConstantValueSchema(V1_PureModelContextType.TEXT),
124
+ serializer: usingModelSchema(V1_Protocol.serialization.schema),
125
+ code: optional(primitive()),
126
+ },
127
+ );
128
+
129
+ export const V1_pureModelContextTextPropSchema = custom(
130
+ (value) =>
131
+ value === undefined
132
+ ? SKIP
133
+ : serialize(V1_pureModelContextTextSchema, value),
134
+ (value) => deserialize(V1_pureModelContextTextSchema, value),
135
+ );
136
+
118
137
  const V1_pureModelContextPointerModelSchema = createModelSchema(
119
138
  V1_PureModelContextPointer,
120
139
  {
121
140
  _type: usingConstantValueSchema(V1_PureModelContextType.POINTER),
122
141
  serializer: usingModelSchema(V1_Protocol.serialization.schema),
123
- sdlcInfo: usingModelSchema(alloySdlcSerializationModelSchema),
142
+ sdlcInfo: usingModelSchema(alloySDLCSerializationModelSchema),
124
143
  },
125
144
  );
126
145
 
@@ -172,9 +191,17 @@ export const V1_serializePureModelContext = (
172
191
  return V1_serializePureModelContextData(pureModelContext);
173
192
  } else if (pureModelContext instanceof V1_PureModelContextComposite) {
174
193
  return serialize(V1_pureModelContextCompositeModelSchema, pureModelContext);
194
+ } else if (pureModelContext instanceof V1_PureModelContextText) {
195
+ return serialize(V1_pureModelContextTextSchema, pureModelContext);
175
196
  }
176
197
  throw new UnsupportedOperationError(
177
198
  `Can't serialize Pure model context`,
178
199
  pureModelContext,
179
200
  );
180
201
  };
202
+
203
+ export const V1_pureModelContextPropSchema = custom(
204
+ (val: V1_PureModelContext) => V1_serializePureModelContext(val),
205
+ // TODO: we will populate this when we need to `deserialize`
206
+ (val) => SKIP,
207
+ );
@@ -175,6 +175,7 @@ const snowflakeDatasourceSpecificationModelSchema = createModelSchema(
175
175
  proxyPort: optional(primitive()),
176
176
  quotedIdentifiersIgnoreCase: optional(primitive()),
177
177
  region: primitive(),
178
+ role: optional(primitive()),
178
179
  warehouseName: primitive(),
179
180
  },
180
181
  );
package/tsconfig.json CHANGED
@@ -22,6 +22,7 @@
22
22
  "allowSyntheticDefaultImports": true,
23
23
  "strict": true,
24
24
  "noImplicitOverride": true,
25
+ "noUncheckedIndexedAccess": true,
25
26
  "exactOptionalPropertyTypes": true,
26
27
  "forceConsistentCasingInFileNames": true,
27
28
  "outDir": "./lib",
@@ -69,10 +70,12 @@
69
70
  "./src/graphManager/action/generation/GenerationOutput.ts",
70
71
  "./src/graphManager/action/generation/ImportConfigurationDescription.ts",
71
72
  "./src/graphManager/action/query/Query.ts",
73
+ "./src/graphManager/action/query/QuerySearchSpecification.ts",
72
74
  "./src/graphManager/action/service/ServiceExecutionMode.ts",
73
75
  "./src/graphManager/action/service/ServiceRegistrationResult.ts",
74
76
  "./src/graphManager/action/service/ServiceTestResult.ts",
75
77
  "./src/helpers/DatabaseHelper.ts",
78
+ "./src/helpers/DomainHelper.ts",
76
79
  "./src/helpers/MappingHelper.ts",
77
80
  "./src/helpers/MappingResolutionHelper.ts",
78
81
  "./src/helpers/ServiceHelper.ts",
@@ -264,17 +267,19 @@
264
267
  "./src/models/protocols/pure/v1/engine/import/V1_ImportConfigurationDescription.ts",
265
268
  "./src/models/protocols/pure/v1/engine/import/V1_PureModelContextGenerationInput.ts",
266
269
  "./src/models/protocols/pure/v1/engine/query/V1_Query.ts",
270
+ "./src/models/protocols/pure/v1/engine/query/V1_QuerySearchSpecification.ts",
267
271
  "./src/models/protocols/pure/v1/engine/service/V1_ServiceConfiguration.ts",
268
272
  "./src/models/protocols/pure/v1/engine/service/V1_ServiceRegistrationResult.ts",
269
273
  "./src/models/protocols/pure/v1/engine/service/V1_ServiceStorage.ts",
270
274
  "./src/models/protocols/pure/v1/engine/service/V1_ServiceTestResult.ts",
271
275
  "./src/models/protocols/pure/v1/model/V1_Protocol.ts",
272
276
  "./src/models/protocols/pure/v1/model/V1_SourceInformation.ts",
273
- "./src/models/protocols/pure/v1/model/context/V1_AlloySdlc.ts",
274
277
  "./src/models/protocols/pure/v1/model/context/V1_PureModelContext.ts",
275
278
  "./src/models/protocols/pure/v1/model/context/V1_PureModelContextComposite.ts",
276
279
  "./src/models/protocols/pure/v1/model/context/V1_PureModelContextData.ts",
277
280
  "./src/models/protocols/pure/v1/model/context/V1_PureModelContextPointer.ts",
281
+ "./src/models/protocols/pure/v1/model/context/V1_PureModelContextText.ts",
282
+ "./src/models/protocols/pure/v1/model/context/V1_SDLC.ts",
278
283
  "./src/models/protocols/pure/v1/model/executionPlan/V1_ExecutionPlan.ts",
279
284
  "./src/models/protocols/pure/v1/model/executionPlan/V1_SimpleExecutionPlan.ts",
280
285
  "./src/models/protocols/pure/v1/model/executionPlan/nodes/V1_ExecutionNode.ts",
@@ -22,6 +22,7 @@
22
22
  "allowSyntheticDefaultImports": true,
23
23
  "strict": true,
24
24
  "noImplicitOverride": true,
25
+ "noUncheckedIndexedAccess": true,
25
26
  "exactOptionalPropertyTypes": true,
26
27
  "forceConsistentCasingInFileNames": true,
27
28
  "outDir": "./lib",
@@ -1 +0,0 @@
1
- {"version":3,"file":"V1_AlloySdlc.d.ts","sourceRoot":"","sources":["../../../../../../../src/models/protocols/pure/v1/model/context/V1_AlloySdlc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAE1G,8BAAsB,OAAO;IAC3B,WAAW,SAAY;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B,EAAE,4BAA4B,EAAE,CAAM;gBAEpD,OAAO,EAAE,MAAM,GAAG,SAAS;CAGxC;AAED,qBAAa,YAAa,SAAQ,OAAO;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;gBAGjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,SAAS;CAM9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"V1_AlloySdlc.js","sourceRoot":"","sources":["../../../../../../../src/models/protocols/pure/v1/model/context/V1_AlloySdlc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,OAAgB,OAAO;IAC3B,WAAW,GAAG,QAAQ,CAAC;IACvB,OAAO,CAAS;IAChB,0BAA0B,GAAmC,EAAE,CAAC;IAEhE,YAAY,OAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,OAAO,CAAS;IAChB,UAAU,CAAS;IAEnB,YACE,OAAe,EACf,UAAkB,EAClB,OAA2B;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}