@finos/legend-graph 9.0.1 → 10.1.1

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 (210) hide show
  1. package/lib/DSLData_Exports.d.ts +2 -1
  2. package/lib/DSLData_Exports.d.ts.map +1 -1
  3. package/lib/DSLData_Exports.js +2 -1
  4. package/lib/DSLData_Exports.js.map +1 -1
  5. package/lib/DSLMapping_Exports.d.ts +4 -0
  6. package/lib/DSLMapping_Exports.d.ts.map +1 -1
  7. package/lib/DSLMapping_Exports.js +4 -0
  8. package/lib/DSLMapping_Exports.js.map +1 -1
  9. package/lib/DSLService_Exports.d.ts +7 -0
  10. package/lib/DSLService_Exports.d.ts.map +1 -1
  11. package/lib/DSLService_Exports.js +7 -0
  12. package/lib/DSLService_Exports.js.map +1 -1
  13. package/lib/MetaModelConst.d.ts +5 -4
  14. package/lib/MetaModelConst.d.ts.map +1 -1
  15. package/lib/MetaModelConst.js +6 -4
  16. package/lib/MetaModelConst.js.map +1 -1
  17. package/lib/graph/PureGraphPlugin.d.ts +1 -1
  18. package/lib/graph/PureGraphPlugin.js +1 -1
  19. package/lib/graphManager/AbstractPureGraphManager.d.ts +20 -11
  20. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  21. package/lib/graphManager/AbstractPureGraphManager.js +13 -0
  22. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  23. package/lib/graphManager/PureGraphManagerPlugin.d.ts +7 -4
  24. package/lib/graphManager/PureGraphManagerPlugin.d.ts.map +1 -1
  25. package/lib/graphManager/PureGraphManagerPlugin.js +1 -1
  26. package/lib/graphManager/PureGraphManagerPlugin.js.map +1 -1
  27. package/lib/graphManager/action/analytics/MappingAnalytics.d.ts +41 -0
  28. package/lib/graphManager/action/analytics/MappingAnalytics.d.ts.map +1 -0
  29. package/lib/graphManager/action/analytics/MappingAnalytics.js +58 -0
  30. package/lib/graphManager/action/analytics/MappingAnalytics.js.map +1 -0
  31. package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.d.ts +2 -3
  32. package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.d.ts.map +1 -1
  33. package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.js +8 -21
  34. package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.js.map +1 -1
  35. package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.d.ts.map +1 -1
  36. package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.js +2 -1
  37. package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.js.map +1 -1
  38. package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.d.ts.map +1 -1
  39. package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.js +3 -13
  40. package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.js.map +1 -1
  41. package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.d.ts +18 -0
  42. package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.d.ts.map +1 -0
  43. package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.js +17 -0
  44. package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.js.map +1 -0
  45. package/lib/graphManager/action/validation/DSLService_ValidationHelper.d.ts +3 -2
  46. package/lib/graphManager/action/validation/DSLService_ValidationHelper.d.ts.map +1 -1
  47. package/lib/graphManager/action/validation/DSLService_ValidationHelper.js +1 -1
  48. package/lib/graphManager/action/validation/DSLService_ValidationHelper.js.map +1 -1
  49. package/lib/helpers/Testable_Helper.d.ts +3 -0
  50. package/lib/helpers/Testable_Helper.d.ts.map +1 -1
  51. package/lib/helpers/Testable_Helper.js +3 -0
  52. package/lib/helpers/Testable_Helper.js.map +1 -1
  53. package/lib/helpers/ValueSpecificationHelper.d.ts +10 -3
  54. package/lib/helpers/ValueSpecificationHelper.d.ts.map +1 -1
  55. package/lib/helpers/ValueSpecificationHelper.js +59 -4
  56. package/lib/helpers/ValueSpecificationHelper.js.map +1 -1
  57. package/lib/index.d.ts +7 -1
  58. package/lib/index.d.ts.map +1 -1
  59. package/lib/index.js +7 -1
  60. package/lib/index.js.map +1 -1
  61. package/lib/models/metamodels/pure/data/EmbeddedData.d.ts +2 -2
  62. package/lib/models/metamodels/pure/data/EmbeddedData.d.ts.map +1 -1
  63. package/lib/models/metamodels/pure/data/{RelationalData.d.ts → RelationalCSVData.d.ts} +6 -15
  64. package/lib/models/metamodels/pure/data/RelationalCSVData.d.ts.map +1 -0
  65. package/lib/models/metamodels/pure/data/{RelationalData.js → RelationalCSVData.js} +10 -30
  66. package/lib/models/metamodels/pure/data/RelationalCSVData.js.map +1 -0
  67. package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.d.ts +1 -0
  68. package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.d.ts.map +1 -1
  69. package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.js +2 -0
  70. package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.js.map +1 -1
  71. package/lib/models/metamodels/pure/test/Test.d.ts +3 -1
  72. package/lib/models/metamodels/pure/test/Test.d.ts.map +1 -1
  73. package/lib/models/metamodels/pure/test/Test.js +2 -1
  74. package/lib/models/metamodels/pure/test/Test.js.map +1 -1
  75. package/lib/models/metamodels/pure/test/assertion/EqualToTDS.d.ts +2 -8
  76. package/lib/models/metamodels/pure/test/assertion/EqualToTDS.d.ts.map +1 -1
  77. package/lib/models/metamodels/pure/test/assertion/EqualToTDS.js +0 -11
  78. package/lib/models/metamodels/pure/test/assertion/EqualToTDS.js.map +1 -1
  79. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts +3 -2
  80. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -1
  81. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +6 -1
  82. package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -1
  83. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts +12 -3
  84. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
  85. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js +1 -1
  86. package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js.map +1 -1
  87. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +18 -9
  88. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  89. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +112 -139
  90. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  91. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +4 -1
  92. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  93. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +11 -3
  94. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  95. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +2 -0
  96. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  97. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +3 -0
  98. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  99. package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.d.ts +40 -0
  100. package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.d.ts.map +1 -0
  101. package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.js +94 -0
  102. package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.js.map +1 -0
  103. package/lib/models/protocols/pure/v1/engine/{V1_ExecutionHelper.d.ts → execution/V1_ExecutionHelper.d.ts} +2 -2
  104. package/lib/models/protocols/pure/v1/engine/execution/V1_ExecutionHelper.d.ts.map +1 -0
  105. package/lib/models/protocols/pure/v1/engine/{V1_ExecutionHelper.js → execution/V1_ExecutionHelper.js} +2 -2
  106. package/lib/models/protocols/pure/v1/engine/execution/V1_ExecutionHelper.js.map +1 -0
  107. package/lib/models/protocols/pure/v1/model/data/V1_EmbeddedData.d.ts +2 -2
  108. package/lib/models/protocols/pure/v1/model/data/V1_EmbeddedData.d.ts.map +1 -1
  109. package/lib/models/protocols/pure/v1/model/data/{V1_RelationalData.d.ts → V1_RelationalCSVData.d.ts} +6 -15
  110. package/lib/models/protocols/pure/v1/model/data/V1_RelationalCSVData.d.ts.map +1 -0
  111. package/lib/models/protocols/pure/v1/model/data/{V1_RelationalData.js → V1_RelationalCSVData.js} +9 -29
  112. package/lib/models/protocols/pure/v1/model/data/V1_RelationalCSVData.js.map +1 -0
  113. package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.d.ts +1 -0
  114. package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.d.ts.map +1 -1
  115. package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.js +2 -0
  116. package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.js.map +1 -1
  117. package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.d.ts +2 -8
  118. package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.d.ts.map +1 -1
  119. package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.js +0 -11
  120. package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.js.map +1 -1
  121. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.d.ts.map +1 -1
  122. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js +12 -21
  123. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js.map +1 -1
  124. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.d.ts.map +1 -1
  125. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js +1 -0
  126. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js.map +1 -1
  127. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.d.ts.map +1 -1
  128. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.js +2 -4
  129. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.js.map +1 -1
  130. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.d.ts.map +1 -1
  131. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.js +5 -1
  132. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.js.map +1 -1
  133. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts +2 -2
  134. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts.map +1 -1
  135. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js +6 -15
  136. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js.map +1 -1
  137. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts +1 -0
  138. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
  139. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +2 -1
  140. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
  141. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts +5 -5
  142. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts.map +1 -1
  143. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +11 -9
  144. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
  145. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.d.ts +2 -3
  146. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.d.ts.map +1 -1
  147. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js +10 -15
  148. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js.map +1 -1
  149. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts +1 -4
  150. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts.map +1 -1
  151. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js +7 -14
  152. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js.map +1 -1
  153. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts.map +1 -1
  154. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js +2 -1
  155. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js.map +1 -1
  156. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.d.ts.map +1 -1
  157. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js +3 -7
  158. package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js.map +1 -1
  159. package/lib/package.json +6 -2
  160. package/package.json +9 -5
  161. package/src/DSLData_Exports.ts +3 -0
  162. package/src/DSLMapping_Exports.ts +4 -0
  163. package/src/DSLService_Exports.ts +10 -0
  164. package/src/MetaModelConst.ts +8 -4
  165. package/src/graph/PureGraphPlugin.ts +1 -1
  166. package/src/graphManager/AbstractPureGraphManager.ts +48 -20
  167. package/src/graphManager/PureGraphManagerPlugin.ts +18 -8
  168. package/src/graphManager/action/analytics/MappingAnalytics.ts +71 -0
  169. package/src/graphManager/action/changeDetection/DSLData_ObserverHelper.ts +12 -33
  170. package/src/graphManager/action/changeDetection/DSLService_ObserverHelper.ts +2 -1
  171. package/src/graphManager/action/changeDetection/Testable_ObserverHelper.ts +3 -23
  172. package/src/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.ts +21 -0
  173. package/src/graphManager/action/validation/DSLService_ValidationHelper.ts +4 -7
  174. package/src/helpers/Testable_Helper.ts +4 -0
  175. package/src/helpers/ValueSpecificationHelper.ts +106 -10
  176. package/src/index.ts +13 -1
  177. package/src/models/metamodels/pure/data/EmbeddedData.ts +2 -2
  178. package/src/models/metamodels/pure/data/{RelationalData.ts → RelationalCSVData.ts} +10 -33
  179. package/src/models/metamodels/pure/packageableElements/service/ServiceTest.ts +2 -0
  180. package/src/models/metamodels/pure/test/Test.ts +3 -1
  181. package/src/models/metamodels/pure/test/assertion/EqualToTDS.ts +4 -19
  182. package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +15 -2
  183. package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +17 -3
  184. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +305 -292
  185. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +24 -3
  186. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +18 -0
  187. package/src/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.ts +168 -0
  188. package/src/models/protocols/pure/v1/engine/{V1_ExecutionHelper.ts → execution/V1_ExecutionHelper.ts} +2 -2
  189. package/src/models/protocols/pure/v1/model/data/V1_EmbeddedData.ts +2 -2
  190. package/src/models/protocols/pure/v1/model/data/{V1_RelationalData.ts → V1_RelationalCSVData.ts} +9 -33
  191. package/src/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.ts +2 -0
  192. package/src/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.ts +3 -19
  193. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.ts +20 -31
  194. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.ts +1 -0
  195. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.ts +2 -7
  196. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.ts +7 -1
  197. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.ts +10 -22
  198. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +7 -4
  199. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +27 -24
  200. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.ts +16 -26
  201. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.ts +10 -27
  202. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.ts +2 -0
  203. package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.ts +3 -15
  204. package/tsconfig.json +6 -3
  205. package/lib/models/metamodels/pure/data/RelationalData.d.ts.map +0 -1
  206. package/lib/models/metamodels/pure/data/RelationalData.js.map +0 -1
  207. package/lib/models/protocols/pure/v1/engine/V1_ExecutionHelper.d.ts.map +0 -1
  208. package/lib/models/protocols/pure/v1/engine/V1_ExecutionHelper.js.map +0 -1
  209. package/lib/models/protocols/pure/v1/model/data/V1_RelationalData.d.ts.map +0 -1
  210. package/lib/models/protocols/pure/v1/model/data/V1_RelationalData.js.map +0 -1
@@ -83,7 +83,7 @@ import { V1_ServiceStorage } from './service/V1_ServiceStorage.js';
83
83
  import { V1_ServiceRegistrationResult } from './service/V1_ServiceRegistrationResult.js';
84
84
  import type { V1_PureModelContext } from '../model/context/V1_PureModelContext.js';
85
85
  import { ServiceExecutionMode } from '../../../../../graphManager/action/service/ServiceExecutionMode.js';
86
- import { serialize } from 'serializr';
86
+ import { deserialize, serialize } from 'serializr';
87
87
  import { V1_ExecutionError } from './execution/V1_ExecutionError.js';
88
88
  import { V1_PureModelContextText } from '../model/context/V1_PureModelContextText.js';
89
89
  import { V1_QuerySearchSpecification } from './query/V1_QuerySearchSpecification.js';
@@ -95,6 +95,10 @@ import { GRAPH_MANAGER_EVENT } from '../../../../../graphManager/GraphManagerEve
95
95
  import { V1_RunTestsInput } from './test/V1_RunTestsInput.js';
96
96
  import { V1_RunTestsResult } from './test/V1_RunTestsResult.js';
97
97
  import { V1_RenderStyle } from './grammar/V1_RenderStyle.js';
98
+ import {
99
+ V1_MappingModelCoverageAnalysisInput,
100
+ V1_MappingModelCoverageAnalysisResult,
101
+ } from './analytics/V1_MappingAnalytics.js';
98
102
 
99
103
  class V1_EngineConfig extends TEMPORARY__AbstractEngineConfig {
100
104
  private engine: V1_Engine;
@@ -176,6 +180,10 @@ export class V1_Engine {
176
180
  return this.engineServerClient;
177
181
  }
178
182
 
183
+ getCurrentUserId(): string | undefined {
184
+ return this.engineServerClient.currentUserId;
185
+ }
186
+
179
187
  async setup(config: V1_EngineSetupConfig): Promise<void> {
180
188
  this.config.setEnv(config.env);
181
189
  this.config.setTabSize(config.tabSize);
@@ -267,7 +275,7 @@ export class V1_Engine {
267
275
  pretty: boolean,
268
276
  plugins: PureProtocolProcessorPlugin[],
269
277
  ): Promise<string> {
270
- return await this.engineServerClient.JSONToGrammar_lambda(
278
+ return this.engineServerClient.JSONToGrammar_lambda(
271
279
  V1_serializeRawValueSpecification(
272
280
  V1_transformRawLambda(
273
281
  lambda,
@@ -497,7 +505,7 @@ export class V1_Engine {
497
505
  );
498
506
  }
499
507
 
500
- generateMappingTestData(
508
+ generateExecuteTestData(
501
509
  input: V1_TestDataGenerationExecutionInput,
502
510
  ): Promise<string> {
503
511
  return this.engineServerClient.generateTestDataWithDefaultSeed(
@@ -719,6 +727,19 @@ export class V1_Engine {
719
727
  await this.engineServerClient.deleteQuery(queryId);
720
728
  }
721
729
 
730
+ // ------------------------------------------ Analysis ------------------------------------------
731
+
732
+ async analyzeMappingModelCoverage(
733
+ input: V1_MappingModelCoverageAnalysisInput,
734
+ ): Promise<V1_MappingModelCoverageAnalysisResult> {
735
+ return deserialize(
736
+ V1_MappingModelCoverageAnalysisResult,
737
+ await this.engineServerClient.analyzeMappingModelCoverage(
738
+ V1_MappingModelCoverageAnalysisInput.serialization.toJson(input),
739
+ ),
740
+ );
741
+ }
742
+
722
743
  // --------------------------------------------- Utilities ---------------------------------------------
723
744
 
724
745
  async buildDatabase(
@@ -51,6 +51,7 @@ import type { V1_TestResult } from '../model/test/result/V1_TestResult.js';
51
51
  import type { V1_RawRelationalOperationElement } from '../model/packageableElements/store/relational/model/V1_RawRelationalOperationElement.js';
52
52
  import type { V1_RenderStyle } from './grammar/V1_RenderStyle.js';
53
53
  import type { V1_ParserError } from './grammar/V1_ParserError.js';
54
+ import type { V1_MappingModelCoverageAnalysisResult } from './analytics/V1_MappingAnalytics.js';
54
55
 
55
56
  enum CORE_ENGINE_TRACER_SPAN {
56
57
  GRAMMAR_TO_JSON = 'transform Pure code to protocol',
@@ -77,6 +78,8 @@ enum CORE_ENGINE_TRACER_SPAN {
77
78
  CREATE_QUERY = 'create query',
78
79
  UPDATE_QUERY = 'update query',
79
80
  DELETE_QUERY = 'delete query',
81
+
82
+ MODEL_ANALYTICS = 'model analytics',
80
83
  }
81
84
 
82
85
  type GrammarParserBatchInputEntry = {
@@ -501,6 +504,21 @@ export class V1_EngineServerClient extends AbstractServerClient {
501
504
  { enableCompression: true },
502
505
  );
503
506
 
507
+ // --------------------------------------- Analysis ---------------------------------------
508
+
509
+ analyzeMappingModelCoverage = (
510
+ input: PlainObject<V1_MappingModelCoverageAnalysisResult>,
511
+ ): Promise<PlainObject<V1_MappingModelCoverageAnalysisResult>> =>
512
+ this.postWithTracing(
513
+ this.getTraceData(CORE_ENGINE_TRACER_SPAN.MODEL_ANALYTICS),
514
+ `${this._pure()}/analytics/mapping/modelCoverage`,
515
+ input,
516
+ {},
517
+ undefined,
518
+ undefined,
519
+ { enableCompression: true },
520
+ );
521
+
504
522
  // ------------------------------------------- Utilities -------------------------------------------
505
523
 
506
524
  _utilities = (): string => `${this._pure()}/utilities`;
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import {
18
+ type PlainObject,
19
+ SerializationFactory,
20
+ usingModelSchema,
21
+ } from '@finos/legend-shared';
22
+ import {
23
+ createModelSchema,
24
+ custom,
25
+ deserialize,
26
+ list,
27
+ object,
28
+ optional,
29
+ primitive,
30
+ serialize,
31
+ } from 'serializr';
32
+ import {
33
+ EntityMappedProperty,
34
+ EnumMappedProperty,
35
+ MappedEntity,
36
+ MappedProperty,
37
+ MappingModelCoverageAnalysisResult,
38
+ } from '../../../../../../graphManager/action/analytics/MappingAnalytics.js';
39
+ import { V1_PureModelContextData } from '../../model/context/V1_PureModelContextData.js';
40
+
41
+ enum V1_MappedPropertyType {
42
+ ENUM = 'enum',
43
+ ENTITY = 'entity',
44
+ }
45
+
46
+ class V1_MappedProperty {
47
+ name!: string;
48
+
49
+ static readonly serialization = new SerializationFactory(
50
+ createModelSchema(V1_MappedProperty, {
51
+ name: primitive(),
52
+ }),
53
+ );
54
+ }
55
+
56
+ class V1_EntityMappedProperty extends V1_MappedProperty {
57
+ entityPath!: string;
58
+ subType: string | undefined;
59
+
60
+ static override readonly serialization = new SerializationFactory(
61
+ createModelSchema(V1_EntityMappedProperty, {
62
+ name: primitive(),
63
+ entityPath: primitive(),
64
+ subType: optional(primitive()),
65
+ }),
66
+ );
67
+ }
68
+
69
+ class V1_EnumMappedProperty extends V1_MappedProperty {
70
+ enumPath!: string;
71
+
72
+ static override readonly serialization = new SerializationFactory(
73
+ createModelSchema(V1_EnumMappedProperty, {
74
+ name: primitive(),
75
+ enumPath: primitive(),
76
+ }),
77
+ );
78
+ }
79
+
80
+ const V1_serializeMappedProperty = (
81
+ prop: V1_MappedProperty,
82
+ ): V1_MappedProperty =>
83
+ V1_MappedProperty instanceof V1_EnumMappedProperty
84
+ ? serialize(V1_EnumMappedProperty.serialization.schema, prop)
85
+ : V1_MappedProperty instanceof V1_EntityMappedProperty
86
+ ? serialize(V1_EntityMappedProperty.serialization.schema, prop)
87
+ : serialize(V1_MappedProperty.serialization.schema, prop);
88
+
89
+ const V1_deserializeMappedProperty = (
90
+ json: PlainObject<V1_MappedProperty>,
91
+ ): V1_MappedProperty => {
92
+ switch (json._type) {
93
+ case V1_MappedPropertyType.ENTITY:
94
+ return deserialize(V1_EntityMappedProperty.serialization.schema, json);
95
+ case V1_MappedPropertyType.ENUM:
96
+ return deserialize(V1_EnumMappedProperty.serialization.schema, json);
97
+ default: {
98
+ return deserialize(V1_MappedProperty.serialization.schema, json);
99
+ }
100
+ }
101
+ };
102
+
103
+ class V1_MappedEntity {
104
+ path!: string;
105
+ properties: V1_MappedProperty[] = [];
106
+
107
+ static readonly serialization = new SerializationFactory(
108
+ createModelSchema(V1_MappedEntity, {
109
+ path: primitive(),
110
+ properties: list(
111
+ custom(
112
+ (prop) => V1_serializeMappedProperty(prop),
113
+ (prop) => V1_deserializeMappedProperty(prop),
114
+ ),
115
+ ),
116
+ }),
117
+ );
118
+ }
119
+
120
+ export class V1_MappingModelCoverageAnalysisInput {
121
+ clientVersion!: string;
122
+ mapping!: string;
123
+ model!: V1_PureModelContextData;
124
+
125
+ static readonly serialization = new SerializationFactory(
126
+ createModelSchema(V1_MappingModelCoverageAnalysisInput, {
127
+ clientVersion: primitive(),
128
+ mapping: primitive(),
129
+ model: object(V1_PureModelContextData),
130
+ }),
131
+ );
132
+ }
133
+
134
+ export class V1_MappingModelCoverageAnalysisResult {
135
+ mappedEntities: V1_MappedEntity[] = [];
136
+
137
+ static readonly serialization = new SerializationFactory(
138
+ createModelSchema(V1_MappingModelCoverageAnalysisResult, {
139
+ mappedEntities: list(
140
+ usingModelSchema(V1_MappedEntity.serialization.schema),
141
+ ),
142
+ }),
143
+ );
144
+ }
145
+
146
+ const buildMappedProperty = (protocol: V1_MappedProperty): MappedProperty =>
147
+ protocol instanceof V1_EntityMappedProperty
148
+ ? new EntityMappedProperty(
149
+ protocol.name,
150
+ protocol.entityPath,
151
+ protocol.subType,
152
+ )
153
+ : protocol instanceof V1_EnumMappedProperty
154
+ ? new EnumMappedProperty(protocol.name, protocol.enumPath)
155
+ : new MappedProperty(protocol.name);
156
+
157
+ const buildMappedEntity = (protocol: V1_MappedEntity): MappedEntity =>
158
+ new MappedEntity(
159
+ protocol.path,
160
+ protocol.properties.map((p) => buildMappedProperty(p)),
161
+ );
162
+
163
+ export const V1_buildModelCoverageAnalysisResult = (
164
+ protocol: V1_MappingModelCoverageAnalysisResult,
165
+ ): MappingModelCoverageAnalysisResult =>
166
+ new MappingModelCoverageAnalysisResult(
167
+ protocol.mappedEntities.map((p) => buildMappedEntity(p)),
168
+ );
@@ -28,7 +28,7 @@ import {
28
28
  TdsBuilder,
29
29
  TDSColumn,
30
30
  RawExecutionResult,
31
- } from '../../../../../graphManager/action/execution/ExecutionResult.js';
31
+ } from '../../../../../../graphManager/action/execution/ExecutionResult.js';
32
32
  import {
33
33
  type V1_ExecutionResult,
34
34
  type V1_TdsBuilder,
@@ -37,7 +37,7 @@ import {
37
37
  V1_INTERNAL__UnknownExecutionResult,
38
38
  V1_TdsExecutionResult,
39
39
  V1_RawExecutionResult,
40
- } from './execution/V1_ExecutionResult.js';
40
+ } from './V1_ExecutionResult.js';
41
41
 
42
42
  const buildJSONExecutionResult = (
43
43
  protocol: V1_JsonExecutionResult,
@@ -17,14 +17,14 @@
17
17
  import { type Hashable, hashArray } from '@finos/legend-shared';
18
18
  import { CORE_HASH_STRUCTURE } from '../../../../../../MetaModelConst.js';
19
19
  import { hashObjectWithoutSourceInformation } from '../../../../../../MetaModelUtils.js';
20
- import type { V1_RelationalData } from './V1_RelationalData.js';
20
+ import type { V1_RelationalCSVData } from './V1_RelationalCSVData.js';
21
21
 
22
22
  export interface V1_EmbeddedDataVisitor<T> {
23
23
  visit_EmbeddedData(embeddedData: V1_EmbeddedData): T;
24
24
  visit_ExternalFormatData(externalFormatData: V1_ExternalFormatData): T;
25
25
  visit_ModelStoreData(modelStoreData: V1_ModelStoreData): T;
26
26
  visit_DataElementReference(dataElementReference: V1_DataElementReference): T;
27
- visit_RelationalData(relationalData: V1_RelationalData): T;
27
+ visit_RelationalData(relationalData: V1_RelationalCSVData): T;
28
28
  }
29
29
 
30
30
  export abstract class V1_EmbeddedData implements Hashable {
@@ -21,47 +21,23 @@ import {
21
21
  type V1_EmbeddedDataVisitor,
22
22
  } from './V1_EmbeddedData.js';
23
23
 
24
- export class V1_RelationalDataTableColumn implements Hashable {
25
- value!: string;
26
-
27
- get hashCode(): string {
28
- return hashArray([
29
- CORE_HASH_STRUCTURE.RELATIONAL_DATA_TABLE_COLUMN,
30
- this.value,
31
- ]);
32
- }
33
- }
34
-
35
- export class V1_RelationalDataTableRow implements Hashable {
24
+ export class V1_RelationalCSVDataTable implements Hashable {
25
+ schema!: string;
26
+ table!: string;
36
27
  values!: string;
37
28
 
38
29
  get hashCode(): string {
39
30
  return hashArray([
40
- CORE_HASH_STRUCTURE.RELATIONAL_DATA_TABLE_ROW,
31
+ CORE_HASH_STRUCTURE.RELATIONAL_CSV_DATA_TABLE,
32
+ this.schema,
33
+ this.table,
41
34
  this.values,
42
35
  ]);
43
36
  }
44
37
  }
45
38
 
46
- export class V1_RelationalDataTable implements Hashable {
47
- schemaName: string | undefined;
48
- tableName!: string;
49
- columns: V1_RelationalDataTableColumn[] = [];
50
- rows: V1_RelationalDataTableRow[] = [];
51
-
52
- get hashCode(): string {
53
- return hashArray([
54
- CORE_HASH_STRUCTURE.RELATIONAL_DATA_TABLE,
55
- this.schemaName ?? '',
56
- this.tableName,
57
- hashArray(this.columns),
58
- hashArray(this.rows),
59
- ]);
60
- }
61
- }
62
-
63
- export class V1_RelationalData extends V1_EmbeddedData implements Hashable {
64
- tables: V1_RelationalDataTable[] = [];
39
+ export class V1_RelationalCSVData extends V1_EmbeddedData implements Hashable {
40
+ tables: V1_RelationalCSVDataTable[] = [];
65
41
 
66
42
  accept_EmbeddedDataVisitor<T>(visitor: V1_EmbeddedDataVisitor<T>): T {
67
43
  return visitor.visit_RelationalData(this);
@@ -69,7 +45,7 @@ export class V1_RelationalData extends V1_EmbeddedData implements Hashable {
69
45
 
70
46
  get hashCode(): string {
71
47
  return hashArray([
72
- CORE_HASH_STRUCTURE.RELATIONAL_DATA_TABLE,
48
+ CORE_HASH_STRUCTURE.RELATIONAL_CSV_DATA_TABLE,
73
49
  hashArray(this.tables),
74
50
  ]);
75
51
  }
@@ -20,6 +20,7 @@ import { V1_AtomicTest } from '../../test/V1_AtomicTest.js';
20
20
  import type { V1_ParameterValue } from './V1_ParameterValue.js';
21
21
 
22
22
  export class V1_ServiceTest extends V1_AtomicTest implements Hashable {
23
+ serializationFormat: string | undefined;
23
24
  parameters: V1_ParameterValue[] = [];
24
25
 
25
26
  get hashCode(): string {
@@ -28,6 +29,7 @@ export class V1_ServiceTest extends V1_AtomicTest implements Hashable {
28
29
  this.id,
29
30
  hashArray(this.assertions),
30
31
  hashArray(this.parameters),
32
+ this.serializationFormat ?? '',
31
33
  ]);
32
34
  }
33
35
  }
@@ -14,32 +14,16 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { hashArray, type Hashable } from '@finos/legend-shared';
17
+ import { hashArray } from '@finos/legend-shared';
18
18
  import { CORE_HASH_STRUCTURE } from '../../../../../../../MetaModelConst.js';
19
- import type {
20
- V1_RelationalDataTableColumn,
21
- V1_RelationalDataTableRow,
22
- } from '../../data/V1_RelationalData.js';
19
+ import type { V1_ExternalFormatData } from '../../data/V1_EmbeddedData.js';
23
20
  import {
24
21
  type V1_TestAssertionVisitor,
25
22
  V1_TestAssertion,
26
23
  } from './V1_TestAssertion.js';
27
24
 
28
- export class V1_RelationalTDS implements Hashable {
29
- columns: V1_RelationalDataTableColumn[] = [];
30
- rows: V1_RelationalDataTableRow[] = [];
31
-
32
- get hashCode(): string {
33
- return hashArray([
34
- CORE_HASH_STRUCTURE.RELATIONAL_TDS,
35
- hashArray(this.columns),
36
- hashArray(this.rows),
37
- ]);
38
- }
39
- }
40
-
41
25
  export class V1_EqualToTDS extends V1_TestAssertion {
42
- expected!: V1_RelationalTDS;
26
+ expected!: V1_ExternalFormatData;
43
27
 
44
28
  get hashCode(): string {
45
29
  return hashArray([
@@ -22,9 +22,9 @@ import {
22
22
  ModelStoreData,
23
23
  } from '../../../../../../metamodels/pure/data/EmbeddedData.js';
24
24
  import {
25
- type RelationalDataTable,
26
- RelationalData,
27
- } from '../../../../../../metamodels/pure/data/RelationalData.js';
25
+ type RelationalCSVDataTable,
26
+ RelationalCSVData,
27
+ } from '../../../../../../metamodels/pure/data/RelationalCSVData.js';
28
28
  import type { DataElement } from '../../../../../../metamodels/pure/packageableElements/data/DataElement.js';
29
29
  import type { DSLData_PureProtocolProcessorPlugin_Extension } from '../../../../DSLData_PureProtocolProcessorPlugin_Extension.js';
30
30
  import {
@@ -34,11 +34,9 @@ import {
34
34
  V1_ModelStoreData,
35
35
  } from '../../../model/data/V1_EmbeddedData.js';
36
36
  import {
37
- V1_RelationalData,
38
- V1_RelationalDataTable,
39
- V1_RelationalDataTableColumn,
40
- V1_RelationalDataTableRow,
41
- } from '../../../model/data/V1_RelationalData.js';
37
+ V1_RelationalCSVData,
38
+ V1_RelationalCSVDataTable,
39
+ } from '../../../model/data/V1_RelationalCSVData.js';
42
40
  import { V1_DataElement } from '../../../model/packageableElements/data/V1_DataElement.js';
43
41
  import { V1_initPackageableElement } from './V1_CoreTransformerHelper.js';
44
42
  import {
@@ -79,30 +77,21 @@ const V1_transformDataElementReference = (
79
77
  return dataElementReference;
80
78
  };
81
79
 
82
- const V1_transformRelationalDataTable = (
83
- element: RelationalDataTable,
84
- ): V1_RelationalDataTable => {
85
- const table = new V1_RelationalDataTable();
86
- table.tableName = element.tableName;
87
- table.schemaName = element.schemaName;
88
- table.rows = element.rows.map((e) => {
89
- const row = new V1_RelationalDataTableRow();
90
- row.values = e.values;
91
- return row;
92
- });
93
- table.columns = element.columns.map((e) => {
94
- const col = new V1_RelationalDataTableColumn();
95
- col.value = e.value;
96
- return col;
97
- });
80
+ const V1_transformRelationalCSVDataTable = (
81
+ element: RelationalCSVDataTable,
82
+ ): V1_RelationalCSVDataTable => {
83
+ const table = new V1_RelationalCSVDataTable();
84
+ table.table = element.table;
85
+ table.schema = element.schema;
86
+ table.values = element.values;
98
87
  return table;
99
88
  };
100
89
 
101
- const V1_transformRelationalData = (
102
- element: RelationalData,
103
- ): V1_RelationalData => {
104
- const data = new V1_RelationalData();
105
- data.tables = element.tables.map(V1_transformRelationalDataTable);
90
+ const V1_transformRelationalCSVData = (
91
+ element: RelationalCSVData,
92
+ ): V1_RelationalCSVData => {
93
+ const data = new V1_RelationalCSVData();
94
+ data.tables = element.tables.map(V1_transformRelationalCSVDataTable);
106
95
  return data;
107
96
  };
108
97
 
@@ -116,8 +105,8 @@ export const V1_transformEmbeddedData = (
116
105
  return V1_transformExternalFormatData(metamodel);
117
106
  } else if (metamodel instanceof DataElementReference) {
118
107
  return V1_transformDataElementReference(metamodel);
119
- } else if (metamodel instanceof RelationalData) {
120
- return V1_transformRelationalData(metamodel);
108
+ } else if (metamodel instanceof RelationalCSVData) {
109
+ return V1_transformRelationalCSVData(metamodel);
121
110
  }
122
111
  const extraEmbeddedDataTransformers = context.plugins.flatMap(
123
112
  (plugin) =>
@@ -105,6 +105,7 @@ export const V1_transformServiceTest = (
105
105
  ): V1_ServiceTest => {
106
106
  const serviceTest = new V1_ServiceTest();
107
107
  serviceTest.id = element.id;
108
+ serviceTest.serializationFormat = element.serializationFormat;
108
109
  serviceTest.parameters = element.parameters.map((parameter) =>
109
110
  transformParameterValue(parameter),
110
111
  );
@@ -36,10 +36,7 @@ import type {
36
36
  TestSuite,
37
37
  } from '../../../../../../metamodels/pure/test/Test.js';
38
38
  import { EqualToTDS } from '../../../../../../metamodels/pure/test/assertion/EqualToTDS.js';
39
- import {
40
- V1_EqualToTDS,
41
- V1_RelationalTDS,
42
- } from '../../../model/test/assertion/V1_EqualToTDS.js';
39
+ import { V1_EqualToTDS } from '../../../model/test/assertion/V1_EqualToTDS.js';
43
40
 
44
41
  const transformEqualTo = (element: EqualTo): V1_EqualTo => {
45
42
  const equalTo = new V1_EqualTo();
@@ -58,9 +55,7 @@ const transformEqualToJson = (element: EqualToJson): V1_EqualToJson => {
58
55
  const transformEqualToTDS = (element: EqualToTDS): V1_EqualToTDS => {
59
56
  const equalToTDS = new V1_EqualToTDS();
60
57
  equalToTDS.id = element.id;
61
- equalToTDS.expected = new V1_RelationalTDS();
62
- equalToTDS.expected.columns = element.expected.columns;
63
- equalToTDS.expected.rows = element.expected.rows;
58
+ equalToTDS.expected = V1_transformExternalFormatData(element.expected);
64
59
  return equalToTDS;
65
60
  };
66
61
 
@@ -82,6 +82,7 @@ import { V1_ProtocolToMetaModelEmbeddedDataBuilder } from './helpers/V1_DataElem
82
82
  import { V1_buildTestSuite } from './helpers/V1_TestBuilderHelper.js';
83
83
  import { ServiceTestSuite } from '../../../../../../metamodels/pure/packageableElements/service/ServiceTestSuite.js';
84
84
  import { V1_getIncludedMappingPath } from '../../../helper/V1_DSLMapping_Helper.js';
85
+ import { V1_DataElementReference } from '../../../model/data/V1_EmbeddedData.js';
85
86
 
86
87
  export class V1_ProtocolToMetaModelGraphSecondPassBuilder
87
88
  implements V1_PackageableElementVisitor<void>
@@ -329,7 +330,7 @@ export class V1_ProtocolToMetaModelGraphSecondPassBuilder
329
330
  );
330
331
  }
331
332
  service.tests = element.testSuites
332
- .map((testSuite) => V1_buildTestSuite(testSuite, this.context))
333
+ .map((testSuite) => V1_buildTestSuite(service, testSuite, this.context))
333
334
  .map((e) => guaranteeType(e, ServiceTestSuite));
334
335
  }
335
336
 
@@ -407,6 +408,11 @@ export class V1_ProtocolToMetaModelGraphSecondPassBuilder
407
408
  dataElement.taggedValues = element.taggedValues
408
409
  .map((taggedValue) => V1_buildTaggedValue(taggedValue, this.context))
409
410
  .filter(isNonNullable);
411
+ if (element.data instanceof V1_DataElementReference) {
412
+ throw new IllegalStateError(
413
+ 'Cannot use Data element reference in a Data element',
414
+ );
415
+ }
410
416
  dataElement.data = element.data.accept_EmbeddedDataVisitor(
411
417
  new V1_ProtocolToMetaModelEmbeddedDataBuilder(this.context),
412
418
  );
@@ -22,11 +22,9 @@ import {
22
22
  ModelStoreData,
23
23
  } from '../../../../../../../metamodels/pure/data/EmbeddedData.js';
24
24
  import {
25
- RelationalData,
26
- RelationalDataTable,
27
- RelationalDataTableColumn,
28
- RelationalDataTableRow,
29
- } from '../../../../../../../metamodels/pure/data/RelationalData.js';
25
+ RelationalCSVData,
26
+ RelationalCSVDataTable,
27
+ } from '../../../../../../../metamodels/pure/data/RelationalCSVData.js';
30
28
  import type { Class } from '../../../../../../../metamodels/pure/packageableElements/domain/Class.js';
31
29
  import type { DSLData_PureProtocolProcessorPlugin_Extension } from '../../../../../DSLData_PureProtocolProcessorPlugin_Extension.js';
32
30
  import type {
@@ -36,8 +34,7 @@ import type {
36
34
  V1_ExternalFormatData,
37
35
  V1_ModelStoreData,
38
36
  } from '../../../../model/data/V1_EmbeddedData.js';
39
- import type { V1_RelationalData } from '../../../../model/data/V1_RelationalData.js';
40
-
37
+ import type { V1_RelationalCSVData } from '../../../../model/data/V1_RelationalCSVData.js';
41
38
  import type { V1_GraphBuilderContext } from '../V1_GraphBuilderContext.js';
42
39
 
43
40
  export class V1_ProtocolToMetaModelEmbeddedDataBuilder
@@ -98,22 +95,13 @@ export class V1_ProtocolToMetaModelEmbeddedDataBuilder
98
95
  return metamodel;
99
96
  }
100
97
 
101
- visit_RelationalData(relationalData: V1_RelationalData): EmbeddedData {
102
- const metamodel = new RelationalData();
98
+ visit_RelationalData(relationalData: V1_RelationalCSVData): EmbeddedData {
99
+ const metamodel = new RelationalCSVData();
103
100
  metamodel.tables = relationalData.tables.map((t) => {
104
- const table = new RelationalDataTable();
105
- table.schemaName = t.schemaName;
106
- table.columns = t.columns.map((c) => {
107
- const col = new RelationalDataTableColumn();
108
- col.value = c.value;
109
- return col;
110
- });
111
- table.tableName = t.tableName;
112
- table.rows = t.rows.map((r) => {
113
- const row = new RelationalDataTableRow();
114
- row.values = r.values;
115
- return row;
116
- });
101
+ const table = new RelationalCSVDataTable();
102
+ table.schema = t.schema;
103
+ table.table = t.table;
104
+ table.values = t.values;
117
105
  return table;
118
106
  });
119
107
  return metamodel;
@@ -161,6 +161,12 @@ const schemaExists = (database: Database, _schema: string): boolean =>
161
161
  DEFAULT_DATABASE_SCHEMA_NAME === _schema ||
162
162
  _schemaExists(database, _schema, new Set<Database>());
163
163
 
164
+ export const V1_findSchema = (database: Database, _schema: string): void =>
165
+ assertTrue(
166
+ schemaExists(database, _schema),
167
+ `Can't find schema '${_schema}' in database '${database}'`,
168
+ );
169
+
164
170
  export const V1_findRelation = (
165
171
  database: Database,
166
172
  schemaName: string,
@@ -193,10 +199,7 @@ export const V1_getRelation = (
193
199
  schemaName: string,
194
200
  relationName: string,
195
201
  ): Relation => {
196
- assertTrue(
197
- schemaExists(db, schemaName),
198
- `Can't find schema '${schemaName}' in database '${db}'`,
199
- );
202
+ V1_findSchema(db, schemaName);
200
203
  return guaranteeNonNullable(
201
204
  V1_findRelation(db, schemaName, relationName),
202
205
  `Can't find table '${relationName}' in schema '${schemaName}' and database '${db.path}'`,