@finos/legend-graph 1.3.0 → 2.0.2

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 (92) hide show
  1. package/lib/GraphManagerState.d.ts +2 -2
  2. package/lib/GraphManagerState.js +4 -4
  3. package/lib/GraphManagerState.js.map +1 -1
  4. package/lib/graph/BasicModel.d.ts.map +1 -1
  5. package/lib/graph/BasicModel.js +1 -0
  6. package/lib/graph/BasicModel.js.map +1 -1
  7. package/lib/graph/DependencyManager.d.ts.map +1 -1
  8. package/lib/graph/DependencyManager.js +2 -0
  9. package/lib/graph/DependencyManager.js.map +1 -1
  10. package/lib/graph/PureModel.d.ts.map +1 -1
  11. package/lib/graph/PureModel.js +2 -0
  12. package/lib/graph/PureModel.js.map +1 -1
  13. package/lib/graphManager/AbstractPureGraphManager.d.ts +8 -6
  14. package/lib/graphManager/AbstractPureGraphManager.d.ts.map +1 -1
  15. package/lib/graphManager/AbstractPureGraphManager.js.map +1 -1
  16. package/lib/graphManager/GraphBuilderReport.d.ts +10 -0
  17. package/lib/graphManager/GraphBuilderReport.d.ts.map +1 -1
  18. package/lib/graphManager/GraphBuilderReport.js +6 -0
  19. package/lib/graphManager/GraphBuilderReport.js.map +1 -1
  20. package/lib/graphManager/{GraphManagerLogEvent.d.ts → GraphManagerEvent.d.ts} +12 -19
  21. package/lib/graphManager/GraphManagerEvent.d.ts.map +1 -0
  22. package/lib/graphManager/GraphManagerEvent.js +45 -0
  23. package/lib/graphManager/GraphManagerEvent.js.map +1 -0
  24. package/lib/graphManager/GraphManagerTelemetry.d.ts +28 -0
  25. package/lib/graphManager/GraphManagerTelemetry.d.ts.map +1 -0
  26. package/lib/graphManager/GraphManagerTelemetry.js +22 -0
  27. package/lib/graphManager/GraphManagerTelemetry.js.map +1 -0
  28. package/lib/index.d.ts +5 -2
  29. package/lib/index.d.ts.map +1 -1
  30. package/lib/index.js +5 -2
  31. package/lib/index.js.map +1 -1
  32. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts +56 -9
  33. package/lib/models/protocols/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  34. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js +339 -198
  35. package/lib/models/protocols/pure/v1/V1_PureGraphManager.js.map +1 -1
  36. package/lib/models/protocols/pure/v1/engine/V1_Engine.d.ts.map +1 -1
  37. package/lib/models/protocols/pure/v1/engine/V1_Engine.js +2 -2
  38. package/lib/models/protocols/pure/v1/engine/V1_Engine.js.map +1 -1
  39. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.d.ts +21 -0
  40. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.d.ts.map +1 -0
  41. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.js +22 -0
  42. package/lib/models/protocols/pure/v1/engine/V1_EngineEvent.js.map +1 -0
  43. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts +0 -5
  44. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.d.ts.map +1 -1
  45. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js +0 -6
  46. package/lib/models/protocols/pure/v1/engine/V1_EngineServerClient.js.map +1 -1
  47. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.d.ts +0 -2
  48. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.d.ts.map +1 -1
  49. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.js +0 -2
  50. package/lib/models/protocols/pure/v1/model/context/V1_PureModelContext.js.map +1 -1
  51. package/lib/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.d.ts +1 -1
  52. package/lib/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.js +1 -1
  53. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js +2 -2
  54. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.js.map +1 -1
  55. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js +4 -4
  56. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.js.map +1 -1
  57. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.js +4 -4
  58. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.js.map +1 -1
  59. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js +2 -2
  60. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.js.map +1 -1
  61. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.d.ts.map +1 -1
  62. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js +3 -7
  63. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.js.map +1 -1
  64. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.js +2 -2
  65. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.js.map +1 -1
  66. package/lib/package.json +2 -2
  67. package/package.json +5 -5
  68. package/src/GraphManagerState.ts +4 -4
  69. package/src/graph/BasicModel.ts +2 -0
  70. package/src/graph/DependencyManager.ts +5 -0
  71. package/src/graph/PureModel.ts +8 -0
  72. package/src/graphManager/AbstractPureGraphManager.ts +19 -6
  73. package/src/graphManager/GraphBuilderReport.ts +15 -1
  74. package/src/graphManager/{GraphManagerLogEvent.ts → GraphManagerEvent.ts} +10 -20
  75. package/src/graphManager/GraphManagerTelemetry.ts +35 -0
  76. package/src/index.ts +5 -5
  77. package/src/models/protocols/pure/v1/V1_PureGraphManager.ts +547 -403
  78. package/src/models/protocols/pure/v1/engine/V1_Engine.ts +2 -2
  79. package/src/models/protocols/pure/v1/engine/V1_EngineEvent.ts +21 -0
  80. package/src/models/protocols/pure/v1/engine/V1_EngineServerClient.ts +0 -6
  81. package/src/models/protocols/pure/v1/model/context/V1_PureModelContext.ts +1 -5
  82. package/src/models/protocols/pure/v1/model/valueSpecification/raw/V1_HackedUnit.ts +1 -1
  83. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelClassMappingSecondPassBuilder.ts +2 -2
  84. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_ProtocolToMetaModelPropertyMappingBuilder.ts +4 -4
  85. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_SectionBuilderHelper.ts +4 -4
  86. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ServiceBuilderHelper.ts +2 -2
  87. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationBuilderHelper.ts +4 -9
  88. package/src/models/protocols/pure/v1/transformation/pureGraph/to/helpers/V1_ValueSpecificationPathResolver.ts +2 -2
  89. package/tsconfig.json +3 -1
  90. package/lib/graphManager/GraphManagerLogEvent.d.ts.map +0 -1
  91. package/lib/graphManager/GraphManagerLogEvent.js +0 -53
  92. package/lib/graphManager/GraphManagerLogEvent.js.map +0 -1
@@ -136,6 +136,10 @@ export class SystemModel extends BasicModel {
136
136
 
137
137
  constructor(extensionElementClasses: Clazz<PackageableElement>[]) {
138
138
  super(ROOT_PACKAGE_NAME.SYSTEM, extensionElementClasses);
139
+
140
+ this.buildState.setMessageFormatter(
141
+ (message: string) => `[system] ${message}`,
142
+ );
139
143
  }
140
144
 
141
145
  /**
@@ -157,6 +161,10 @@ export class SystemModel extends BasicModel {
157
161
  export class GenerationModel extends BasicModel {
158
162
  constructor(extensionElementClasses: Clazz<PackageableElement>[]) {
159
163
  super(ROOT_PACKAGE_NAME.MODEL_GENERATION, extensionElementClasses);
164
+
165
+ this.buildState.setMessageFormatter(
166
+ (message: string) => `[generation] ${message}`,
167
+ );
160
168
  }
161
169
  }
162
170
 
@@ -61,6 +61,7 @@ import type { GraphPluginManager } from '../GraphPluginManager';
61
61
  import type { QuerySearchSpecification } from './action/query/QuerySearchSpecification';
62
62
  import type { ExternalFormatDescription } from './action/externalFormat/ExternalFormatDescription';
63
63
  import type { ConfigurationProperty } from '../models/metamodels/pure/packageableElements/fileGeneration/ConfigurationProperty';
64
+ import type { GraphBuilderReport } from './GraphBuilderReport';
64
65
 
65
66
  export interface TEMPORARY__EngineSetupConfig {
66
67
  env: string;
@@ -71,7 +72,6 @@ export interface TEMPORARY__EngineSetupConfig {
71
72
  }
72
73
 
73
74
  export interface GraphBuilderOptions {
74
- quiet?: boolean;
75
75
  // the `keepSectionIndex` flag is kept until we have stable support and enable usage of section index.
76
76
  TEMPORARY__keepSectionIndex?: boolean;
77
77
  // when we change our handling of section index, we should be able to get rid of this flag.
@@ -125,7 +125,7 @@ export abstract class AbstractPureGraphManager {
125
125
  coreModel: CoreModel,
126
126
  systemModel: SystemModel,
127
127
  options?: GraphBuilderOptions,
128
- ): GeneratorFn<void>;
128
+ ): GeneratorFn<GraphBuilderReport>;
129
129
 
130
130
  /**
131
131
  * Process entities and build the main graph.
@@ -134,7 +134,7 @@ export abstract class AbstractPureGraphManager {
134
134
  graph: PureModel,
135
135
  entities: Entity[],
136
136
  options?: GraphBuilderOptions,
137
- ): GeneratorFn<void>;
137
+ ): GeneratorFn<GraphBuilderReport>;
138
138
 
139
139
  /**
140
140
  * Build immutable models which holds dependencies.
@@ -150,13 +150,13 @@ export abstract class AbstractPureGraphManager {
150
150
  dependencyManager: DependencyManager,
151
151
  dependencyEntitiesMap: Map<string, Entity[]>,
152
152
  options?: GraphBuilderOptions,
153
- ): GeneratorFn<void>;
153
+ ): GeneratorFn<GraphBuilderReport>;
154
154
 
155
155
  abstract buildGenerations(
156
156
  graph: PureModel,
157
157
  generationEntities: Map<string, Entity[]>,
158
158
  options?: GraphBuilderOptions,
159
- ): GeneratorFn<void>;
159
+ ): GeneratorFn<GraphBuilderReport>;
160
160
 
161
161
  // ------------------------------------------- Grammar -------------------------------------------
162
162
 
@@ -264,7 +264,7 @@ export abstract class AbstractPureGraphManager {
264
264
  abstract getExamplePureProtocolText(): string;
265
265
  abstract getExampleExternalFormatImportText(): string;
266
266
  abstract entitiesToPureProtocolText(entities: Entity[]): Promise<string>;
267
- abstract pureProtocolToEntities(protocol: string): Entity[];
267
+ abstract pureProtocolTextToEntities(protocol: string): Entity[];
268
268
 
269
269
  // ------------------------------------------- Execute -------------------------------------------
270
270
 
@@ -336,6 +336,19 @@ export abstract class AbstractPureGraphManager {
336
336
  abstract updateQuery(query: Query, graph: PureModel): Promise<Query>;
337
337
  abstract deleteQuery(queryId: string): Promise<void>;
338
338
 
339
+ // ------------------------------------------- Legend Query -------------------------------------
340
+ abstract buildGraphForCreateQuerySetup(
341
+ graph: PureModel,
342
+ entities: Entity[],
343
+ dependencyEntitiesMap: Map<string, Entity[]>,
344
+ ): Promise<void>;
345
+
346
+ abstract buildGraphForServiceQuerySetup(
347
+ graph: PureModel,
348
+ entities: Entity[],
349
+ dependencyEntitiesMap: Map<string, Entity[]>,
350
+ ): Promise<void>;
351
+
339
352
  // ------------------------------------------- Utilities -------------------------------------------
340
353
 
341
354
  abstract buildDatabase(
@@ -14,4 +14,18 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export class GraphBuilderReport {}
17
+ import { GRAPH_MANAGER_EVENT } from './GraphManagerEvent';
18
+
19
+ export class GraphBuilderReport {
20
+ timings: {
21
+ [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: number;
22
+ [key: string]: number;
23
+ } = { [GRAPH_MANAGER_EVENT.GRAPH_BUILDER_COMPLETED]: 0 };
24
+ elementCount: {
25
+ total: number;
26
+ [key: string]: number;
27
+ } = {
28
+ total: 0,
29
+ };
30
+ otherStats: Record<PropertyKey, unknown> = {};
31
+ }
@@ -14,31 +14,21 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- export enum GRAPH_MANAGER_LOG_EVENT {
18
- GRAPH_BUILDER_FAILURE = 'GRAPH_BUILD_FAILURE',
19
-
20
- GRAPH_BUILDER_SYSTEM_BUILT = 'GRAPH_BUILDER_SYSTEM_BUILT',
21
- GRAPH_BUILDER_DEPENDENCIES_PREPROCESSED = 'GRAPH_BUILDER_DEPENDENCIES_PREPROCESSED',
22
- GRAPH_BUILDER_DEPENDENCIES_ENTITIES_FETCHED = 'GRAPH_BUILDER_DEPENDENCIES_ENTITIES_FETCHED',
23
- GRAPH_BUILDER_DEPENDENCIES_PROCESSED = 'GRAPH_BUILDER_DEPENDENCIES_PROCESSED',
24
- GRAPH_BUILDER_DEPENDENCIES_BUILT = 'GRAPH_BUILDER_DEPENDENCIES_BUILT',
25
- GRAPH_BUILDER_GENERATIONS_BUILT = 'GRAPH_BUILDER_GENERATIONS_BUILT',
26
- GRAPH_BUILDER_DATA_MODEL_PARSED = 'GRAPH_BUILDER_DATA_MODEL_PARSED',
27
- GRAPH_BUILDER_COMPLETED = 'GRAPH_BUILDER_COMPLETED',
28
- GRAPH_BUILDER_ELEMENTS_INITIALIZED_AND_INDEXED = 'GRAPH_BUILDER_ELEMENTS_INITIALIZED_AND_INDEXED',
17
+ export enum GRAPH_MANAGER_EVENT {
18
+ GRAPH_BUILDER_ELEMENTS_DESERIALIZED = 'GRAPH_BUILDER_ELEMENTS_DESERIALIZED',
19
+ GRAPH_BUILDER_ELEMENTS_INDEXED = 'GRAPH_BUILDER_ELEMENTS_INDEXED',
29
20
  GRAPH_BUILDER_SECTION_INDICES_BUILT = 'GRAPH_BUILDER_SECTION_INDICES_BUILT',
30
21
  GRAPH_BUILDER_DOMAIN_MODELS_BUILT = 'GRAPH_BUILDER_DOMAIN_MODELS_BUILT',
31
22
  GRAPH_BUILDER_STORES_BUILT = 'GRAPH_BUILDER_STORES_BUILT',
32
23
  GRAPH_BUILDER_MAPPINGS_BUILT = 'GRAPH_BUILDER_MAPPINGS_BUILT',
33
- GRAPH_BUILDER_CONNECTIONS_BUILT = 'GRAPH_BUILDER_CONNECTIONS_BUILT',
34
- GRAPH_BUILDER_RUNTIMES_BUILT = 'GRAPH_BUILDER_RUNTIMES_BUILT',
35
- GRAPH_BUILDER_OTHER_ELEMENTS_BUILT = 'GRAPH_BUILDER_OTHER_ELEMENTS_BUILT',
36
- // TODO: we should be able to move these out with modularization
37
- GRAPH_BUILDER_FILE_GENERATIONS_BUILT = 'GRAPH_BUILDER_FILE_GENERATIONS_BUILT',
38
- GRAPH_BUILDER_GENERATION_TREE_BUILT = 'GRAPH_BUILDER_GENERATION_TREE_BUILT',
24
+ GRAPH_BUILDER_CONNECTIONS_AND_RUNTIMES_BUILT = 'GRAPH_BUILDER_CONNECTIONS_AND_RUNTIMES_BUILT',
39
25
  GRAPH_BUILDER_SERVICES_BUILT = 'GRAPH_BUILDER_SERVICES_BUILT',
26
+ GRAPH_BUILDER_OTHER_ELEMENTS_BUILT = 'GRAPH_BUILDER_OTHER_ELEMENTS_BUILT',
27
+ GRAPH_BUILDER_POST_PROCESSED = 'GRAPH_BUILDER_POST_PROCESSED',
28
+ GRAPH_BUILDER_COMPLETED = 'GRAPH_BUILDER_COMPLETED',
40
29
 
41
30
  GRAPH_INITIALIZED = 'GRAPH_INITIALIZED',
31
+ GRAPH_DEPENDENCIES_FETCHED = 'GRAPH_DEPENDENCIES_FETCHED',
42
32
  GRAPH_ENTITIES_FETCHED = 'GRAPH_ENTITIES_FETCHED',
43
33
  GRAPH_UPDATED_AND_REBUILT = 'GRAPH_REBUILT',
44
34
  GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED = 'GRAPH_MODEL_TO_GRAMMAR_TRANSFORMED',
@@ -48,9 +38,9 @@ export enum GRAPH_MANAGER_LOG_EVENT {
48
38
  GRAPH_PROTOCOL_SERIALIZED = 'GRAPH_PROTOCOL_SERIALIZED',
49
39
  GRAPH_HASHES_PRECOMPUTED = 'GRAPH_HASHES_PRECOMPUTED',
50
40
 
51
- GRAPH_MANAGER_FAILURE = 'GRAPH_MANAGER_FAILURE',
52
-
41
+ GRAPH_BUILDER_FAILURE = 'GRAPH_BUILD_FAILURE',
53
42
  EXECUTION_FAILURE = 'EXECUTION_FAILURE',
54
43
  COMPILATION_FAILURE = 'COMPILATION_FAILURE',
55
44
  PARSING_FAILURE = 'PARSING_FAILURE',
45
+ GRAPH_MANAGER_FAILURE = 'GRAPH_MANAGER_FAILURE',
56
46
  }
@@ -0,0 +1,35 @@
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 type { TelemetryService } from '@finos/legend-shared';
18
+ import type { GraphBuilderReport } from './GraphBuilderReport';
19
+ import { GRAPH_MANAGER_EVENT } from './GraphManagerEvent';
20
+
21
+ type GraphBuilt_TelemetryData = {
22
+ timings: Record<string, number>;
23
+ dependencies: GraphBuilderReport;
24
+ graph: GraphBuilderReport;
25
+ generations?: GraphBuilderReport;
26
+ };
27
+
28
+ export class GraphManagerTelemetry {
29
+ static logEvent_GraphInitialized(
30
+ telemetryService: TelemetryService,
31
+ data: GraphBuilt_TelemetryData,
32
+ ): void {
33
+ telemetryService.logEvent(GRAPH_MANAGER_EVENT.GRAPH_INITIALIZED, data);
34
+ }
35
+ }
package/src/index.ts CHANGED
@@ -184,8 +184,10 @@ export {
184
184
  AbstractPureGraphManager,
185
185
  type GraphBuilderOptions,
186
186
  } from './graphManager/AbstractPureGraphManager';
187
+ export { GraphBuilderReport } from './graphManager/GraphBuilderReport';
188
+ export { GraphManagerTelemetry } from './graphManager/GraphManagerTelemetry';
187
189
  export * from './graphManager/GraphManagerUtils';
188
- export { GRAPH_MANAGER_LOG_EVENT } from './graphManager/GraphManagerLogEvent';
190
+ export * from './graphManager/GraphManagerEvent';
189
191
  export * from './graphManager/DSLMapping_PureGraphManagerPlugin_Extension';
190
192
  export * from './graphManager/DSLGenerationSpecification_PureGraphManagerPlugin_Extension';
191
193
  export {
@@ -239,11 +241,9 @@ export {
239
241
  V1_serializeRawValueSpecification,
240
242
  } from './models/protocols/pure/v1/transformation/pureProtocol/serializationHelpers/V1_RawValueSpecificationSerializationHelper';
241
243
  export { V1_transformPropertyReference } from './models/protocols/pure/v1/transformation/pureGraph/from/V1_MappingTransformer';
242
- export {
243
- V1_EngineServerClient,
244
- V1_ENGINE_LOG_EVENT,
245
- } from './models/protocols/pure/v1/engine/V1_EngineServerClient';
244
+ export { V1_EngineServerClient } from './models/protocols/pure/v1/engine/V1_EngineServerClient';
246
245
  export { V1_Engine } from './models/protocols/pure/v1/engine/V1_Engine';
246
+ export * from './models/protocols/pure/v1/engine/V1_EngineEvent';
247
247
  export { V1_deserializePureModelContextData as V1_jsonToPureModelContextData } from './models/protocols/pure/v1/transformation/pureProtocol/V1_PureProtocolSerialization';
248
248
  export {
249
249
  V1_propertyPointerModelSchema,