@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.
- package/lib/DSLData_Exports.d.ts +2 -1
- package/lib/DSLData_Exports.d.ts.map +1 -1
- package/lib/DSLData_Exports.js +2 -1
- package/lib/DSLData_Exports.js.map +1 -1
- package/lib/DSLMapping_Exports.d.ts +4 -0
- package/lib/DSLMapping_Exports.d.ts.map +1 -1
- package/lib/DSLMapping_Exports.js +4 -0
- package/lib/DSLMapping_Exports.js.map +1 -1
- package/lib/DSLService_Exports.d.ts +7 -0
- package/lib/DSLService_Exports.d.ts.map +1 -1
- package/lib/DSLService_Exports.js +7 -0
- package/lib/DSLService_Exports.js.map +1 -1
- package/lib/MetaModelConst.d.ts +5 -4
- package/lib/MetaModelConst.d.ts.map +1 -1
- package/lib/MetaModelConst.js +6 -4
- package/lib/MetaModelConst.js.map +1 -1
- package/lib/graph/PureGraphPlugin.d.ts +1 -1
- package/lib/graph/PureGraphPlugin.js +1 -1
- package/lib/graphManager/AbstractPureGraphManager.d.ts +20 -11
- package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
- package/lib/graphManager/AbstractPureGraphManager.js +13 -0
- package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
- package/lib/graphManager/PureGraphManagerPlugin.d.ts +7 -4
- package/lib/graphManager/PureGraphManagerPlugin.d.ts.map +1 -1
- package/lib/graphManager/PureGraphManagerPlugin.js +1 -1
- package/lib/graphManager/PureGraphManagerPlugin.js.map +1 -1
- package/lib/graphManager/action/analytics/MappingAnalytics.d.ts +41 -0
- package/lib/graphManager/action/analytics/MappingAnalytics.d.ts.map +1 -0
- package/lib/graphManager/action/analytics/MappingAnalytics.js +58 -0
- package/lib/graphManager/action/analytics/MappingAnalytics.js.map +1 -0
- package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.d.ts +2 -3
- package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.js +8 -21
- package/lib/graphManager/action/changeDetection/DSLData_ObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.js +2 -1
- package/lib/graphManager/action/changeDetection/DSLService_ObserverHelper.js.map +1 -1
- package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.d.ts.map +1 -1
- package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.js +3 -13
- package/lib/graphManager/action/changeDetection/Testable_ObserverHelper.js.map +1 -1
- package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.d.ts +18 -0
- package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.d.ts.map +1 -0
- package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.js +17 -0
- package/lib/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.js.map +1 -0
- package/lib/graphManager/action/validation/DSLService_ValidationHelper.d.ts +3 -2
- package/lib/graphManager/action/validation/DSLService_ValidationHelper.d.ts.map +1 -1
- package/lib/graphManager/action/validation/DSLService_ValidationHelper.js +1 -1
- package/lib/graphManager/action/validation/DSLService_ValidationHelper.js.map +1 -1
- package/lib/helpers/Testable_Helper.d.ts +3 -0
- package/lib/helpers/Testable_Helper.d.ts.map +1 -1
- package/lib/helpers/Testable_Helper.js +3 -0
- package/lib/helpers/Testable_Helper.js.map +1 -1
- package/lib/helpers/ValueSpecificationHelper.d.ts +10 -3
- package/lib/helpers/ValueSpecificationHelper.d.ts.map +1 -1
- package/lib/helpers/ValueSpecificationHelper.js +59 -4
- package/lib/helpers/ValueSpecificationHelper.js.map +1 -1
- package/lib/index.d.ts +7 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -1
- package/lib/index.js.map +1 -1
- package/lib/models/metamodels/pure/data/EmbeddedData.d.ts +2 -2
- package/lib/models/metamodels/pure/data/EmbeddedData.d.ts.map +1 -1
- package/lib/models/metamodels/pure/data/{RelationalData.d.ts → RelationalCSVData.d.ts} +6 -15
- package/lib/models/metamodels/pure/data/RelationalCSVData.d.ts.map +1 -0
- package/lib/models/metamodels/pure/data/{RelationalData.js → RelationalCSVData.js} +10 -30
- package/lib/models/metamodels/pure/data/RelationalCSVData.js.map +1 -0
- package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.d.ts +1 -0
- package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.d.ts.map +1 -1
- package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.js +2 -0
- package/lib/models/metamodels/pure/packageableElements/service/ServiceTest.js.map +1 -1
- package/lib/models/metamodels/pure/test/Test.d.ts +3 -1
- package/lib/models/metamodels/pure/test/Test.d.ts.map +1 -1
- package/lib/models/metamodels/pure/test/Test.js +2 -1
- package/lib/models/metamodels/pure/test/Test.js.map +1 -1
- package/lib/models/metamodels/pure/test/assertion/EqualToTDS.d.ts +2 -8
- package/lib/models/metamodels/pure/test/assertion/EqualToTDS.d.ts.map +1 -1
- package/lib/models/metamodels/pure/test/assertion/EqualToTDS.js +0 -11
- package/lib/models/metamodels/pure/test/assertion/EqualToTDS.js.map +1 -1
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts +3 -2
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js +6 -1
- package/lib/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts +12 -3
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js +1 -1
- package/lib/models/protocols/pure/PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +18 -9
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +112 -139
- package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts +4 -1
- package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_Engine.js +11 -3
- package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +2 -0
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +3 -0
- package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.d.ts +40 -0
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.js +94 -0
- package/lib/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.js.map +1 -0
- package/lib/models/protocols/pure/v1/engine/{V1_ExecutionHelper.d.ts → execution/V1_ExecutionHelper.d.ts} +2 -2
- package/lib/models/protocols/pure/v1/engine/execution/V1_ExecutionHelper.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/engine/{V1_ExecutionHelper.js → execution/V1_ExecutionHelper.js} +2 -2
- package/lib/models/protocols/pure/v1/engine/execution/V1_ExecutionHelper.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/data/V1_EmbeddedData.d.ts +2 -2
- package/lib/models/protocols/pure/v1/model/data/V1_EmbeddedData.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/data/{V1_RelationalData.d.ts → V1_RelationalCSVData.d.ts} +6 -15
- package/lib/models/protocols/pure/v1/model/data/V1_RelationalCSVData.d.ts.map +1 -0
- package/lib/models/protocols/pure/v1/model/data/{V1_RelationalData.js → V1_RelationalCSVData.js} +9 -29
- package/lib/models/protocols/pure/v1/model/data/V1_RelationalCSVData.js.map +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.d.ts +1 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.js +2 -0
- package/lib/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.js.map +1 -1
- package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.d.ts +2 -8
- package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.js +0 -11
- package/lib/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js +12 -21
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.js +2 -4
- package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.js +5 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts +2 -2
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js +6 -15
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts +1 -0
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js +2 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts +5 -5
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +11 -9
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.d.ts +2 -3
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js +10 -15
- package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts +1 -4
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js +7 -14
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js +2 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.js.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.d.ts.map +1 -1
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js +3 -7
- package/lib/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.js.map +1 -1
- package/lib/package.json +6 -2
- package/package.json +9 -5
- package/src/DSLData_Exports.ts +3 -0
- package/src/DSLMapping_Exports.ts +4 -0
- package/src/DSLService_Exports.ts +10 -0
- package/src/MetaModelConst.ts +8 -4
- package/src/graph/PureGraphPlugin.ts +1 -1
- package/src/graphManager/AbstractPureGraphManager.ts +48 -20
- package/src/graphManager/PureGraphManagerPlugin.ts +18 -8
- package/src/graphManager/action/analytics/MappingAnalytics.ts +71 -0
- package/src/graphManager/action/changeDetection/DSLData_ObserverHelper.ts +12 -33
- package/src/graphManager/action/changeDetection/DSLService_ObserverHelper.ts +2 -1
- package/src/graphManager/action/changeDetection/Testable_ObserverHelper.ts +3 -23
- package/src/graphManager/action/creation/DSLExternalFormat_ModelCreatorHelper.ts +21 -0
- package/src/graphManager/action/validation/DSLService_ValidationHelper.ts +4 -7
- package/src/helpers/Testable_Helper.ts +4 -0
- package/src/helpers/ValueSpecificationHelper.ts +106 -10
- package/src/index.ts +13 -1
- package/src/models/metamodels/pure/data/EmbeddedData.ts +2 -2
- package/src/models/metamodels/pure/data/{RelationalData.ts → RelationalCSVData.ts} +10 -33
- package/src/models/metamodels/pure/packageableElements/service/ServiceTest.ts +2 -0
- package/src/models/metamodels/pure/test/Test.ts +3 -1
- package/src/models/metamodels/pure/test/assertion/EqualToTDS.ts +4 -19
- package/src/models/protocols/pure/DSLExternalFormat_PureProtocolProcessorPlugin.ts +15 -2
- package/src/models/protocols/pure/PureProtocolProcessorPlugin.ts +17 -3
- package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +305 -292
- package/src/models/protocols/pure/v1/engine/V1_Engine.ts +24 -3
- package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +18 -0
- package/src/models/protocols/pure/v1/engine/analytics/V1_MappingAnalytics.ts +168 -0
- package/src/models/protocols/pure/v1/engine/{V1_ExecutionHelper.ts → execution/V1_ExecutionHelper.ts} +2 -2
- package/src/models/protocols/pure/v1/model/data/V1_EmbeddedData.ts +2 -2
- package/src/models/protocols/pure/v1/model/data/{V1_RelationalData.ts → V1_RelationalCSVData.ts} +9 -33
- package/src/models/protocols/pure/v1/model/packageableElements/service/V1_ServiceTest.ts +2 -0
- package/src/models/protocols/pure/v1/model/test/assertion/V1_EqualToTDS.ts +3 -19
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.ts +20 -31
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_ServiceTransformer.ts +1 -0
- package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_TestTransformer.ts +2 -7
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelGraphSecondPassBuilder.ts +7 -1
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.ts +10 -22
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts +7 -4
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +27 -24
- package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_TestBuilderHelper.ts +16 -26
- package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.ts +10 -27
- package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ServiceSerializationHelper.ts +2 -0
- package/src/models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_TestSerializationHelper.ts +3 -15
- package/tsconfig.json +6 -3
- package/lib/models/metamodels/pure/data/RelationalData.d.ts.map +0 -1
- package/lib/models/metamodels/pure/data/RelationalData.js.map +0 -1
- package/lib/models/protocols/pure/v1/engine/V1_ExecutionHelper.d.ts.map +0 -1
- package/lib/models/protocols/pure/v1/engine/V1_ExecutionHelper.js.map +0 -1
- package/lib/models/protocols/pure/v1/model/data/V1_RelationalData.d.ts.map +0 -1
- 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
|
|
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
|
-
|
|
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 '
|
|
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 './
|
|
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 {
|
|
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:
|
|
27
|
+
visit_RelationalData(relationalData: V1_RelationalCSVData): T;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export abstract class V1_EmbeddedData implements Hashable {
|
package/src/models/protocols/pure/v1/model/data/{V1_RelationalData.ts → V1_RelationalCSVData.ts}
RENAMED
|
@@ -21,47 +21,23 @@ import {
|
|
|
21
21
|
type V1_EmbeddedDataVisitor,
|
|
22
22
|
} from './V1_EmbeddedData.js';
|
|
23
23
|
|
|
24
|
-
export class
|
|
25
|
-
|
|
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.
|
|
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
|
|
47
|
-
|
|
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.
|
|
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
|
|
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!:
|
|
26
|
+
expected!: V1_ExternalFormatData;
|
|
43
27
|
|
|
44
28
|
get hashCode(): string {
|
|
45
29
|
return hashArray([
|
package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.ts
CHANGED
|
@@ -22,9 +22,9 @@ import {
|
|
|
22
22
|
ModelStoreData,
|
|
23
23
|
} from '../../../../../../metamodels/pure/data/EmbeddedData.js';
|
|
24
24
|
import {
|
|
25
|
-
type
|
|
26
|
-
|
|
27
|
-
} from '../../../../../../metamodels/pure/data/
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
83
|
-
element:
|
|
84
|
-
):
|
|
85
|
-
const table = new
|
|
86
|
-
table.
|
|
87
|
-
table.
|
|
88
|
-
table.
|
|
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
|
|
102
|
-
element:
|
|
103
|
-
):
|
|
104
|
-
const data = new
|
|
105
|
-
data.tables = element.tables.map(
|
|
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
|
|
120
|
-
return
|
|
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 =
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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 {
|
|
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:
|
|
102
|
-
const metamodel = new
|
|
98
|
+
visit_RelationalData(relationalData: V1_RelationalCSVData): EmbeddedData {
|
|
99
|
+
const metamodel = new RelationalCSVData();
|
|
103
100
|
metamodel.tables = relationalData.tables.map((t) => {
|
|
104
|
-
const table = new
|
|
105
|
-
table.
|
|
106
|
-
table.
|
|
107
|
-
|
|
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;
|
package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_DatabaseBuilderHelper.ts
CHANGED
|
@@ -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
|
-
|
|
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}'`,
|