@finos/legend-graph 30.0.5 → 30.0.7

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 (144) hide show
  1. package/lib/graph/Core_HashUtils.d.ts +3 -0
  2. package/lib/graph/Core_HashUtils.d.ts.map +1 -1
  3. package/lib/graph/Core_HashUtils.js +3 -0
  4. package/lib/graph/Core_HashUtils.js.map +1 -1
  5. package/lib/graph/helpers/DSL_Service_Helper.d.ts +22 -0
  6. package/lib/graph/helpers/DSL_Service_Helper.d.ts.map +1 -0
  7. package/lib/graph/helpers/DSL_Service_Helper.js +49 -0
  8. package/lib/graph/helpers/DSL_Service_Helper.js.map +1 -0
  9. package/lib/graph/helpers/ValueSpecificationHelper.d.ts +19 -0
  10. package/lib/graph/helpers/ValueSpecificationHelper.d.ts.map +1 -0
  11. package/lib/graph/helpers/ValueSpecificationHelper.js +24 -0
  12. package/lib/graph/helpers/ValueSpecificationHelper.js.map +1 -0
  13. package/lib/graph/metamodel/pure/data/EmbeddedData.d.ts +14 -2
  14. package/lib/graph/metamodel/pure/data/EmbeddedData.d.ts.map +1 -1
  15. package/lib/graph/metamodel/pure/data/EmbeddedData.js +25 -3
  16. package/lib/graph/metamodel/pure/data/EmbeddedData.js.map +1 -1
  17. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTest.d.ts +1 -1
  18. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTest.d.ts.map +1 -1
  19. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTest.js +2 -2
  20. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTest.js.map +1 -1
  21. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.d.ts +1 -1
  22. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.d.ts.map +1 -1
  23. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.js +2 -2
  24. package/lib/graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.js.map +1 -1
  25. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts +1 -0
  26. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.d.ts.map +1 -1
  27. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js +2 -0
  28. package/lib/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.js.map +1 -1
  29. package/lib/graph-manager/AbstractPureGraphManager.d.ts +2 -0
  30. package/lib/graph-manager/AbstractPureGraphManager.d.ts.map +1 -1
  31. package/lib/graph-manager/AbstractPureGraphManager.js.map +1 -1
  32. package/lib/graph-manager/action/changeDetection/DSL_Data_ObserverHelper.d.ts +4 -2
  33. package/lib/graph-manager/action/changeDetection/DSL_Data_ObserverHelper.d.ts.map +1 -1
  34. package/lib/graph-manager/action/changeDetection/DSL_Data_ObserverHelper.js +32 -3
  35. package/lib/graph-manager/action/changeDetection/DSL_Data_ObserverHelper.js.map +1 -1
  36. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.js +3 -3
  37. package/lib/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.js.map +1 -1
  38. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.d.ts.map +1 -1
  39. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js +1 -0
  40. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js.map +1 -1
  41. package/lib/graph-manager/action/changeDetection/STO_Relational_ObserverHelper.d.ts.map +1 -1
  42. package/lib/graph-manager/action/changeDetection/STO_Relational_ObserverHelper.js +1 -0
  43. package/lib/graph-manager/action/changeDetection/STO_Relational_ObserverHelper.js.map +1 -1
  44. package/lib/graph-manager/action/generation/ArtifactGenerationExtensionResult.d.ts +31 -0
  45. package/lib/graph-manager/action/generation/ArtifactGenerationExtensionResult.d.ts.map +1 -0
  46. package/lib/graph-manager/action/generation/ArtifactGenerationExtensionResult.js +34 -0
  47. package/lib/graph-manager/action/generation/ArtifactGenerationExtensionResult.js.map +1 -0
  48. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.d.ts +2 -0
  49. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  50. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js +9 -0
  51. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js.map +1 -1
  52. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.d.ts +2 -0
  53. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  54. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.js +5 -0
  55. package/lib/graph-manager/protocol/pure/v1/engine/V1_Engine.js.map +1 -1
  56. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.d.ts +2 -0
  57. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  58. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.js +2 -0
  59. package/lib/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  60. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.d.ts +44 -0
  61. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.d.ts.map +1 -0
  62. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.js +76 -0
  63. package/lib/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.js.map +1 -0
  64. package/lib/graph-manager/protocol/pure/v1/model/data/V1_EmbeddedData.d.ts +19 -1
  65. package/lib/graph-manager/protocol/pure/v1/model/data/V1_EmbeddedData.d.ts.map +1 -1
  66. package/lib/graph-manager/protocol/pure/v1/model/data/V1_EmbeddedData.js +31 -3
  67. package/lib/graph-manager/protocol/pure/v1/model/data/V1_EmbeddedData.js.map +1 -1
  68. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTest.d.ts +1 -1
  69. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTest.d.ts.map +1 -1
  70. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTest.js +2 -2
  71. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTest.js.map +1 -1
  72. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTestSuite.d.ts +1 -1
  73. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTestSuite.d.ts.map +1 -1
  74. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTestSuite.js +2 -2
  75. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTestSuite.js.map +1 -1
  76. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts +1 -0
  77. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.d.ts.map +1 -1
  78. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js +2 -0
  79. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.js.map +1 -1
  80. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.d.ts.map +1 -1
  81. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js +1 -0
  82. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.js.map +1 -1
  83. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.d.ts +1 -1
  84. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.d.ts.map +1 -1
  85. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js +30 -9
  86. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js.map +1 -1
  87. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js +2 -2
  88. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.js.map +1 -1
  89. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts +2 -2
  90. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.d.ts.map +1 -1
  91. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js +22 -5
  92. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.js.map +1 -1
  93. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js +2 -2
  94. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.js.map +1 -1
  95. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.d.ts.map +1 -1
  96. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js +1 -0
  97. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.js.map +1 -1
  98. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.d.ts.map +1 -1
  99. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js +1 -0
  100. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.js.map +1 -1
  101. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts +3 -3
  102. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.d.ts.map +1 -1
  103. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js +45 -11
  104. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.js.map +1 -1
  105. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js +2 -2
  106. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.js.map +1 -1
  107. package/lib/index.d.ts +5 -2
  108. package/lib/index.d.ts.map +1 -1
  109. package/lib/index.js +5 -2
  110. package/lib/index.js.map +1 -1
  111. package/lib/package.json +1 -1
  112. package/package.json +4 -4
  113. package/src/graph/Core_HashUtils.ts +4 -0
  114. package/src/graph/helpers/DSL_Service_Helper.ts +69 -0
  115. package/src/graph/helpers/ValueSpecificationHelper.ts +29 -0
  116. package/src/graph/metamodel/pure/data/EmbeddedData.ts +33 -4
  117. package/src/graph/metamodel/pure/packageableElements/mapping/MappingTest.ts +2 -2
  118. package/src/graph/metamodel/pure/packageableElements/mapping/MappingTestSuite.ts +2 -2
  119. package/src/graph/metamodel/pure/packageableElements/store/relational/connection/DatasourceSpecification.ts +2 -0
  120. package/src/graph-manager/AbstractPureGraphManager.ts +4 -0
  121. package/src/graph-manager/action/changeDetection/DSL_Data_ObserverHelper.ts +48 -3
  122. package/src/graph-manager/action/changeDetection/DSL_Mapping_ObserverHelper.ts +3 -3
  123. package/src/graph-manager/action/changeDetection/DomainObserverHelper.ts +1 -0
  124. package/src/graph-manager/action/changeDetection/STO_Relational_ObserverHelper.ts +1 -0
  125. package/src/graph-manager/action/generation/ArtifactGenerationExtensionResult.ts +40 -0
  126. package/src/graph-manager/protocol/pure/v1/V1_PureGraphManager.ts +18 -0
  127. package/src/graph-manager/protocol/pure/v1/engine/V1_Engine.ts +16 -0
  128. package/src/graph-manager/protocol/pure/v1/engine/V1_EngineServerClient.ts +19 -0
  129. package/src/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.ts +111 -0
  130. package/src/graph-manager/protocol/pure/v1/model/data/V1_EmbeddedData.ts +38 -3
  131. package/src/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTest.ts +2 -2
  132. package/src/graph-manager/protocol/pure/v1/model/packageableElements/mapping/V1_MappingTestSuite.ts +2 -2
  133. package/src/graph-manager/protocol/pure/v1/model/packageableElements/store/relational/connection/V1_DatasourceSpecification.ts +2 -0
  134. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_ConnectionTransformer.ts +1 -0
  135. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.ts +47 -9
  136. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_MappingTransformer.ts +2 -2
  137. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_DataElementBuilderHelper.ts +32 -15
  138. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_MappingBuilderHelper.ts +6 -6
  139. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_RelationalConnectionBuilderHelper.ts +1 -0
  140. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_ConnectionSerializationHelper.ts +1 -0
  141. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DataElementSerializationHelper.ts +73 -18
  142. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_MappingSerializationHelper.ts +2 -2
  143. package/src/index.ts +8 -0
  144. package/tsconfig.json +4 -0
@@ -50,14 +50,14 @@ export class V1_MappingQueryTestSuite
50
50
  *
51
51
  * @discrepancy model
52
52
  */
53
- query!: V1_RawLambda;
53
+ func!: V1_RawLambda;
54
54
 
55
55
  get hashCode(): string {
56
56
  return hashArray([
57
57
  CORE_HASH_STRUCTURE.MAPPING_TEST_QUERY_SUITE,
58
58
  this.id,
59
59
  this.doc ?? '',
60
- this.query,
60
+ this.func,
61
61
  hashArray(this.tests),
62
62
  ]);
63
63
  }
@@ -87,6 +87,7 @@ export class V1_SnowflakeDatasourceSpecification
87
87
  databaseName!: string;
88
88
  cloudType?: string | undefined;
89
89
  quotedIdentifiersIgnoreCase?: boolean | undefined;
90
+ enableQueryTags?: boolean | undefined;
90
91
  proxyHost?: string | undefined;
91
92
  proxyPort?: string | undefined;
92
93
  nonProxyHosts?: string | undefined;
@@ -109,6 +110,7 @@ export class V1_SnowflakeDatasourceSpecification
109
110
  this.accountType ?? '',
110
111
  this.role ?? '',
111
112
  this.quotedIdentifiersIgnoreCase?.toString() ?? '',
113
+ this.enableQueryTags?.toString() ?? '',
112
114
  ]);
113
115
  }
114
116
  }
@@ -141,6 +141,7 @@ const transformSnowflakeDatasourceSpecification = (
141
141
  source.accountName = metamodel.accountName;
142
142
  source.cloudType = metamodel.cloudType;
143
143
  source.quotedIdentifiersIgnoreCase = metamodel.quotedIdentifiersIgnoreCase;
144
+ source.enableQueryTags = metamodel.enableQueryTags;
144
145
  source.proxyHost = metamodel.proxyHost;
145
146
  source.proxyPort = metamodel.proxyPort;
146
147
  source.nonProxyHosts = metamodel.nonProxyHosts;
@@ -17,9 +17,12 @@
17
17
  import { UnsupportedOperationError } from '@finos/legend-shared';
18
18
  import {
19
19
  type EmbeddedData,
20
+ type ModelData,
20
21
  DataElementReference,
21
22
  ExternalFormatData,
22
23
  ModelStoreData,
24
+ ModelEmbeddedData,
25
+ ModelInstanceData,
23
26
  } from '../../../../../../../graph/metamodel/pure/data/EmbeddedData.js';
24
27
  import {
25
28
  type RelationalCSVDataTable,
@@ -29,9 +32,12 @@ import type { DataElement } from '../../../../../../../graph/metamodel/pure/pack
29
32
  import type { DSL_Data_PureProtocolProcessorPlugin_Extension } from '../../../../extensions/DSL_Data_PureProtocolProcessorPlugin_Extension.js';
30
33
  import {
31
34
  type V1_EmbeddedData,
35
+ type V1_ModelData,
32
36
  V1_DataElementReference,
33
37
  V1_ExternalFormatData,
34
38
  V1_ModelStoreData,
39
+ V1_ModelEmbeddedData,
40
+ V1_ModelInstanceData,
35
41
  } from '../../../model/data/V1_EmbeddedData.js';
36
42
  import {
37
43
  V1_RelationalCSVData,
@@ -49,15 +55,47 @@ import { V1_INTERNAL__UnknownEmbeddedData } from '../../../model/data/V1_INTERNA
49
55
 
50
56
  // ----------------------------------------------- DATA ----------------------------------------
51
57
 
58
+ const V1_transformModelInstanceData = (
59
+ element: ModelInstanceData,
60
+ ): V1_ModelInstanceData => {
61
+ const val = new V1_ModelInstanceData();
62
+ val.model = element.model.valueForSerialization ?? '';
63
+ val.instances = element.instances;
64
+ return val;
65
+ };
66
+
67
+ const V1_transformModelEmbeddedData = (
68
+ element: ModelEmbeddedData,
69
+ context: V1_GraphTransformerContext,
70
+ ): V1_ModelEmbeddedData => {
71
+ const val = new V1_ModelEmbeddedData();
72
+ val.data = V1_transformEmbeddedData(element.data, context);
73
+ val.model = element.model.valueForSerialization ?? '';
74
+ return val;
75
+ };
76
+
77
+ const V1_transformModelData = (
78
+ element: ModelData,
79
+ context: V1_GraphTransformerContext,
80
+ ): V1_ModelData => {
81
+ if (element instanceof ModelInstanceData) {
82
+ return V1_transformModelInstanceData(element);
83
+ } else if (element instanceof ModelEmbeddedData) {
84
+ return V1_transformModelEmbeddedData(element, context);
85
+ }
86
+ throw new UnsupportedOperationError('Model Data type not supported');
87
+ };
88
+
52
89
  const V1_transformModelStoreData = (
53
90
  element: ModelStoreData,
91
+ context: V1_GraphTransformerContext,
54
92
  ): V1_ModelStoreData => {
55
93
  const modelStoreDataElement = new V1_ModelStoreData();
56
- const v1Instances = new Map<string, object>();
57
- Array.from(element.instances.entries()).forEach((e) =>
58
- v1Instances.set(e[0].path, e[1]),
59
- );
60
- modelStoreDataElement.instances = v1Instances;
94
+ if (element.modelData?.length) {
95
+ modelStoreDataElement.modelData = element.modelData.map((m) =>
96
+ V1_transformModelData(m, context),
97
+ );
98
+ }
61
99
  return modelStoreDataElement;
62
100
  };
63
101
 
@@ -97,16 +135,16 @@ const V1_transformRelationalCSVData = (
97
135
  return data;
98
136
  };
99
137
 
100
- export const V1_transformEmbeddedData = (
138
+ export function V1_transformEmbeddedData(
101
139
  metamodel: EmbeddedData,
102
140
  context: V1_GraphTransformerContext,
103
- ): V1_EmbeddedData => {
141
+ ): V1_EmbeddedData {
104
142
  if (metamodel instanceof INTERNAL__UnknownEmbeddedData) {
105
143
  const protocol = new V1_INTERNAL__UnknownEmbeddedData();
106
144
  protocol.content = metamodel.content;
107
145
  return protocol;
108
146
  } else if (metamodel instanceof ModelStoreData) {
109
- return V1_transformModelStoreData(metamodel);
147
+ return V1_transformModelStoreData(metamodel, context);
110
148
  } else if (metamodel instanceof ExternalFormatData) {
111
149
  return V1_transformExternalFormatData(metamodel);
112
150
  } else if (metamodel instanceof DataElementReference) {
@@ -131,7 +169,7 @@ export const V1_transformEmbeddedData = (
131
169
  `Can't transform embedded data: no compatible transformer available from plugins`,
132
170
  metamodel,
133
171
  );
134
- };
172
+ }
135
173
 
136
174
  export const V1_transformDataElement = (
137
175
  element: DataElement,
@@ -388,7 +388,7 @@ export const V1_transformMappingQueryTest = (
388
388
  mappingTest.assertions = element.assertions.map((assertion) =>
389
389
  V1_transformTestAssertion(assertion),
390
390
  );
391
- mappingTest.query = element.query.accept_RawValueSpecificationVisitor(
391
+ mappingTest.func = element.func.accept_RawValueSpecificationVisitor(
392
392
  new V1_RawValueSpecificationTransformer(context),
393
393
  ) as V1_RawLambda;
394
394
  return mappingTest;
@@ -445,7 +445,7 @@ export const V1_transformMappingQueryTestSuite = (
445
445
  const mappingTestSuite = new V1_MappingQueryTestSuite();
446
446
  mappingTestSuite.id = element.id;
447
447
  mappingTestSuite.doc = element.doc;
448
- mappingTestSuite.query = element.query.accept_RawValueSpecificationVisitor(
448
+ mappingTestSuite.func = element.func.accept_RawValueSpecificationVisitor(
449
449
  new V1_RawValueSpecificationTransformer(context),
450
450
  ) as V1_RawLambda;
451
451
  mappingTestSuite.tests = element.tests.map((test) =>
@@ -20,19 +20,22 @@ import {
20
20
  DataElementReference,
21
21
  ExternalFormatData,
22
22
  ModelStoreData,
23
+ ModelEmbeddedData,
24
+ ModelInstanceData,
23
25
  } from '../../../../../../../../graph/metamodel/pure/data/EmbeddedData.js';
24
26
  import {
25
27
  RelationalCSVData,
26
28
  RelationalCSVDataTable,
27
29
  } from '../../../../../../../../graph/metamodel/pure/data/RelationalCSVData.js';
28
- import type { Class } from '../../../../../../../../graph/metamodel/pure/packageableElements/domain/Class.js';
29
30
  import type { DSL_Data_PureProtocolProcessorPlugin_Extension } from '../../../../../extensions/DSL_Data_PureProtocolProcessorPlugin_Extension.js';
30
- import type {
31
- V1_DataElementReference,
32
- V1_EmbeddedData,
33
- V1_EmbeddedDataVisitor,
34
- V1_ExternalFormatData,
35
- V1_ModelStoreData,
31
+ import {
32
+ V1_ModelInstanceData,
33
+ type V1_DataElementReference,
34
+ type V1_EmbeddedData,
35
+ type V1_EmbeddedDataVisitor,
36
+ type V1_ExternalFormatData,
37
+ type V1_ModelStoreData,
38
+ V1_ModelEmbeddedData,
36
39
  } from '../../../../model/data/V1_EmbeddedData.js';
37
40
  import type { V1_RelationalCSVData } from '../../../../model/data/V1_RelationalCSVData.js';
38
41
  import type { V1_GraphBuilderContext } from '../V1_GraphBuilderContext.js';
@@ -85,11 +88,22 @@ class V1_EmbeddedDataBuilder implements V1_EmbeddedDataVisitor<EmbeddedData> {
85
88
 
86
89
  visit_ModelStoreData(modelStoreData: V1_ModelStoreData): EmbeddedData {
87
90
  const metamodel = new ModelStoreData();
88
- const instances = new Map<Class, object>();
89
- Array.from(modelStoreData.instances.entries()).forEach((e) =>
90
- instances.set(this.context.graph.getClass(e[0]), e[1]),
91
- );
92
- metamodel.instances = instances;
91
+ if (modelStoreData.modelData?.length) {
92
+ metamodel.modelData = modelStoreData.modelData.map((modelData) => {
93
+ if (modelData instanceof V1_ModelInstanceData) {
94
+ const val = new ModelInstanceData();
95
+ val.model = this.context.resolveClass(modelData.model);
96
+ val.instances = modelData.instances;
97
+ return val;
98
+ } else if (modelData instanceof V1_ModelEmbeddedData) {
99
+ const val = new ModelEmbeddedData();
100
+ val.data = V1_buildEmbeddedData(modelData.data, this.context);
101
+ val.model = this.context.resolveClass(modelData.model);
102
+ return val;
103
+ }
104
+ throw new UnsupportedOperationError('Model Data Type not supported');
105
+ });
106
+ }
93
107
  return metamodel;
94
108
  }
95
109
 
@@ -116,8 +130,11 @@ class V1_EmbeddedDataBuilder implements V1_EmbeddedDataVisitor<EmbeddedData> {
116
130
  }
117
131
  }
118
132
 
119
- export const V1_buildEmbeddedData = (
133
+ export function V1_buildEmbeddedData(
120
134
  protocol: V1_EmbeddedData,
121
135
  context: V1_GraphBuilderContext,
122
- ): EmbeddedData =>
123
- protocol.accept_EmbeddedDataVisitor(new V1_EmbeddedDataBuilder(context));
136
+ ): EmbeddedData {
137
+ return protocol.accept_EmbeddedDataVisitor(
138
+ new V1_EmbeddedDataBuilder(context),
139
+ );
140
+ }
@@ -285,9 +285,9 @@ export const V1_buildMappingQueryTest = (
285
285
  mappingTest.assertions = element.assertions.map((assertion) =>
286
286
  V1_buildTestAssertion(assertion, mappingTest, context),
287
287
  );
288
- mappingTest.query = V1_buildRawLambdaWithResolvedPaths(
289
- element.query.parameters,
290
- element.query.body,
288
+ mappingTest.func = V1_buildRawLambdaWithResolvedPaths(
289
+ element.func.parameters,
290
+ element.func.body,
291
291
  context,
292
292
  );
293
293
  return mappingTest;
@@ -347,9 +347,9 @@ const V1_buildMappingQueryTestSuite = (
347
347
  ): MappingQueryTestSuite => {
348
348
  const mappingTestSuite = new MappingQueryTestSuite();
349
349
  mappingTestSuite.id = element.id;
350
- mappingTestSuite.query = V1_buildRawLambdaWithResolvedPaths(
351
- element.query.parameters,
352
- element.query.body,
350
+ mappingTestSuite.func = V1_buildRawLambdaWithResolvedPaths(
351
+ element.func.parameters,
352
+ element.func.body,
353
353
  context,
354
354
  );
355
355
  mappingTestSuite.tests = element.tests.map((test) =>
@@ -173,6 +173,7 @@ export const V1_buildDatasourceSpecification = (
173
173
  snowflakeSpec.cloudType = protocol.cloudType;
174
174
  snowflakeSpec.quotedIdentifiersIgnoreCase =
175
175
  protocol.quotedIdentifiersIgnoreCase;
176
+ snowflakeSpec.enableQueryTags = protocol.enableQueryTags;
176
177
  snowflakeSpec.proxyHost = protocol.proxyHost;
177
178
  snowflakeSpec.proxyPort = protocol.proxyPort;
178
179
  snowflakeSpec.nonProxyHosts = protocol.nonProxyHosts;
@@ -226,6 +226,7 @@ const snowflakeDatasourceSpecificationModelSchema = createModelSchema(
226
226
  proxyHost: optional(primitive()),
227
227
  proxyPort: optional(primitive()),
228
228
  quotedIdentifiersIgnoreCase: optional(primitive()),
229
+ enableQueryTags: optional(primitive()),
229
230
  region: primitive(),
230
231
  role: optional(primitive()),
231
232
  warehouseName: primitive(),
@@ -18,10 +18,9 @@ import {
18
18
  type PlainObject,
19
19
  UnsupportedOperationError,
20
20
  usingConstantValueSchema,
21
- serializeMap,
22
- deserializeMap,
23
21
  usingModelSchema,
24
22
  customListWithSchema,
23
+ optionalCustomList,
25
24
  } from '@finos/legend-shared';
26
25
  import {
27
26
  createModelSchema,
@@ -32,14 +31,18 @@ import {
32
31
  serialize,
33
32
  optional,
34
33
  list,
34
+ raw,
35
35
  } from 'serializr';
36
36
  import type { DSL_Data_PureProtocolProcessorPlugin_Extension } from '../../../../extensions/DSL_Data_PureProtocolProcessorPlugin_Extension.js';
37
37
  import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
38
38
  import {
39
39
  type V1_EmbeddedData,
40
+ type V1_ModelData,
40
41
  V1_ExternalFormatData,
41
42
  V1_ModelStoreData,
42
43
  V1_DataElementReference,
44
+ V1_ModelEmbeddedData,
45
+ V1_ModelInstanceData,
43
46
  } from '../../../model/data/V1_EmbeddedData.js';
44
47
  import {
45
48
  V1_RelationalCSVData,
@@ -54,6 +57,11 @@ import { V1_INTERNAL__UnknownEmbeddedData } from '../../../model/data/V1_INTERNA
54
57
 
55
58
  export const V1_DATA_ELEMENT_PROTOCOL_TYPE = 'dataElement';
56
59
 
60
+ enum ModelDataType {
61
+ MODEL_EMBEDDED_DATA = 'modelEmbeddedData',
62
+ MODEL_INSTANCE_DATA = 'modelInstanceData',
63
+ }
64
+
57
65
  export enum V1_EmbeddedDataType {
58
66
  MODEL_STORE_DATA = 'modelStore',
59
67
  EXTERNAL_FORMAT_DATA = 'externalFormat',
@@ -61,16 +69,63 @@ export enum V1_EmbeddedDataType {
61
69
  RELATIONAL_DATA = 'relationalCSVData',
62
70
  }
63
71
 
64
- export const V1_modelStoreDataModelSchema = createModelSchema(
65
- V1_ModelStoreData,
66
- {
72
+ const V1_dataModelDataSchema = (
73
+ plugins: PureProtocolProcessorPlugin[],
74
+ ): ModelSchema<V1_ModelEmbeddedData> =>
75
+ createModelSchema(V1_ModelEmbeddedData, {
76
+ _type: usingConstantValueSchema(ModelDataType.MODEL_EMBEDDED_DATA),
77
+ data: custom(
78
+ (val) => V1_serializeEmbeddedDataType(val, plugins),
79
+ (val) => V1_deserializeEmbeddedDataType(val, plugins),
80
+ ),
81
+ model: primitive(),
82
+ });
83
+
84
+ const V1_dataModelInstanceDataSchema = createModelSchema(V1_ModelInstanceData, {
85
+ _type: usingConstantValueSchema(ModelDataType.MODEL_INSTANCE_DATA),
86
+ instances: raw(),
87
+ model: primitive(),
88
+ });
89
+
90
+ const V1_serializeModelData = (
91
+ protocol: V1_ModelData,
92
+ plugins: PureProtocolProcessorPlugin[],
93
+ ): PlainObject<V1_ModelData> => {
94
+ if (protocol instanceof V1_ModelInstanceData) {
95
+ return serialize(V1_dataModelInstanceDataSchema, protocol);
96
+ } else if (protocol instanceof V1_ModelEmbeddedData) {
97
+ return serialize(V1_dataModelDataSchema(plugins), protocol);
98
+ }
99
+ throw new UnsupportedOperationError(`Can't serialize model data`, protocol);
100
+ };
101
+
102
+ const V1_deserializeModelData = (
103
+ json: PlainObject<V1_ModelData>,
104
+ plugins: PureProtocolProcessorPlugin[],
105
+ ): V1_ModelData => {
106
+ switch (json._type) {
107
+ case ModelDataType.MODEL_EMBEDDED_DATA:
108
+ return deserialize(V1_dataModelDataSchema(plugins), json);
109
+ case ModelDataType.MODEL_INSTANCE_DATA:
110
+ return deserialize(V1_dataModelInstanceDataSchema, json);
111
+ default:
112
+ throw new UnsupportedOperationError(
113
+ `Can't deserialize assertion status of type '${json._type}'`,
114
+ );
115
+ }
116
+ };
117
+
118
+ export const V1_modelStoreDataModelSchema = (
119
+ plugins: PureProtocolProcessorPlugin[],
120
+ ): ModelSchema<V1_ModelStoreData> =>
121
+ createModelSchema(V1_ModelStoreData, {
67
122
  _type: usingConstantValueSchema(V1_EmbeddedDataType.MODEL_STORE_DATA),
68
- instances: custom(
69
- (val) => serializeMap(val, (v) => v),
70
- (val) => deserializeMap(val, (v) => v),
123
+ modelData: optionalCustomList(
124
+ (value: V1_ModelData) => V1_serializeModelData(value, plugins),
125
+ (value: PlainObject<V1_ModelData>) =>
126
+ V1_deserializeModelData(value, plugins),
71
127
  ),
72
- },
73
- );
128
+ });
74
129
 
75
130
  export const V1_externalFormatDataModelSchema = createModelSchema(
76
131
  V1_ExternalFormatData,
@@ -103,16 +158,16 @@ const V1_relationalDataModelSchema = createModelSchema(V1_RelationalCSVData, {
103
158
  tables: list(usingModelSchema(V1_relationalDataTableModelSchema)),
104
159
  });
105
160
 
106
- export const V1_serializeEmbeddedDataType = (
161
+ export function V1_serializeEmbeddedDataType(
107
162
  protocol: V1_EmbeddedData,
108
163
  plugins: PureProtocolProcessorPlugin[],
109
- ): PlainObject<V1_EmbeddedData> => {
164
+ ): PlainObject<V1_EmbeddedData> {
110
165
  if (protocol instanceof V1_INTERNAL__UnknownEmbeddedData) {
111
166
  return protocol.content;
112
167
  } else if (protocol instanceof V1_ExternalFormatData) {
113
168
  return serialize(V1_externalFormatDataModelSchema, protocol);
114
169
  } else if (protocol instanceof V1_ModelStoreData) {
115
- return serialize(V1_modelStoreDataModelSchema, protocol);
170
+ return serialize(V1_modelStoreDataModelSchema(plugins), protocol);
116
171
  } else if (protocol instanceof V1_DataElementReference) {
117
172
  return serialize(V1_dataElementReferenceModelSchema, protocol);
118
173
  } else if (protocol instanceof V1_RelationalCSVData) {
@@ -135,17 +190,17 @@ export const V1_serializeEmbeddedDataType = (
135
190
  `Can't serialize embedded data: no compatible serializer available from plugins`,
136
191
  protocol,
137
192
  );
138
- };
193
+ }
139
194
 
140
- export const V1_deserializeEmbeddedDataType = (
195
+ export function V1_deserializeEmbeddedDataType(
141
196
  json: PlainObject<V1_EmbeddedData>,
142
197
  plugins: PureProtocolProcessorPlugin[],
143
- ): V1_EmbeddedData => {
198
+ ): V1_EmbeddedData {
144
199
  switch (json._type) {
145
200
  case V1_EmbeddedDataType.EXTERNAL_FORMAT_DATA:
146
201
  return deserialize(V1_externalFormatDataModelSchema, json);
147
202
  case V1_EmbeddedDataType.MODEL_STORE_DATA:
148
- return deserialize(V1_modelStoreDataModelSchema, json);
203
+ return deserialize(V1_modelStoreDataModelSchema(plugins), json);
149
204
  case V1_EmbeddedDataType.DATA_ELEMENT_REFERENCE:
150
205
  return deserialize(V1_dataElementReferenceModelSchema, json);
151
206
  case V1_EmbeddedDataType.RELATIONAL_DATA:
@@ -170,7 +225,7 @@ export const V1_deserializeEmbeddedDataType = (
170
225
  return protocol;
171
226
  }
172
227
  }
173
- };
228
+ }
174
229
 
175
230
  export const V1_dataElementModelSchema = (
176
231
  plugins: PureProtocolProcessorPlugin[],
@@ -896,7 +896,7 @@ export const V1_mappingQueryTestModelSchema = createModelSchema(
896
896
  ),
897
897
  id: primitive(),
898
898
  doc: optional(primitive()),
899
- query: usingModelSchema(V1_rawLambdaModelSchema),
899
+ func: usingModelSchema(V1_rawLambdaModelSchema),
900
900
  },
901
901
  );
902
902
 
@@ -940,7 +940,7 @@ export const V1_mappingQueryTestSuiteModelSchema = (
940
940
  _type: usingConstantValueSchema(V1_TestSuiteType.MAPPING_QUERY_TEST_SUITE),
941
941
  doc: optional(primitive()),
942
942
  id: primitive(),
943
- query: usingModelSchema(V1_rawLambdaModelSchema),
943
+ func: usingModelSchema(V1_rawLambdaModelSchema),
944
944
  tests: list(
945
945
  custom(
946
946
  (val) => V1_serializeAtomicTest(val, plugins),
package/src/index.ts CHANGED
@@ -156,8 +156,10 @@ export * from './graph/helpers/DSL_Mapping_Helper.js';
156
156
  export * from './graph/helpers/STO_Relational_Helper.js';
157
157
  export * from './graph/helpers/STO_FlatData_Helper.js';
158
158
  export * from './graph/helpers/DSL_Generation_Helper.js';
159
+ export * from './graph/helpers/DSL_Service_Helper.js';
159
160
 
160
161
  export * from './graph/helpers/PureLanguageHelper.js';
162
+ export * from './graph/helpers/ValueSpecificationHelper.js';
161
163
 
162
164
  export * from './graph/helpers/creator/DomainModelCreatorHelper.js';
163
165
  export * from './graph/helpers/creator/DSL_Mapping_ModelCreatorHelper.js';
@@ -213,6 +215,7 @@ export {
213
215
  EXECUTION_SERIALIZATION_FORMAT,
214
216
  } from './graph-manager/action/execution/ExecutionResult.js';
215
217
  export { ExternalFormatDescription } from './graph-manager/action/externalFormat/ExternalFormatDescription.js';
218
+ export * from './graph-manager/action/generation/ArtifactGenerationExtensionResult.js';
216
219
  export * from './graph-manager/action/execution/ExecutionResultHelper.js';
217
220
  export * from './graph-manager/PureGraphManagerPlugin.js';
218
221
  export * from './graph-manager/action/query/Query.js';
@@ -357,6 +360,9 @@ export { V1_DataElement } from './graph-manager/protocol/pure/v1/model/packageab
357
360
  export {
358
361
  EmbeddedData,
359
362
  ModelStoreData,
363
+ ModelData,
364
+ ModelEmbeddedData,
365
+ ModelInstanceData,
360
366
  DataElementReference,
361
367
  ExternalFormatData,
362
368
  type EmbeddedDataVisitor,
@@ -373,6 +379,8 @@ export {
373
379
  observe_ExternalFormatData,
374
380
  observe_EmbeddedData,
375
381
  observe_RelationalDataTable,
382
+ observe_ModelData,
383
+ observe_ModelStoreData,
376
384
  observe_DataElement,
377
385
  } from './graph-manager/action/changeDetection/DSL_Data_ObserverHelper.js';
378
386
  export { V1_transformExternalFormatData } from './graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_DataElementTransformer.js';
package/tsconfig.json CHANGED
@@ -53,10 +53,12 @@
53
53
  "./src/graph/helpers/ArtifactGenerationExtensionHelper.ts",
54
54
  "./src/graph/helpers/DSL_Generation_Helper.ts",
55
55
  "./src/graph/helpers/DSL_Mapping_Helper.ts",
56
+ "./src/graph/helpers/DSL_Service_Helper.ts",
56
57
  "./src/graph/helpers/DomainHelper.ts",
57
58
  "./src/graph/helpers/PureLanguageHelper.ts",
58
59
  "./src/graph/helpers/STO_FlatData_Helper.ts",
59
60
  "./src/graph/helpers/STO_Relational_Helper.ts",
61
+ "./src/graph/helpers/ValueSpecificationHelper.ts",
60
62
  "./src/graph/helpers/creator/DSL_ExternalFormat_ModelCreatorHelper.ts",
61
63
  "./src/graph/helpers/creator/DSL_Mapping_ModelCreatorHelper.ts",
62
64
  "./src/graph/helpers/creator/DomainModelCreatorHelper.ts",
@@ -308,6 +310,7 @@
308
310
  "./src/graph-manager/action/execution/INTERNAL__UnknownExecutionResult.ts",
309
311
  "./src/graph-manager/action/externalFormat/ExternalFormatDescription.ts",
310
312
  "./src/graph-manager/action/functionActivator/FunctionActivatorConfiguration.ts",
313
+ "./src/graph-manager/action/generation/ArtifactGenerationExtensionResult.ts",
311
314
  "./src/graph-manager/action/generation/DatabaseBuilderInput.ts",
312
315
  "./src/graph-manager/action/generation/GenerationConfigurationDescription.ts",
313
316
  "./src/graph-manager/action/generation/GenerationOutput.ts",
@@ -364,6 +367,7 @@
364
367
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorError.ts",
365
368
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInfo.ts",
366
369
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInput.ts",
370
+ "./src/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.ts",
367
371
  "./src/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.ts",
368
372
  "./src/graph-manager/protocol/pure/v1/engine/generation/V1_FileGenerationInput.ts",
369
373
  "./src/graph-manager/protocol/pure/v1/engine/generation/V1_GenerationConfigurationDescription.ts",