@finos/legend-extension-dsl-data-space 10.1.89 → 10.1.90

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
  2. package/lib/components/DataSpaceQuickStart.js +3 -1
  3. package/lib/components/DataSpaceQuickStart.js.map +1 -1
  4. package/lib/graph/DSL_DataSpace_HashUtils.d.ts +2 -0
  5. package/lib/graph/DSL_DataSpace_HashUtils.d.ts.map +1 -1
  6. package/lib/graph/DSL_DataSpace_HashUtils.js +2 -0
  7. package/lib/graph/DSL_DataSpace_HashUtils.js.map +1 -1
  8. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +10 -2
  9. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  10. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +23 -1
  11. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  12. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts +4 -1
  13. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts.map +1 -1
  14. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js +3 -0
  15. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js.map +1 -1
  16. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts +1 -1
  17. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  18. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +47 -13
  19. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  20. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  21. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +12 -4
  22. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  23. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts +4 -1
  24. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts.map +1 -1
  25. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +11 -1
  26. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  27. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +10 -2
  28. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  29. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +23 -1
  30. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  31. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts +2 -1
  32. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  33. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +32 -6
  34. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  35. package/lib/index.css +1 -1
  36. package/lib/package.json +1 -1
  37. package/package.json +7 -7
  38. package/src/components/DataSpaceQuickStart.tsx +5 -3
  39. package/src/graph/DSL_DataSpace_HashUtils.ts +2 -0
  40. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +36 -3
  41. package/src/graph-manager/action/analytics/DataSpaceAnalysis.ts +5 -1
  42. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +84 -29
  43. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +12 -1
  44. package/src/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +22 -2
  45. package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +36 -3
  46. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +61 -7
@@ -70,6 +70,7 @@ import {
70
70
  DataSpaceAssociationDocumentationEntry,
71
71
  DataSpaceMultiExecutionServiceExecutableInfo,
72
72
  DataSpaceMultiExecutionServiceKeyedExecutableInfo,
73
+ DataSpaceTemplateExecutableInfo,
73
74
  } from '../../../action/analytics/DataSpaceAnalysis.js';
74
75
  import { DSL_DataSpace_PureGraphManagerExtension } from '../DSL_DataSpace_PureGraphManagerExtension.js';
75
76
  import {
@@ -81,6 +82,7 @@ import {
81
82
  V1_DataSpaceServiceExecutableInfo,
82
83
  V1_deserializeDataSpaceAnalysisResult,
83
84
  V1_DataSpaceMultiExecutionServiceExecutableInfo,
85
+ V1_DataSpaceTemplateExecutableInfo,
84
86
  } from './engine/analytics/V1_DataSpaceAnalysis.js';
85
87
  import { getDiagram } from '@finos/legend-extension-dsl-diagram/graph';
86
88
 
@@ -487,8 +489,17 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
487
489
  const executable = new DataSpaceExecutableAnalysisResult();
488
490
  executable.title = executableProtocol.title;
489
491
  executable.description = executableProtocol.description;
490
- executable.executable = executableProtocol.executable;
492
+ if (executableProtocol.executable) {
493
+ executable.executable = executableProtocol.executable;
494
+ }
491
495
  if (
496
+ executableProtocol.info instanceof V1_DataSpaceTemplateExecutableInfo
497
+ ) {
498
+ const templateExecutableInfo = new DataSpaceTemplateExecutableInfo();
499
+ templateExecutableInfo.query = executableProtocol.info.query;
500
+ templateExecutableInfo.executionContextKey =
501
+ executableProtocol.info.executionContextKey;
502
+ } else if (
492
503
  executableProtocol.info instanceof V1_DataSpaceServiceExecutableInfo
493
504
  ) {
494
505
  const serviceExecutableInfo = new DataSpaceServiceExecutableInfo();
@@ -248,10 +248,25 @@ export abstract class V1_DataSpaceExecutableInfo {
248
248
  query!: string;
249
249
  }
250
250
 
251
+ const V1_DATA_SPACE_TEMPLATE_EXECUTABLE_INFO_TYPE = 'templateExecutableInfo';
251
252
  const V1_DATA_SPACE_SERVICE_EXECUTABLE_INFO_TYPE = 'service';
252
253
  const V1_DATA_SPACE_MULTI_EXECUTION_SERVICE_EXECUTABLE_INFO_TYPE =
253
254
  'multiExecutionService';
254
255
 
256
+ export class V1_DataSpaceTemplateExecutableInfo extends V1_DataSpaceExecutableInfo {
257
+ executionContextKey!: string;
258
+ }
259
+
260
+ const V1_DataSpaceTemplateExecutableInfoModelSchema = (
261
+ plugins: PureProtocolProcessorPlugin[],
262
+ ): ModelSchema<V1_DataSpaceTemplateExecutableInfo> =>
263
+ createModelSchema(V1_DataSpaceTemplateExecutableInfo, {
264
+ _type: usingConstantValueSchema(
265
+ V1_DATA_SPACE_TEMPLATE_EXECUTABLE_INFO_TYPE,
266
+ ),
267
+ executionContextKey: primitive(),
268
+ });
269
+
255
270
  export class V1_DataSpaceServiceExecutableInfo extends V1_DataSpaceExecutableInfo {
256
271
  pattern!: string;
257
272
  mapping?: string | undefined;
@@ -328,6 +343,11 @@ const V1_deserializeDataSpaceExecutableInfo = (
328
343
  json: PlainObject<V1_DataSpaceExecutableInfo>,
329
344
  ): V1_DataSpaceExecutableInfo => {
330
345
  switch (json._type) {
346
+ case V1_DATA_SPACE_TEMPLATE_EXECUTABLE_INFO_TYPE:
347
+ return deserialize(
348
+ V1_DataSpaceTemplateExecutableInfoModelSchema(plugins),
349
+ json,
350
+ );
331
351
  case V1_DATA_SPACE_SERVICE_EXECUTABLE_INFO_TYPE:
332
352
  return deserialize(
333
353
  V1_dataSpaceServiceExecutableInfoModelSchema(plugins),
@@ -399,7 +419,7 @@ const V1_deserializeDataSpaceExecutableResult = (
399
419
  export class V1_DataSpaceExecutableAnalysisResult {
400
420
  title!: string;
401
421
  description?: string | undefined;
402
- executable!: string;
422
+ executable?: string;
403
423
  info?: V1_DataSpaceExecutableInfo | undefined;
404
424
  result!: V1_DataSpaceExecutableResult;
405
425
  }
@@ -408,7 +428,7 @@ const V1_dataSpaceExecutableAnalysisResultModelSchema = (
408
428
  plugins: PureProtocolProcessorPlugin[],
409
429
  ): ModelSchema<V1_DataSpaceExecutableAnalysisResult> =>
410
430
  createModelSchema(V1_DataSpaceExecutableAnalysisResult, {
411
- executable: primitive(),
431
+ executable: optional(primitive()),
412
432
  description: optional(primitive()),
413
433
  info: optionalCustom(
414
434
  () => SKIP,
@@ -17,11 +17,12 @@
17
17
  import { hashArray, type Hashable } from '@finos/legend-shared';
18
18
  import { DATA_SPACE_HASH_STRUCTURE } from '../../../../../../../graph/DSL_DataSpace_HashUtils.js';
19
19
  import {
20
- V1_PackageableElement,
20
+ type V1_RawLambda,
21
21
  type V1_PackageableElementPointer,
22
22
  type V1_PackageableElementVisitor,
23
23
  type V1_StereotypePtr,
24
24
  type V1_TaggedValue,
25
+ V1_PackageableElement,
25
26
  } from '@finos/legend-graph';
26
27
 
27
28
  export class V1_DataSpaceExecutionContext implements Hashable {
@@ -56,21 +57,53 @@ export class V1_DataSpaceElementPointer implements Hashable {
56
57
  }
57
58
  }
58
59
 
59
- export class V1_DataSpaceExecutable implements Hashable {
60
+ export abstract class V1_DataSpaceExecutable implements Hashable {
60
61
  title!: string;
61
62
  description?: string | undefined;
62
- executable!: V1_PackageableElementPointer;
63
63
 
64
64
  get hashCode(): string {
65
65
  return hashArray([
66
66
  DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_EXECUTABLE,
67
67
  this.title,
68
68
  this.description ?? '',
69
+ ]);
70
+ }
71
+ }
72
+
73
+ export class V1_DataSpacePackageableElementExecutable
74
+ extends V1_DataSpaceExecutable
75
+ implements Hashable
76
+ {
77
+ executable!: V1_PackageableElementPointer;
78
+
79
+ override get hashCode(): string {
80
+ return hashArray([
81
+ DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_PACKAGEABLE_ELEMENT_EXECUTABLE,
82
+ this.title,
83
+ this.description ?? '',
69
84
  this.executable.path,
70
85
  ]);
71
86
  }
72
87
  }
73
88
 
89
+ export class V1_DataSpaceTemplateExecutable
90
+ extends V1_DataSpaceExecutable
91
+ implements Hashable
92
+ {
93
+ query!: V1_RawLambda;
94
+ executionContextKey?: string;
95
+
96
+ override get hashCode(): string {
97
+ return hashArray([
98
+ DATA_SPACE_HASH_STRUCTURE.DATA_SPACE_TEMPLATE_EXECUTABLE,
99
+ this.title,
100
+ this.description ?? '',
101
+ this.query,
102
+ this.executionContextKey ?? '',
103
+ ]);
104
+ }
105
+ }
106
+
74
107
  export class V1_DataSpaceDiagram implements Hashable {
75
108
  title!: string;
76
109
  description?: string | undefined;
@@ -30,6 +30,7 @@ import {
30
30
  V1_taggedValueModelSchema,
31
31
  V1_packageableElementPointerModelSchema,
32
32
  V1_PackageableElementPointer,
33
+ V1_rawLambdaModelSchema,
33
34
  } from '@finos/legend-graph';
34
35
  import {
35
36
  type PlainObject,
@@ -43,19 +44,24 @@ import {
43
44
  } from '@finos/legend-shared';
44
45
  import {
45
46
  type V1_DataSpaceSupportInfo,
47
+ type V1_DataSpaceExecutable,
46
48
  V1_DataSpace,
47
49
  V1_DataSpaceExecutionContext,
48
50
  V1_DataSpaceSupportEmail,
49
51
  V1_DataSpaceSupportCombinedInfo,
50
- V1_DataSpaceExecutable,
51
52
  V1_DataSpaceDiagram,
52
53
  V1_DataSpaceElementPointer,
54
+ V1_DataSpaceTemplateExecutable,
55
+ V1_DataSpacePackageableElementExecutable,
53
56
  } from '../../model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js';
54
57
  import { V1_MappingIncludeDataSpace } from '../../model/packageableElements/mapping/V1_DSL_DataSpace_MappingIncludeDataSpace.js';
55
58
 
56
59
  export const V1_DATA_SPACE_ELEMENT_PROTOCOL_TYPE = 'dataSpace';
57
60
  const V1_DATA_SPACE_SUPPORT_EMAIL_TYPE = 'email';
58
61
  const V1_DATA_SPACE_SUPPORT_COMBINED_INFO_TYPE = 'combined';
62
+ const V1_DATA_SPACE_PACKAGEABLE_ELEMENT_EXECUTABLE =
63
+ 'dataSpacePackageableElementExecutable';
64
+ const V1_DATA_SPACE_TEMPLATE_EXECUTABLE = 'dataSpaceTemplateExecutable';
59
65
 
60
66
  const V1_dataSpaceExecutionContextModelSchema = createModelSchema(
61
67
  V1_DataSpaceExecutionContext,
@@ -130,18 +136,61 @@ const V1_dataSpaceElementPointerModelSchema = createModelSchema(
130
136
  },
131
137
  );
132
138
 
133
- const V1_PACKAGEABLEELEMENT_EXECUTABLE =
134
- 'dataSpacePackageableElementExecutable';
135
- const V1_dataSpaceExecutableModelSchema = createModelSchema(
136
- V1_DataSpaceExecutable,
139
+ const V1_dataSpacePackageableElementExecutableModelSchema = createModelSchema(
140
+ V1_DataSpacePackageableElementExecutable,
137
141
  {
138
- _type: usingConstantValueSchema(V1_PACKAGEABLEELEMENT_EXECUTABLE),
142
+ _type: usingConstantValueSchema(
143
+ V1_DATA_SPACE_PACKAGEABLE_ELEMENT_EXECUTABLE,
144
+ ),
139
145
  description: optional(primitive()),
146
+ title: primitive(),
140
147
  executable: usingModelSchema(V1_packageableElementPointerModelSchema),
148
+ },
149
+ );
150
+
151
+ const V1_dataSpaceTemplateExecutableModelSchema = createModelSchema(
152
+ V1_DataSpaceTemplateExecutable,
153
+ {
154
+ _type: usingConstantValueSchema(V1_DATA_SPACE_TEMPLATE_EXECUTABLE),
155
+ description: optional(primitive()),
141
156
  title: primitive(),
157
+ query: usingModelSchema(V1_rawLambdaModelSchema),
158
+ executionContextKey: optional(primitive()),
142
159
  },
143
160
  );
144
161
 
162
+ const V1_serializeDataspaceExecutable = (
163
+ protocol: V1_DataSpaceExecutable,
164
+ ): PlainObject<V1_DataSpaceExecutable> => {
165
+ if (protocol instanceof V1_DataSpaceTemplateExecutable) {
166
+ return serialize(V1_dataSpaceTemplateExecutableModelSchema, protocol);
167
+ } else if (protocol instanceof V1_DataSpacePackageableElementExecutable) {
168
+ return serialize(
169
+ V1_dataSpacePackageableElementExecutableModelSchema,
170
+ protocol,
171
+ );
172
+ }
173
+ throw new UnsupportedOperationError(
174
+ `Can't serialize data space executable`,
175
+ protocol,
176
+ );
177
+ };
178
+
179
+ export const V1_deserializeDataspaceExecutable = (
180
+ json: PlainObject<V1_DataSpaceExecutable>,
181
+ ): V1_DataSpaceSupportInfo => {
182
+ switch (json._type) {
183
+ case V1_DATA_SPACE_TEMPLATE_EXECUTABLE:
184
+ return deserialize(V1_dataSpaceTemplateExecutableModelSchema, json);
185
+ case V1_DATA_SPACE_PACKAGEABLE_ELEMENT_EXECUTABLE:
186
+ default:
187
+ return deserialize(
188
+ V1_dataSpacePackageableElementExecutableModelSchema,
189
+ json,
190
+ );
191
+ }
192
+ };
193
+
145
194
  const V1_dataSpaceDiagramModelSchema = createModelSchema(V1_DataSpaceDiagram, {
146
195
  description: optional(primitive()),
147
196
  diagram: usingModelSchema(V1_packageableElementPointerModelSchema),
@@ -154,7 +203,12 @@ const V1_dataSpaceModelSchema = createModelSchema(V1_DataSpace, {
154
203
  description: optional(primitive()),
155
204
  diagrams: list(object(V1_dataSpaceDiagramModelSchema)),
156
205
  elements: optionalCustomListWithSchema(V1_dataSpaceElementPointerModelSchema),
157
- executables: list(object(V1_dataSpaceExecutableModelSchema)),
206
+ executables: list(
207
+ custom(
208
+ (val) => V1_serializeDataspaceExecutable(val),
209
+ (val) => V1_deserializeDataspaceExecutable(val),
210
+ ),
211
+ ),
158
212
  executionContexts: list(object(V1_dataSpaceExecutionContextModelSchema)),
159
213
  featuredDiagrams: optionalCustomListWithSchema(
160
214
  V1_packageableElementPointerModelSchema,