@finos/legend-extension-dsl-persistence 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/lib/DSLPersistence_Extension.d.ts +22 -0
  4. package/lib/DSLPersistence_Extension.d.ts.map +1 -0
  5. package/lib/DSLPersistence_Extension.js +31 -0
  6. package/lib/DSLPersistence_Extension.js.map +1 -0
  7. package/lib/components/studio/DSLPersistence_LegendStudioPlugin.d.ts +27 -0
  8. package/lib/components/studio/DSLPersistence_LegendStudioPlugin.d.ts.map +1 -0
  9. package/lib/components/studio/DSLPersistence_LegendStudioPlugin.js +84 -0
  10. package/lib/components/studio/DSLPersistence_LegendStudioPlugin.js.map +1 -0
  11. package/lib/graph/DSLPersistence_PureGraphPlugin.d.ts +22 -0
  12. package/lib/graph/DSLPersistence_PureGraphPlugin.d.ts.map +1 -0
  13. package/lib/graph/DSLPersistence_PureGraphPlugin.js +27 -0
  14. package/lib/graph/DSLPersistence_PureGraphPlugin.js.map +1 -0
  15. package/lib/graphManager/DSLPersistence_GraphManagerHelper.d.ts +19 -0
  16. package/lib/graphManager/DSLPersistence_GraphManagerHelper.d.ts.map +1 -0
  17. package/lib/graphManager/DSLPersistence_GraphManagerHelper.js +18 -0
  18. package/lib/graphManager/DSLPersistence_GraphManagerHelper.js.map +1 -0
  19. package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.d.ts +24 -0
  20. package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.d.ts.map +1 -0
  21. package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.js +53 -0
  22. package/lib/graphManager/DSLPersistence_PureGraphManagerPlugin.js.map +1 -0
  23. package/lib/graphManager/action/changeDetection/DSLPersistence_ObserverHelper.d.ts +18 -0
  24. package/lib/graphManager/action/changeDetection/DSLPersistence_ObserverHelper.d.ts.map +1 -0
  25. package/lib/graphManager/action/changeDetection/DSLPersistence_ObserverHelper.js +30 -0
  26. package/lib/graphManager/action/changeDetection/DSLPersistence_ObserverHelper.js.map +1 -0
  27. package/lib/index.css +17 -0
  28. package/lib/index.css.map +1 -0
  29. package/lib/index.d.ts +18 -0
  30. package/lib/index.d.ts.map +1 -0
  31. package/lib/index.js +18 -0
  32. package/lib/index.js.map +1 -0
  33. package/lib/models/DSLPersistence_ModelUtils.d.ts +52 -0
  34. package/lib/models/DSLPersistence_ModelUtils.d.ts.map +1 -0
  35. package/lib/models/DSLPersistence_ModelUtils.js +65 -0
  36. package/lib/models/DSLPersistence_ModelUtils.js.map +1 -0
  37. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing.d.ts +27 -0
  38. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing.d.ts.map +1 -0
  39. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing.js +34 -0
  40. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing.js.map +1 -0
  41. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy.d.ts +34 -0
  42. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy.d.ts.map +1 -0
  43. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy.js +50 -0
  44. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy.js.map +1 -0
  45. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode.d.ts +57 -0
  46. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode.d.ts.map +1 -0
  47. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode.js +98 -0
  48. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode.js.map +1 -0
  49. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy.d.ts +28 -0
  50. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy.d.ts.map +1 -0
  51. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy.js +36 -0
  52. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy.js.map +1 -0
  53. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning.d.ts +58 -0
  54. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning.d.ts.map +1 -0
  55. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning.js +97 -0
  56. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning.js.map +1 -0
  57. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier.d.ts +32 -0
  58. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier.d.ts.map +1 -0
  59. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier.js +44 -0
  60. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier.js.map +1 -0
  61. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.d.ts +30 -0
  62. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.d.ts.map +1 -0
  63. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js +39 -0
  64. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.js.map +1 -0
  65. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister.d.ts +33 -0
  66. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister.d.ts.map +1 -0
  67. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister.js +42 -0
  68. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister.js.map +1 -0
  69. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts +30 -0
  70. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.d.ts.map +1 -0
  71. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.js +40 -0
  72. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.js.map +1 -0
  73. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.d.ts +46 -0
  74. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.d.ts.map +1 -0
  75. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js +68 -0
  76. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.js.map +1 -0
  77. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger.d.ts +31 -0
  78. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger.d.ts.map +1 -0
  79. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js +42 -0
  80. package/lib/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger.js.map +1 -0
  81. package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts +26 -0
  82. package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.d.ts.map +1 -0
  83. package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.js +90 -0
  84. package/lib/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.js.map +1 -0
  85. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Auditing.d.ts +27 -0
  86. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Auditing.d.ts.map +1 -0
  87. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Auditing.js +34 -0
  88. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Auditing.js.map +1 -0
  89. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy.d.ts +34 -0
  90. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy.d.ts.map +1 -0
  91. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy.js +50 -0
  92. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy.js.map +1 -0
  93. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_IngestMode.d.ts +57 -0
  94. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_IngestMode.d.ts.map +1 -0
  95. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_IngestMode.js +98 -0
  96. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_IngestMode.js.map +1 -0
  97. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy.d.ts +28 -0
  98. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy.d.ts.map +1 -0
  99. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy.js +36 -0
  100. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy.js.map +1 -0
  101. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Milestoning.d.ts +58 -0
  102. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Milestoning.d.ts.map +1 -0
  103. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Milestoning.js +97 -0
  104. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Milestoning.js.map +1 -0
  105. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Notifier.d.ts +32 -0
  106. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Notifier.d.ts.map +1 -0
  107. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Notifier.js +44 -0
  108. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Notifier.js.map +1 -0
  109. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.d.ts +30 -0
  110. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.d.ts.map +1 -0
  111. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.js +39 -0
  112. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.js.map +1 -0
  113. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persister.d.ts +33 -0
  114. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persister.d.ts.map +1 -0
  115. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persister.js +42 -0
  116. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persister.js.map +1 -0
  117. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts +30 -0
  118. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.d.ts.map +1 -0
  119. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js +40 -0
  120. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.js.map +1 -0
  121. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_TargetShape.d.ts +45 -0
  122. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_TargetShape.d.ts.map +1 -0
  123. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_TargetShape.js +68 -0
  124. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_TargetShape.js.map +1 -0
  125. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.d.ts +31 -0
  126. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.d.ts.map +1 -0
  127. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.js +42 -0
  128. package/lib/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.js.map +1 -0
  129. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.d.ts +98 -0
  130. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.d.ts.map +1 -0
  131. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js +343 -0
  132. package/lib/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.js.map +1 -0
  133. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.d.ts +101 -0
  134. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.d.ts.map +1 -0
  135. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js +347 -0
  136. package/lib/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.js.map +1 -0
  137. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts +24 -0
  138. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.d.ts.map +1 -0
  139. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js +565 -0
  140. package/lib/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.js.map +1 -0
  141. package/lib/package.json +77 -0
  142. package/package.json +77 -0
  143. package/src/DSLPersistence_Extension.ts +36 -0
  144. package/src/components/studio/DSLPersistence_LegendStudioPlugin.tsx +120 -0
  145. package/src/graph/DSLPersistence_PureGraphPlugin.ts +30 -0
  146. package/src/graphManager/DSLPersistence_GraphManagerHelper.ts +25 -0
  147. package/src/graphManager/DSLPersistence_PureGraphManagerPlugin.ts +68 -0
  148. package/src/graphManager/action/changeDetection/DSLPersistence_ObserverHelper.ts +39 -0
  149. package/src/index.ts +18 -0
  150. package/src/models/DSLPersistence_ModelUtils.ts +76 -0
  151. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing.ts +39 -0
  152. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy.ts +70 -0
  153. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode.ts +123 -0
  154. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy.ts +44 -0
  155. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning.ts +136 -0
  156. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier.ts +52 -0
  157. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence.ts +52 -0
  158. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister.ts +51 -0
  159. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink.ts +51 -0
  160. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape.ts +78 -0
  161. package/src/models/metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger.ts +47 -0
  162. package/src/models/protocols/pure/DSLPersistence_PureProtocolProcessorPlugin.ts +138 -0
  163. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Auditing.ts +39 -0
  164. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy.ts +70 -0
  165. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_IngestMode.ts +123 -0
  166. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy.ts +47 -0
  167. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Milestoning.ts +136 -0
  168. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Notifier.ts +52 -0
  169. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence.ts +50 -0
  170. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Persister.ts +51 -0
  171. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Sink.ts +47 -0
  172. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_TargetShape.ts +77 -0
  173. package/src/models/protocols/pure/v1/model/packageableElements/persistence/V1_DSLPersistence_Trigger.ts +47 -0
  174. package/src/models/protocols/pure/v1/transformation/pureGraph/from/V1_PersistenceTransformer.ts +604 -0
  175. package/src/models/protocols/pure/v1/transformation/pureGraph/to/V1_PersistenceBuilder.ts +616 -0
  176. package/src/models/protocols/pure/v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper.ts +971 -0
  177. package/tsconfig.json +85 -0
  178. package/tsconfig.package.json +41 -0
@@ -0,0 +1,47 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ export abstract class Trigger implements Hashable {
21
+ abstract get hashCode(): string;
22
+ }
23
+
24
+ export class ManualTrigger extends Trigger implements Hashable {
25
+ override get hashCode(): string {
26
+ return hashArray([PERSISTENCE_HASH_STRUCTURE.MANUAL_TRIGGER]);
27
+ }
28
+ }
29
+
30
+ export class CronTrigger extends Trigger implements Hashable {
31
+ minutes!: string;
32
+ hours!: string;
33
+ dayOfMonth!: string;
34
+ month!: string;
35
+ dayOfWeek!: string;
36
+
37
+ override get hashCode(): string {
38
+ return hashArray([
39
+ PERSISTENCE_HASH_STRUCTURE.CRON_TRIGGER,
40
+ this.minutes,
41
+ this.hours,
42
+ this.dayOfMonth,
43
+ this.month,
44
+ this.dayOfWeek,
45
+ ]);
46
+ }
47
+ }
@@ -0,0 +1,138 @@
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 packageJson from '../../../../package.json';
18
+
19
+ import { Persistence } from '../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence';
20
+ import { V1_Persistence } from './v1/model/packageableElements/persistence/V1_DSLPersistence_Persistence';
21
+ import {
22
+ V1_PERSISTENCE_ELEMENT_PROTOCOL_TYPE,
23
+ V1_persistenceModelSchema,
24
+ } from './v1/transformation/pureProtocol/V1_DSLPersistence_ProtocolHelper';
25
+ import { V1_buildPersistence } from './v1/transformation/pureGraph/to/V1_PersistenceBuilder';
26
+ import { V1_transformPersistence } from './v1/transformation/pureGraph/from/V1_PersistenceTransformer';
27
+ import {
28
+ type PackageableElement,
29
+ PureProtocolProcessorPlugin,
30
+ V1_ElementBuilder,
31
+ type V1_ElementProtocolClassifierPathGetter,
32
+ type V1_ElementProtocolDeserializer,
33
+ type V1_ElementProtocolSerializer,
34
+ type V1_ElementTransformer,
35
+ type V1_GraphBuilderContext,
36
+ type V1_GraphTransformerContext,
37
+ type V1_PackageableElement,
38
+ } from '@finos/legend-graph';
39
+ import { assertType, type PlainObject } from '@finos/legend-shared';
40
+ import { deserialize, serialize } from 'serializr';
41
+
42
+ export const PERSISTENCE_ELEMENT_CLASSIFIER_PATH =
43
+ 'meta::pure::persistence::metamodel::Persistence';
44
+
45
+ export class DSLPersistence_PureProtocolProcessorPlugin extends PureProtocolProcessorPlugin {
46
+ constructor() {
47
+ super(
48
+ packageJson.extensions.pureProtocolProcessorPlugin,
49
+ packageJson.version,
50
+ );
51
+ }
52
+
53
+ override V1_getExtraElementBuilders(): V1_ElementBuilder<V1_PackageableElement>[] {
54
+ return [
55
+ new V1_ElementBuilder<V1_Persistence>({
56
+ elementClassName: 'Persistence',
57
+ _class: V1_Persistence,
58
+ firstPass: (
59
+ elementProtocol: V1_PackageableElement,
60
+ context: V1_GraphBuilderContext,
61
+ ): PackageableElement => {
62
+ assertType(elementProtocol, V1_Persistence);
63
+ const element = new Persistence(elementProtocol.name);
64
+ const path = context.currentSubGraph.buildPath(
65
+ elementProtocol.package,
66
+ elementProtocol.name,
67
+ );
68
+ context.currentSubGraph.setOwnElementInExtension(
69
+ path,
70
+ element,
71
+ Persistence,
72
+ );
73
+ return element;
74
+ },
75
+ secondPass: (
76
+ elementProtocol: V1_PackageableElement,
77
+ context: V1_GraphBuilderContext,
78
+ ): void => {
79
+ assertType(elementProtocol, V1_Persistence);
80
+ V1_buildPersistence(elementProtocol, context);
81
+ },
82
+ }),
83
+ ];
84
+ }
85
+
86
+ override V1_getExtraElementClassifierPathGetters(): V1_ElementProtocolClassifierPathGetter[] {
87
+ return [
88
+ (elementProtocol: V1_PackageableElement): string | undefined => {
89
+ if (elementProtocol instanceof V1_Persistence) {
90
+ return PERSISTENCE_ELEMENT_CLASSIFIER_PATH;
91
+ }
92
+ return undefined;
93
+ },
94
+ ];
95
+ }
96
+
97
+ override V1_getExtraElementProtocolSerializers(): V1_ElementProtocolSerializer[] {
98
+ return [
99
+ (
100
+ elementProtocol: V1_PackageableElement,
101
+ plugins: PureProtocolProcessorPlugin[],
102
+ ): PlainObject<V1_PackageableElement> | undefined => {
103
+ if (elementProtocol instanceof V1_Persistence) {
104
+ return serialize(V1_persistenceModelSchema(plugins), elementProtocol);
105
+ }
106
+ return undefined;
107
+ },
108
+ ];
109
+ }
110
+
111
+ override V1_getExtraElementProtocolDeserializers(): V1_ElementProtocolDeserializer[] {
112
+ return [
113
+ (
114
+ json: PlainObject<V1_PackageableElement>,
115
+ plugins: PureProtocolProcessorPlugin[],
116
+ ): V1_PackageableElement | undefined => {
117
+ if (json._type === V1_PERSISTENCE_ELEMENT_PROTOCOL_TYPE) {
118
+ return deserialize(V1_persistenceModelSchema(plugins), json);
119
+ }
120
+ return undefined;
121
+ },
122
+ ];
123
+ }
124
+
125
+ override V1_getExtraElementTransformers(): V1_ElementTransformer[] {
126
+ return [
127
+ (
128
+ metamodel: PackageableElement,
129
+ context: V1_GraphTransformerContext,
130
+ ): V1_PackageableElement | undefined => {
131
+ if (metamodel instanceof Persistence) {
132
+ return V1_transformPersistence(metamodel, context);
133
+ }
134
+ return undefined;
135
+ },
136
+ ];
137
+ }
138
+ }
@@ -0,0 +1,39 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ export abstract class V1_Auditing implements Hashable {
21
+ abstract get hashCode(): string;
22
+ }
23
+
24
+ export class V1_NoAuditing extends V1_Auditing implements Hashable {
25
+ override get hashCode(): string {
26
+ return hashArray([PERSISTENCE_HASH_STRUCTURE.NO_AUDITING]);
27
+ }
28
+ }
29
+
30
+ export class V1_DateTimeAuditing extends V1_Auditing implements Hashable {
31
+ dateTimeField!: string;
32
+
33
+ override get hashCode(): string {
34
+ return hashArray([
35
+ PERSISTENCE_HASH_STRUCTURE.DATE_TIME_AUDITING,
36
+ this.dateTimeField,
37
+ ]);
38
+ }
39
+ }
@@ -0,0 +1,70 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ export abstract class V1_DeduplicationStrategy implements Hashable {
21
+ abstract get hashCode(): string;
22
+ }
23
+
24
+ export class V1_NoDeduplicationStrategy
25
+ extends V1_DeduplicationStrategy
26
+ implements Hashable
27
+ {
28
+ override get hashCode(): string {
29
+ return hashArray([PERSISTENCE_HASH_STRUCTURE.NO_DEDUPLICATION_STRATEGY]);
30
+ }
31
+ }
32
+
33
+ export class V1_AnyVersionDeduplicationStrategy
34
+ extends V1_DeduplicationStrategy
35
+ implements Hashable
36
+ {
37
+ override get hashCode(): string {
38
+ return hashArray([
39
+ PERSISTENCE_HASH_STRUCTURE.ANY_VERSION_DEDUPLICATION_STRATEGY,
40
+ ]);
41
+ }
42
+ }
43
+
44
+ export class V1_MaxVersionDeduplicationStrategy
45
+ extends V1_DeduplicationStrategy
46
+ implements Hashable
47
+ {
48
+ versionField!: string;
49
+
50
+ override get hashCode(): string {
51
+ return hashArray([
52
+ PERSISTENCE_HASH_STRUCTURE.MAX_VERSION_DEDUPLICATION_STRATEGY,
53
+ this.versionField,
54
+ ]);
55
+ }
56
+ }
57
+
58
+ export class V1_DuplicateCountDeduplicationStrategy
59
+ extends V1_DeduplicationStrategy
60
+ implements Hashable
61
+ {
62
+ duplicateCountName!: string;
63
+
64
+ override get hashCode(): string {
65
+ return hashArray([
66
+ PERSISTENCE_HASH_STRUCTURE.DUPLICATE_COUNT_DEDUPLICATION_STRATEGY,
67
+ this.duplicateCountName,
68
+ ]);
69
+ }
70
+ }
@@ -0,0 +1,123 @@
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 { V1_Auditing } from './V1_DSLPersistence_Auditing';
18
+ import type { V1_MergeStrategy } from './V1_DSLPersistence_MergeStrategy';
19
+ import type {
20
+ V1_TransactionMilestoning,
21
+ V1_ValidityMilestoning,
22
+ } from './V1_DSLPersistence_Milestoning';
23
+ import { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
24
+ import { type Hashable, hashArray } from '@finos/legend-shared';
25
+
26
+ export abstract class V1_IngestMode implements Hashable {
27
+ abstract get hashCode(): string;
28
+ }
29
+
30
+ // snapshot
31
+
32
+ export class V1_NontemporalSnapshot extends V1_IngestMode implements Hashable {
33
+ auditing!: V1_Auditing;
34
+
35
+ override get hashCode(): string {
36
+ return hashArray([
37
+ PERSISTENCE_HASH_STRUCTURE.NONTEMPORAL_SNAPSHOT,
38
+ this.auditing,
39
+ ]);
40
+ }
41
+ }
42
+
43
+ export class V1_UnitemporalSnapshot extends V1_IngestMode implements Hashable {
44
+ transactionMilestoning!: V1_TransactionMilestoning;
45
+
46
+ override get hashCode(): string {
47
+ return hashArray([
48
+ PERSISTENCE_HASH_STRUCTURE.UNITEMPORAL_SNAPSHOT,
49
+ this.transactionMilestoning,
50
+ ]);
51
+ }
52
+ }
53
+
54
+ export class V1_BitemporalSnapshot extends V1_IngestMode implements Hashable {
55
+ transactionMilestoning!: V1_TransactionMilestoning;
56
+ validityMilestoning!: V1_ValidityMilestoning;
57
+
58
+ override get hashCode(): string {
59
+ return hashArray([
60
+ PERSISTENCE_HASH_STRUCTURE.BITEMPORAL_SNAPSHOT,
61
+ this.transactionMilestoning,
62
+ this.validityMilestoning,
63
+ ]);
64
+ }
65
+ }
66
+
67
+ // delta
68
+
69
+ export class V1_NontemporalDelta extends V1_IngestMode implements Hashable {
70
+ mergeStrategy!: V1_MergeStrategy;
71
+ auditing!: V1_Auditing;
72
+
73
+ override get hashCode(): string {
74
+ return hashArray([
75
+ PERSISTENCE_HASH_STRUCTURE.NONTEMPORAL_DELTA,
76
+ this.mergeStrategy,
77
+ this.auditing,
78
+ ]);
79
+ }
80
+ }
81
+
82
+ export class V1_UnitemporalDelta extends V1_IngestMode implements Hashable {
83
+ mergeStrategy!: V1_MergeStrategy;
84
+ transactionMilestoning!: V1_TransactionMilestoning;
85
+
86
+ override get hashCode(): string {
87
+ return hashArray([
88
+ PERSISTENCE_HASH_STRUCTURE.UNITEMPORAL_DELTA,
89
+ this.mergeStrategy,
90
+ this.transactionMilestoning,
91
+ ]);
92
+ }
93
+ }
94
+
95
+ export class V1_BitemporalDelta extends V1_IngestMode implements Hashable {
96
+ mergeStrategy!: V1_MergeStrategy;
97
+ transactionMilestoning!: V1_TransactionMilestoning;
98
+ validityMilestoning!: V1_ValidityMilestoning;
99
+
100
+ override get hashCode(): string {
101
+ return hashArray([
102
+ PERSISTENCE_HASH_STRUCTURE.BITEMPORAL_DELTA,
103
+ this.mergeStrategy,
104
+ this.transactionMilestoning,
105
+ this.validityMilestoning,
106
+ ]);
107
+ }
108
+ }
109
+
110
+ // append only
111
+
112
+ export class V1_AppendOnly extends V1_IngestMode implements Hashable {
113
+ auditing!: V1_Auditing;
114
+ filterDuplicates!: boolean;
115
+
116
+ override get hashCode(): string {
117
+ return hashArray([
118
+ PERSISTENCE_HASH_STRUCTURE.APPEND_ONLY,
119
+ this.auditing,
120
+ this.filterDuplicates.toString(),
121
+ ]);
122
+ }
123
+ }
@@ -0,0 +1,47 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ export abstract class V1_MergeStrategy implements Hashable {
21
+ abstract get hashCode(): string;
22
+ }
23
+
24
+ export class V1_NoDeletesMergeStrategy
25
+ extends V1_MergeStrategy
26
+ implements Hashable
27
+ {
28
+ override get hashCode(): string {
29
+ return hashArray([PERSISTENCE_HASH_STRUCTURE.NO_DELETES_MERGE_STRATEGY]);
30
+ }
31
+ }
32
+
33
+ export class V1_DeleteIndicatorMergeStrategy
34
+ extends V1_MergeStrategy
35
+ implements Hashable
36
+ {
37
+ deleteField!: string;
38
+ deleteValues: string[] = [];
39
+
40
+ override get hashCode(): string {
41
+ return hashArray([
42
+ PERSISTENCE_HASH_STRUCTURE.DELETE_INDICATOR_MERGE_STRATEGY,
43
+ this.deleteField,
44
+ hashArray(this.deleteValues),
45
+ ]);
46
+ }
47
+ }
@@ -0,0 +1,136 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ // transaction milestoning
21
+
22
+ export abstract class V1_TransactionMilestoning implements Hashable {
23
+ abstract get hashCode(): string;
24
+ }
25
+
26
+ export class V1_BatchIdTransactionMilestoning
27
+ extends V1_TransactionMilestoning
28
+ implements Hashable
29
+ {
30
+ batchIdInName!: string;
31
+ batchIdOutName!: string;
32
+
33
+ override get hashCode(): string {
34
+ return hashArray([
35
+ PERSISTENCE_HASH_STRUCTURE.BATCH_ID_TRANSACTION_MILESTONING,
36
+ this.batchIdInName,
37
+ this.batchIdOutName,
38
+ ]);
39
+ }
40
+ }
41
+
42
+ export class V1_DateTimeTransactionMilestoning
43
+ extends V1_TransactionMilestoning
44
+ implements Hashable
45
+ {
46
+ dateTimeInName!: string;
47
+ dateTimeOutName!: string;
48
+
49
+ override get hashCode(): string {
50
+ return hashArray([
51
+ PERSISTENCE_HASH_STRUCTURE.DATE_TIME_TRANSACTION_MILESTONING,
52
+ this.dateTimeInName,
53
+ this.dateTimeOutName,
54
+ ]);
55
+ }
56
+ }
57
+
58
+ export class V1_BatchIdAndDateTimeTransactionMilestoning
59
+ extends V1_TransactionMilestoning
60
+ implements Hashable
61
+ {
62
+ batchIdInName!: string;
63
+ batchIdOutName!: string;
64
+ dateTimeInName!: string;
65
+ dateTimeOutName!: string;
66
+
67
+ override get hashCode(): string {
68
+ return hashArray([
69
+ PERSISTENCE_HASH_STRUCTURE.BATCH_ID_AND_DATE_TIME_TRANSACTION_MILESTONING,
70
+ this.batchIdInName,
71
+ this.batchIdOutName,
72
+ this.dateTimeInName,
73
+ this.dateTimeOutName,
74
+ ]);
75
+ }
76
+ }
77
+
78
+ // validity milestoning
79
+
80
+ export abstract class V1_ValidityMilestoning implements Hashable {
81
+ abstract get hashCode(): string;
82
+ }
83
+
84
+ export class V1_DateTimeValidityMilestoning
85
+ extends V1_ValidityMilestoning
86
+ implements Hashable
87
+ {
88
+ dateTimeFromName!: string;
89
+ dateTimeThruName!: string;
90
+ derivation!: V1_ValidityDerivation;
91
+
92
+ override get hashCode(): string {
93
+ return hashArray([
94
+ PERSISTENCE_HASH_STRUCTURE.DATE_TIME_VALIDITY_MILESTONING,
95
+ this.dateTimeFromName,
96
+ this.dateTimeThruName,
97
+ this.derivation,
98
+ ]);
99
+ }
100
+ }
101
+
102
+ // validity derivation
103
+
104
+ export abstract class V1_ValidityDerivation implements Hashable {
105
+ abstract get hashCode(): string;
106
+ }
107
+
108
+ export class V1_SourceSpecifiesFromDateTime
109
+ extends V1_ValidityDerivation
110
+ implements Hashable
111
+ {
112
+ sourceDateTimeFromField!: string;
113
+
114
+ override get hashCode(): string {
115
+ return hashArray([
116
+ PERSISTENCE_HASH_STRUCTURE.SOURCE_SPECIFIES_FROM_DATE_TIME,
117
+ this.sourceDateTimeFromField,
118
+ ]);
119
+ }
120
+ }
121
+
122
+ export class V1_SourceSpecifiesFromAndThruDateTime
123
+ extends V1_ValidityDerivation
124
+ implements Hashable
125
+ {
126
+ sourceDateTimeFromField!: string;
127
+ sourceDateTimeThruField!: string;
128
+
129
+ override get hashCode(): string {
130
+ return hashArray([
131
+ PERSISTENCE_HASH_STRUCTURE.SOURCE_SPECIFIES_FROM_AND_THRU_DATE_TIME,
132
+ this.sourceDateTimeFromField,
133
+ this.sourceDateTimeThruField,
134
+ ]);
135
+ }
136
+ }
@@ -0,0 +1,52 @@
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 { PERSISTENCE_HASH_STRUCTURE } from '../../../../../../DSLPersistence_ModelUtils';
18
+ import { type Hashable, hashArray } from '@finos/legend-shared';
19
+
20
+ export class V1_Notifier implements Hashable {
21
+ notifyees: V1_Notifyee[] = [];
22
+
23
+ get hashCode(): string {
24
+ return hashArray([
25
+ PERSISTENCE_HASH_STRUCTURE.NOTIFIER,
26
+ hashArray(this.notifyees),
27
+ ]);
28
+ }
29
+ }
30
+
31
+ export abstract class V1_Notifyee implements Hashable {
32
+ abstract get hashCode(): string;
33
+ }
34
+
35
+ export class V1_EmailNotifyee extends V1_Notifyee implements Hashable {
36
+ address!: string;
37
+
38
+ override get hashCode(): string {
39
+ return hashArray([PERSISTENCE_HASH_STRUCTURE.EMAIL_NOTIFYEE, this.address]);
40
+ }
41
+ }
42
+
43
+ export class V1_PagerDutyNotifyee extends V1_Notifyee implements Hashable {
44
+ url!: string;
45
+
46
+ override get hashCode(): string {
47
+ return hashArray([
48
+ PERSISTENCE_HASH_STRUCTURE.PAGER_DUTY_NOTIFYEE,
49
+ this.url,
50
+ ]);
51
+ }
52
+ }