@finos/legend-extension-dsl-persistence 3.0.0 → 3.0.3

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 (44) hide show
  1. package/lib/graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts +2 -4
  2. package/lib/graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts.map +1 -1
  3. package/lib/graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Sink.js +1 -8
  4. package/lib/graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Sink.js.map +1 -1
  5. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts +6 -1
  6. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts.map +1 -1
  7. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin.js +68 -1
  8. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin.js.map +1 -1
  9. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.d.ts +10 -0
  10. package/lib/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.d.ts.map +1 -1
  11. package/lib/graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts +1 -4
  12. package/lib/graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts.map +1 -1
  13. package/lib/graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js +1 -8
  14. package/lib/graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js.map +1 -1
  15. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.d.ts +2 -2
  16. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.d.ts.map +1 -1
  17. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js +9 -24
  18. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js.map +1 -1
  19. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.d.ts +2 -2
  20. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.d.ts.map +1 -1
  21. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js +11 -26
  22. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js.map +1 -1
  23. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.js +1 -1
  24. package/lib/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.js.map +1 -1
  25. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts +12 -3
  26. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts.map +1 -1
  27. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js +24 -23
  28. package/lib/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js.map +1 -1
  29. package/lib/index.css +1 -1
  30. package/lib/index.d.ts +2 -0
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +2 -0
  33. package/lib/index.js.map +1 -1
  34. package/lib/package.json +2 -2
  35. package/package.json +9 -9
  36. package/src/graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Sink.ts +2 -10
  37. package/src/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin.ts +96 -1
  38. package/src/graphManager/protocol/pure/DSLPersistence_PureProtocolProcessorPlugin_Extension.ts +32 -0
  39. package/src/graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.ts +2 -10
  40. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.ts +19 -39
  41. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.ts +23 -35
  42. package/src/graphManager/protocol/pure/v1/transformation/pureGraph/to/V1_PersistenceContextBuilder.ts +1 -1
  43. package/src/graphManager/protocol/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.ts +39 -21
  44. package/src/index.ts +2 -0
@@ -15,7 +15,9 @@
15
15
  */
16
16
 
17
17
  import type { V1_PersistencePlatform } from './v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.js';
18
+ import type { V1_Trigger } from './v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
18
19
  import type { PersistencePlatform } from '../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.js';
20
+ import type { Trigger } from '../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
19
21
  import type {
20
22
  PureProtocolProcessorPlugin,
21
23
  V1_GraphBuilderContext,
@@ -43,6 +45,26 @@ export type V1_PersistencePlatformProtocolDeserializer = (
43
45
  json: PlainObject<V1_PersistencePlatform>,
44
46
  ) => V1_PersistencePlatform | undefined;
45
47
 
48
+ // types: trigger
49
+
50
+ export type V1_TriggerBuilder = (
51
+ protocol: V1_Trigger,
52
+ context: V1_GraphBuilderContext,
53
+ ) => Trigger | undefined;
54
+
55
+ export type V1_TriggerTransformer = (
56
+ metamodel: Trigger,
57
+ context: V1_GraphTransformerContext,
58
+ ) => V1_Trigger | undefined;
59
+
60
+ export type V1_TriggerProtocolSerializer = (
61
+ protocol: V1_Trigger,
62
+ ) => PlainObject<V1_Trigger> | undefined;
63
+
64
+ export type V1_TriggerProtocolDeserializer = (
65
+ json: PlainObject<V1_Trigger>,
66
+ ) => V1_Trigger | undefined;
67
+
46
68
  export interface DSLPersistence_PureProtocolProcessorPlugin_Extension
47
69
  extends PureProtocolProcessorPlugin {
48
70
  // extension hooks: persistence platform
@@ -54,4 +76,14 @@ export interface DSLPersistence_PureProtocolProcessorPlugin_Extension
54
76
  V1_getExtraPersistencePlatformProtocolSerializers?(): V1_PersistencePlatformProtocolSerializer[];
55
77
 
56
78
  V1_getExtraPersistencePlatformProtocolDeserializers?(): V1_PersistencePlatformProtocolDeserializer[];
79
+
80
+ // extension hooks: trigger
81
+
82
+ V1_getExtraTriggerBuilders?(): V1_TriggerBuilder[];
83
+
84
+ V1_getExtraTriggerTransformers?(): V1_TriggerTransformer[];
85
+
86
+ V1_getExtraTriggerProtocolSerializers?(): V1_TriggerProtocolSerializer[];
87
+
88
+ V1_getExtraTriggerProtocolDeserializers?(): V1_TriggerProtocolDeserializer[];
57
89
  }
@@ -15,7 +15,6 @@
15
15
  */
16
16
 
17
17
  import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../../graph/DSLPersistence_HashUtils.js';
18
- import type { V1_Connection } from '@finos/legend-graph';
19
18
  import { type Hashable, hashArray } from '@finos/legend-shared';
20
19
 
21
20
  export abstract class V1_Sink implements Hashable {
@@ -23,30 +22,23 @@ export abstract class V1_Sink implements Hashable {
23
22
  }
24
23
 
25
24
  export class V1_RelationalSink extends V1_Sink implements Hashable {
26
- //TODO: ledav -- make required once persistence changes are rolled out in engine
27
- database?: string;
28
- //TODO: ledav -- remove once persistence changes are rolled out in engine
29
- connection?: V1_Connection;
25
+ database!: string;
30
26
 
31
27
  override get hashCode(): string {
32
28
  return hashArray([
33
29
  PERSISTENCE_HASH_STRUCTURE.RELATIONAL_SINK,
34
- this.database ?? '',
35
- this.connection ?? '',
30
+ this.database,
36
31
  ]);
37
32
  }
38
33
  }
39
34
 
40
35
  export class V1_ObjectStorageSink extends V1_Sink implements Hashable {
41
36
  binding!: string;
42
- //TODO: ledav -- remove once persistence changes are rolled out in engine
43
- connection?: V1_Connection;
44
37
 
45
38
  override get hashCode(): string {
46
39
  return hashArray([
47
40
  PERSISTENCE_HASH_STRUCTURE.OBJECT_STORAGE_SINK,
48
41
  this.binding,
49
- this.connection ?? '',
50
42
  ]);
51
43
  }
52
44
  }
@@ -79,11 +79,7 @@ import {
79
79
  type TargetShape,
80
80
  TransactionScope,
81
81
  } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js';
82
- import {
83
- CronTrigger,
84
- ManualTrigger,
85
- type Trigger,
86
- } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
82
+ import type { Trigger } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
87
83
  import {
88
84
  type V1_Auditing,
89
85
  V1_DateTimeAuditing,
@@ -149,15 +145,11 @@ import {
149
145
  type V1_TargetShape,
150
146
  V1_TransactionScope,
151
147
  } from '../../../model/packageableElements/persistence/V1_DSLPersistence_TargetShape.js';
152
- import {
153
- V1_CronTrigger,
154
- V1_ManualTrigger,
155
- type V1_Trigger,
156
- } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
148
+ import type { V1_Trigger } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
149
+ import type { DSLPersistence_PureProtocolProcessorPlugin_Extension } from '../../../../DSLPersistence_PureProtocolProcessorPlugin_Extension.js';
157
150
  import {
158
151
  type V1_GraphTransformerContext,
159
152
  V1_initPackageableElement,
160
- V1_transformConnection,
161
153
  } from '@finos/legend-graph';
162
154
  import { UnsupportedOperationError } from '@finos/legend-shared';
163
155
 
@@ -169,18 +161,22 @@ export const V1_transformTrigger = (
169
161
  element: Trigger,
170
162
  context: V1_GraphTransformerContext,
171
163
  ): V1_Trigger => {
172
- if (element instanceof CronTrigger) {
173
- const protocol = new V1_CronTrigger();
174
- protocol.minutes = element.minutes;
175
- protocol.hours = element.hours;
176
- protocol.dayOfMonth = element.dayOfMonth;
177
- protocol.month = element.month;
178
- protocol.dayOfWeek = element.dayOfWeek;
179
- return protocol;
180
- } else if (element instanceof ManualTrigger) {
181
- return new V1_ManualTrigger();
164
+ const extraTriggerTransformers = context.plugins.flatMap(
165
+ (plugin) =>
166
+ (
167
+ plugin as DSLPersistence_PureProtocolProcessorPlugin_Extension
168
+ ).V1_getExtraTriggerTransformers?.() ?? [],
169
+ );
170
+ for (const transformer of extraTriggerTransformers) {
171
+ const protocol = transformer(element, context);
172
+ if (protocol) {
173
+ return protocol;
174
+ }
182
175
  }
183
- throw new UnsupportedOperationError(`Can't transform trigger '${element}'`);
176
+ throw new UnsupportedOperationError(
177
+ `Can't transform trigger: no compatible transformer available from plugins`,
178
+ element,
179
+ );
184
180
  };
185
181
 
186
182
  /**********
@@ -192,16 +188,7 @@ export const V1_transformRelationalSink = (
192
188
  context: V1_GraphTransformerContext,
193
189
  ): V1_RelationalSink => {
194
190
  const protocol = new V1_RelationalSink();
195
- if (element.database) {
196
- protocol.database = element.database.value.path;
197
- }
198
- if (element.connection) {
199
- protocol.connection = V1_transformConnection(
200
- element.connection,
201
- true,
202
- context,
203
- );
204
- }
191
+ protocol.database = element.database.value.path;
205
192
  return protocol;
206
193
  };
207
194
 
@@ -211,13 +198,6 @@ export const V1_transformObjectStorageSink = (
211
198
  ): V1_ObjectStorageSink => {
212
199
  const protocol = new V1_ObjectStorageSink();
213
200
  protocol.binding = element.binding.value.path;
214
- if (element.connection) {
215
- protocol.connection = V1_transformConnection(
216
- element.connection,
217
- true,
218
- context,
219
- );
220
- }
221
201
  return protocol;
222
202
  };
223
203
 
@@ -79,11 +79,7 @@ import {
79
79
  type V1_TargetShape,
80
80
  V1_TransactionScope,
81
81
  } from '../../../model/packageableElements/persistence/V1_DSLPersistence_TargetShape.js';
82
- import {
83
- V1_CronTrigger,
84
- V1_ManualTrigger,
85
- type V1_Trigger,
86
- } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
82
+ import type { V1_Trigger } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
87
83
  import {
88
84
  type Auditing,
89
85
  DateTimeAuditing,
@@ -148,19 +144,15 @@ import {
148
144
  type TargetShape,
149
145
  TransactionScope,
150
146
  } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js';
151
- import {
152
- CronTrigger,
153
- ManualTrigger,
154
- type Trigger,
155
- } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
156
- import { getOwnPersistence } from '../../../../../../../graphManager/DSLPersistence_GraphManagerHelper.js';
147
+ import type { Trigger } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
148
+ import { getOwnPersistence } from '../../../../../../DSLPersistence_GraphManagerHelper.js';
149
+ import type { DSLPersistence_PureProtocolProcessorPlugin_Extension } from '../../../../DSLPersistence_PureProtocolProcessorPlugin_Extension.js';
157
150
  import {
158
151
  type Binding,
159
152
  type Database,
160
153
  type PackageableElementImplicitReference,
161
154
  type V1_GraphBuilderContext,
162
155
  V1_buildFullPath,
163
- V1_buildConnection,
164
156
  } from '@finos/legend-graph';
165
157
  import {
166
158
  guaranteeNonEmptyString,
@@ -175,18 +167,22 @@ export const V1_buildTrigger = (
175
167
  protocol: V1_Trigger,
176
168
  context: V1_GraphBuilderContext,
177
169
  ): Trigger => {
178
- if (protocol instanceof V1_CronTrigger) {
179
- const trigger = new CronTrigger();
180
- trigger.minutes = protocol.minutes;
181
- trigger.hours = protocol.hours;
182
- trigger.dayOfMonth = protocol.dayOfMonth;
183
- trigger.month = protocol.month;
184
- trigger.dayOfWeek = protocol.dayOfWeek;
185
- return new CronTrigger();
186
- } else if (protocol instanceof V1_ManualTrigger) {
187
- return new ManualTrigger();
170
+ const extraTriggerBuilders = context.extensions.plugins.flatMap(
171
+ (plugin) =>
172
+ (
173
+ plugin as DSLPersistence_PureProtocolProcessorPlugin_Extension
174
+ ).V1_getExtraTriggerBuilders?.() ?? [],
175
+ );
176
+ for (const builder of extraTriggerBuilders) {
177
+ const metamodel = builder(protocol, context);
178
+ if (metamodel) {
179
+ return metamodel;
180
+ }
188
181
  }
189
- throw new UnsupportedOperationError(`Can't build trigger`, protocol);
182
+ throw new UnsupportedOperationError(
183
+ `Can't build trigger: no compatible builder available from plugins`,
184
+ protocol,
185
+ );
190
186
  };
191
187
 
192
188
  /**********
@@ -198,15 +194,10 @@ export const V1_buildRelationalSink = (
198
194
  context: V1_GraphBuilderContext,
199
195
  ): RelationalSink => {
200
196
  const sink = new RelationalSink();
201
- if (protocol.database) {
202
- sink.database = context.resolveElement(
203
- protocol.database,
204
- false,
205
- ) as PackageableElementImplicitReference<Database>;
206
- }
207
- if (protocol.connection) {
208
- sink.connection = V1_buildConnection(protocol.connection, context);
209
- }
197
+ sink.database = context.resolveElement(
198
+ protocol.database,
199
+ false,
200
+ ) as PackageableElementImplicitReference<Database>;
210
201
  return sink;
211
202
  };
212
203
 
@@ -219,9 +210,6 @@ export const V1_buildObjectStorageSink = (
219
210
  protocol.binding,
220
211
  false,
221
212
  ) as PackageableElementImplicitReference<Binding>;
222
- if (protocol.connection) {
223
- sink.connection = V1_buildConnection(protocol.connection, context);
224
- }
225
213
  return sink;
226
214
  };
227
215
 
@@ -36,7 +36,7 @@ import {
36
36
  ServiceParameter,
37
37
  type ServiceParameterValue,
38
38
  } from '../../../../../../../graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_ServiceParameter.js';
39
- import { getOwnPersistenceContext } from '../../../../../../../graphManager/DSLPersistence_GraphManagerHelper.js';
39
+ import { getOwnPersistenceContext } from '../../../../../../DSLPersistence_GraphManagerHelper.js';
40
40
  import type { DSLPersistence_PureProtocolProcessorPlugin_Extension } from '../../../../DSLPersistence_PureProtocolProcessorPlugin_Extension.js';
41
41
  import {
42
42
  type PackageableElementImplicitReference,
@@ -83,6 +83,7 @@ import {
83
83
  type V1_Persister,
84
84
  V1_StreamingPersister,
85
85
  } from '../../model/packageableElements/persistence/V1_DSLPersistence_Persister.js';
86
+ import type { DSLPersistence_PureProtocolProcessorPlugin_Extension } from '../../../DSLPersistence_PureProtocolProcessorPlugin_Extension.js';
86
87
  import type { PureProtocolProcessorPlugin } from '@finos/legend-graph';
87
88
  import {
88
89
  deserializeArray,
@@ -691,7 +692,7 @@ const V1_relationalSinkModelSchema = (
691
692
  ): ModelSchema<V1_RelationalSink> =>
692
693
  createModelSchema(V1_RelationalSink, {
693
694
  _type: usingConstantValueSchema(V1_SinkType.RELATIONAL_SINK),
694
- database: optional(primitive()),
695
+ database: primitive(),
695
696
  });
696
697
 
697
698
  const V1_objectStorageSinkModelSchema = (
@@ -699,7 +700,7 @@ const V1_objectStorageSinkModelSchema = (
699
700
  ): ModelSchema<V1_ObjectStorageSink> =>
700
701
  createModelSchema(V1_ObjectStorageSink, {
701
702
  _type: usingConstantValueSchema(V1_SinkType.OBJECT_STORAGE_SINK),
702
- binding: optional(primitive()),
703
+ binding: primitive(),
703
704
  });
704
705
 
705
706
  export const V1_serializeSink = (
@@ -970,16 +971,16 @@ export const V1_deserializePersister = (
970
971
  * trigger
971
972
  **********/
972
973
 
973
- enum V1_TriggerType {
974
+ export enum V1_TriggerType {
974
975
  MANUAL_TRIGGER = 'manualTrigger',
975
976
  CRON_TRIGGER = 'cronTrigger',
976
977
  }
977
978
 
978
- const V1_manualTriggerModelSchema = createModelSchema(V1_ManualTrigger, {
979
+ export const V1_manualTriggerModelSchema = createModelSchema(V1_ManualTrigger, {
979
980
  _type: usingConstantValueSchema(V1_TriggerType.MANUAL_TRIGGER),
980
981
  });
981
982
 
982
- const V1_cronTriggerModelSchema = createModelSchema(V1_CronTrigger, {
983
+ export const V1_cronTriggerModelSchema = createModelSchema(V1_CronTrigger, {
983
984
  _type: usingConstantValueSchema(V1_TriggerType.CRON_TRIGGER),
984
985
  minutes: primitive(),
985
986
  hours: primitive(),
@@ -990,28 +991,45 @@ const V1_cronTriggerModelSchema = createModelSchema(V1_CronTrigger, {
990
991
 
991
992
  export const V1_serializeTrigger = (
992
993
  protocol: V1_Trigger,
994
+ plugins: PureProtocolProcessorPlugin[],
993
995
  ): PlainObject<V1_Trigger> => {
994
- if (protocol instanceof V1_ManualTrigger) {
995
- return serialize(V1_manualTriggerModelSchema, protocol);
996
- } else if (protocol instanceof V1_CronTrigger) {
997
- return serialize(V1_cronTriggerModelSchema, protocol);
996
+ const extraTriggerProtocolSerializers = plugins.flatMap(
997
+ (plugin) =>
998
+ (
999
+ plugin as DSLPersistence_PureProtocolProcessorPlugin_Extension
1000
+ ).V1_getExtraTriggerProtocolSerializers?.() ?? [],
1001
+ );
1002
+ for (const serializer of extraTriggerProtocolSerializers) {
1003
+ const triggerProtocolJson = serializer(protocol);
1004
+ if (triggerProtocolJson) {
1005
+ return triggerProtocolJson;
1006
+ }
998
1007
  }
999
- throw new UnsupportedOperationError(`Can't serialize trigger`, protocol);
1008
+ throw new UnsupportedOperationError(
1009
+ `Can't serialize trigger: no compatible serializer available from plugins`,
1010
+ protocol,
1011
+ );
1000
1012
  };
1001
1013
 
1002
1014
  export const V1_deserializeTrigger = (
1003
1015
  json: PlainObject<V1_Trigger>,
1016
+ plugins: PureProtocolProcessorPlugin[],
1004
1017
  ): V1_Trigger => {
1005
- switch (json._type) {
1006
- case V1_TriggerType.MANUAL_TRIGGER:
1007
- return deserialize(V1_manualTriggerModelSchema, json);
1008
- case V1_TriggerType.CRON_TRIGGER:
1009
- return deserialize(V1_cronTriggerModelSchema, json);
1010
- default:
1011
- throw new UnsupportedOperationError(
1012
- `Can't deserialize trigger '${json._type}'`,
1013
- );
1018
+ const extraTriggerProtocolDeserializers = plugins.flatMap(
1019
+ (plugin) =>
1020
+ (
1021
+ plugin as DSLPersistence_PureProtocolProcessorPlugin_Extension
1022
+ ).V1_getExtraTriggerProtocolDeserializers?.() ?? [],
1023
+ );
1024
+ for (const deserializer of extraTriggerProtocolDeserializers) {
1025
+ const triggerProtocol = deserializer(json);
1026
+ if (triggerProtocol) {
1027
+ return triggerProtocol;
1028
+ }
1014
1029
  }
1030
+ throw new UnsupportedOperationError(
1031
+ `Can't deserialize trigger of type '${json._type}': no compatible deserializer available from plugins`,
1032
+ );
1015
1033
  };
1016
1034
 
1017
1035
  /**********
@@ -1038,7 +1056,7 @@ export const V1_persistenceModelSchema = (
1038
1056
  ),
1039
1057
  service: primitive(),
1040
1058
  trigger: custom(
1041
- (val) => V1_serializeTrigger(val),
1042
- (val) => V1_deserializeTrigger(val),
1059
+ (val) => V1_serializeTrigger(val, plugins),
1060
+ (val) => V1_deserializeTrigger(val, plugins),
1043
1061
  ),
1044
1062
  });
package/src/index.ts CHANGED
@@ -23,11 +23,13 @@ export { DSLPersistence_LegendStudioApplicationPlugin } from './components/studi
23
23
  export { Persistence } from './graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js';
24
24
  export { PersistenceContext } from './graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_PersistenceContext.js';
25
25
  export { PersistencePlatform } from './graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_PersistencePlatform.js';
26
+ export { Trigger } from './graph/metamodel/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js';
26
27
 
27
28
  // v1 protocols
28
29
  export { V1_Persistence } from './graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.js';
29
30
  export { V1_PersistenceContext } from './graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistenceContext.js';
30
31
  export { V1_PersistencePlatform } from './graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_PersistencePlatform.js';
32
+ export { V1_Trigger } from './graphManager/protocol/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.js';
31
33
 
32
34
  // ---------- TRANSFORMATION ----------
33
35