@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,604 @@
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 {
18
+ type Auditing,
19
+ DateTimeAuditing,
20
+ NoAuditing,
21
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Auditing';
22
+ import {
23
+ AnyVersionDeduplicationStrategy,
24
+ type DeduplicationStrategy,
25
+ DuplicateCountDeduplicationStrategy,
26
+ MaxVersionDeduplicationStrategy,
27
+ NoDeduplicationStrategy,
28
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_DeduplicationStrategy';
29
+ import {
30
+ AppendOnly,
31
+ BitemporalDelta,
32
+ BitemporalSnapshot,
33
+ type IngestMode,
34
+ NontemporalDelta,
35
+ NontemporalSnapshot,
36
+ UnitemporalDelta,
37
+ UnitemporalSnapshot,
38
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_IngestMode';
39
+ import {
40
+ DeleteIndicatorMergeStrategy,
41
+ type MergeStrategy,
42
+ NoDeletesMergeStrategy,
43
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_MergeStrategy';
44
+ import {
45
+ BatchIdAndDateTimeTransactionMilestoning,
46
+ BatchIdTransactionMilestoning,
47
+ DateTimeTransactionMilestoning,
48
+ DateTimeValidityMilestoning,
49
+ SourceSpecifiesFromAndThruDateTime,
50
+ SourceSpecifiesFromDateTime,
51
+ type TransactionMilestoning,
52
+ type ValidityDerivation,
53
+ type ValidityMilestoning,
54
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Milestoning';
55
+ import {
56
+ EmailNotifyee,
57
+ type Notifier,
58
+ type Notifyee,
59
+ PagerDutyNotifyee,
60
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Notifier';
61
+ import type { Persistence } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persistence';
62
+ import {
63
+ BatchPersister,
64
+ type Persister,
65
+ StreamingPersister,
66
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Persister';
67
+ import {
68
+ ObjectStorageSink,
69
+ RelationalSink,
70
+ type Sink,
71
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Sink';
72
+ import {
73
+ FlatTarget,
74
+ MultiFlatTarget,
75
+ type MultiFlatTargetPart,
76
+ type TargetShape,
77
+ TransactionScope,
78
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_TargetShape';
79
+ import {
80
+ CronTrigger,
81
+ ManualTrigger,
82
+ type Trigger,
83
+ } from '../../../../../../metamodels/pure/model/packageableElements/persistence/DSLPersistence_Trigger';
84
+ import {
85
+ type V1_Auditing,
86
+ V1_DateTimeAuditing,
87
+ V1_NoAuditing,
88
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Auditing';
89
+ import {
90
+ V1_AnyVersionDeduplicationStrategy,
91
+ type V1_DeduplicationStrategy,
92
+ V1_DuplicateCountDeduplicationStrategy,
93
+ V1_MaxVersionDeduplicationStrategy,
94
+ V1_NoDeduplicationStrategy,
95
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_DeduplicationStrategy';
96
+ import {
97
+ V1_AppendOnly,
98
+ V1_BitemporalDelta,
99
+ V1_BitemporalSnapshot,
100
+ type V1_IngestMode,
101
+ V1_NontemporalDelta,
102
+ V1_NontemporalSnapshot,
103
+ V1_UnitemporalDelta,
104
+ V1_UnitemporalSnapshot,
105
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_IngestMode';
106
+ import {
107
+ V1_DeleteIndicatorMergeStrategy,
108
+ type V1_MergeStrategy,
109
+ V1_NoDeletesMergeStrategy,
110
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_MergeStrategy';
111
+ import {
112
+ V1_BatchIdAndDateTimeTransactionMilestoning,
113
+ V1_BatchIdTransactionMilestoning,
114
+ V1_DateTimeTransactionMilestoning,
115
+ V1_DateTimeValidityMilestoning,
116
+ V1_SourceSpecifiesFromAndThruDateTime,
117
+ V1_SourceSpecifiesFromDateTime,
118
+ type V1_TransactionMilestoning,
119
+ type V1_ValidityDerivation,
120
+ type V1_ValidityMilestoning,
121
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Milestoning';
122
+ import {
123
+ V1_EmailNotifyee,
124
+ V1_Notifier,
125
+ type V1_Notifyee,
126
+ V1_PagerDutyNotifyee,
127
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Notifier';
128
+ import { V1_Persistence } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Persistence';
129
+ import {
130
+ V1_BatchPersister,
131
+ type V1_Persister,
132
+ V1_StreamingPersister,
133
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Persister';
134
+ import {
135
+ V1_ObjectStorageSink,
136
+ V1_RelationalSink,
137
+ type V1_Sink,
138
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Sink';
139
+ import {
140
+ V1_FlatTarget,
141
+ V1_MultiFlatTarget,
142
+ V1_MultiFlatTargetPart,
143
+ type V1_TargetShape,
144
+ V1_TransactionScope,
145
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_TargetShape';
146
+ import {
147
+ V1_CronTrigger,
148
+ V1_ManualTrigger,
149
+ type V1_Trigger,
150
+ } from '../../../model/packageableElements/persistence/V1_DSLPersistence_Trigger';
151
+ import {
152
+ type V1_GraphTransformerContext,
153
+ V1_initPackageableElement,
154
+ V1_transformConnection,
155
+ V1_transformElementReference,
156
+ } from '@finos/legend-graph';
157
+ import { UnsupportedOperationError } from '@finos/legend-shared';
158
+
159
+ /**********
160
+ * trigger
161
+ **********/
162
+
163
+ export const V1_transformTrigger = (
164
+ element: Trigger,
165
+ context: V1_GraphTransformerContext,
166
+ ): V1_Trigger => {
167
+ if (element instanceof CronTrigger) {
168
+ const protocol = new V1_CronTrigger();
169
+ protocol.minutes = element.minutes;
170
+ protocol.hours = element.hours;
171
+ protocol.dayOfMonth = element.dayOfMonth;
172
+ protocol.month = element.month;
173
+ protocol.dayOfWeek = element.dayOfWeek;
174
+ return protocol;
175
+ } else if (element instanceof ManualTrigger) {
176
+ return new V1_ManualTrigger();
177
+ }
178
+ throw new UnsupportedOperationError(`Can't transform trigger '${element}'`);
179
+ };
180
+
181
+ /**********
182
+ * sink
183
+ **********/
184
+
185
+ export const V1_transformRelationalSink = (
186
+ element: RelationalSink,
187
+ context: V1_GraphTransformerContext,
188
+ ): V1_RelationalSink => {
189
+ const protocol = new V1_RelationalSink();
190
+ if (element.connection) {
191
+ protocol.connection = V1_transformConnection(
192
+ element.connection,
193
+ true,
194
+ context,
195
+ );
196
+ }
197
+ return protocol;
198
+ };
199
+
200
+ export const V1_transformObjectStorageSink = (
201
+ element: ObjectStorageSink,
202
+ context: V1_GraphTransformerContext,
203
+ ): V1_ObjectStorageSink => {
204
+ const protocol = new V1_ObjectStorageSink();
205
+ protocol.connection = V1_transformConnection(
206
+ element.connection,
207
+ true,
208
+ context,
209
+ );
210
+ protocol.binding = element.binding.value.path;
211
+ return protocol;
212
+ };
213
+
214
+ export const V1_transformSink = (
215
+ element: Sink,
216
+ context: V1_GraphTransformerContext,
217
+ ): V1_Sink => {
218
+ if (element instanceof RelationalSink) {
219
+ return V1_transformRelationalSink(element, context);
220
+ } else if (element instanceof ObjectStorageSink) {
221
+ return V1_transformObjectStorageSink(element, context);
222
+ }
223
+ throw new UnsupportedOperationError(`Can't transform sink '${element}'`);
224
+ };
225
+
226
+ /**********
227
+ * auditing
228
+ **********/
229
+
230
+ export const V1_transformAuditing = (
231
+ element: Auditing,
232
+ context: V1_GraphTransformerContext,
233
+ ): V1_Auditing => {
234
+ if (element instanceof NoAuditing) {
235
+ return new V1_NoAuditing();
236
+ } else if (element instanceof DateTimeAuditing) {
237
+ const protocol = new V1_DateTimeAuditing();
238
+ protocol.dateTimeField = element.dateTimeField;
239
+ return protocol;
240
+ }
241
+ throw new UnsupportedOperationError(`Can't transform auditing '${element}'`);
242
+ };
243
+
244
+ /**********
245
+ * merge strategy
246
+ **********/
247
+
248
+ export const V1_transformMergeStrategy = (
249
+ element: MergeStrategy,
250
+ context: V1_GraphTransformerContext,
251
+ ): V1_MergeStrategy => {
252
+ if (element instanceof NoDeletesMergeStrategy) {
253
+ return new V1_NoDeletesMergeStrategy();
254
+ } else if (element instanceof DeleteIndicatorMergeStrategy) {
255
+ const protocol = new V1_DeleteIndicatorMergeStrategy();
256
+ protocol.deleteField = element.deleteField;
257
+ protocol.deleteValues = element.deleteValues;
258
+ return protocol;
259
+ }
260
+ throw new UnsupportedOperationError(
261
+ `Can't transform merge strategy '${element}'`,
262
+ );
263
+ };
264
+
265
+ /**********
266
+ * transaction milestoning
267
+ **********/
268
+
269
+ export const V1_transformTransactionMilestoning = (
270
+ element: TransactionMilestoning,
271
+ context: V1_GraphTransformerContext,
272
+ ): V1_TransactionMilestoning => {
273
+ if (element instanceof BatchIdTransactionMilestoning) {
274
+ const protocol = new V1_BatchIdTransactionMilestoning();
275
+ protocol.batchIdInName = element.batchIdInName;
276
+ protocol.batchIdOutName = element.batchIdOutName;
277
+ return protocol;
278
+ } else if (element instanceof DateTimeTransactionMilestoning) {
279
+ const protocol = new V1_DateTimeTransactionMilestoning();
280
+ protocol.dateTimeInName = element.dateTimeInName;
281
+ protocol.dateTimeOutName = element.dateTimeOutName;
282
+ return protocol;
283
+ } else if (element instanceof BatchIdAndDateTimeTransactionMilestoning) {
284
+ const protocol = new V1_BatchIdAndDateTimeTransactionMilestoning();
285
+ protocol.batchIdInName = element.batchIdInName;
286
+ protocol.batchIdOutName = element.batchIdOutName;
287
+ protocol.dateTimeInName = element.dateTimeInName;
288
+ protocol.dateTimeOutName = element.dateTimeOutName;
289
+ return protocol;
290
+ }
291
+ throw new UnsupportedOperationError(
292
+ `Can't transform transaction milestoning '${element}'`,
293
+ );
294
+ };
295
+
296
+ /**********
297
+ * validity derivation
298
+ **********/
299
+
300
+ export const V1_transformValidityDerivation = (
301
+ element: ValidityDerivation,
302
+ context: V1_GraphTransformerContext,
303
+ ): V1_ValidityDerivation => {
304
+ if (element instanceof SourceSpecifiesFromDateTime) {
305
+ const protocol = new V1_SourceSpecifiesFromDateTime();
306
+ protocol.sourceDateTimeFromField = element.sourceDateTimeFromField;
307
+ return protocol;
308
+ } else if (element instanceof SourceSpecifiesFromAndThruDateTime) {
309
+ const protocol = new V1_SourceSpecifiesFromAndThruDateTime();
310
+ protocol.sourceDateTimeFromField = element.sourceDateTimeFromField;
311
+ protocol.sourceDateTimeThruField = element.sourceDateTimeThruField;
312
+ return protocol;
313
+ }
314
+ throw new UnsupportedOperationError(
315
+ `Can't transform validity derivation '${element}'`,
316
+ );
317
+ };
318
+
319
+ /**********
320
+ * validity milestoning
321
+ **********/
322
+
323
+ export const V1_transformValidityMilestoning = (
324
+ element: ValidityMilestoning,
325
+ context: V1_GraphTransformerContext,
326
+ ): V1_ValidityMilestoning => {
327
+ if (element instanceof DateTimeValidityMilestoning) {
328
+ const protocol = new V1_DateTimeValidityMilestoning();
329
+ protocol.dateTimeFromName = element.dateTimeFromName;
330
+ protocol.dateTimeThruName = element.dateTimeThruName;
331
+ protocol.derivation = V1_transformValidityDerivation(
332
+ element.derivation,
333
+ context,
334
+ );
335
+ return protocol;
336
+ }
337
+ throw new UnsupportedOperationError(
338
+ `Can't transform validity milestoning '${element}'`,
339
+ );
340
+ };
341
+
342
+ /**********
343
+ * ingest mode
344
+ **********/
345
+
346
+ export const V1_transformIngestMode = (
347
+ element: IngestMode,
348
+ context: V1_GraphTransformerContext,
349
+ ): V1_IngestMode => {
350
+ if (element instanceof NontemporalSnapshot) {
351
+ const protocol = new V1_NontemporalSnapshot();
352
+ protocol.auditing = V1_transformAuditing(element.auditing, context);
353
+ return protocol;
354
+ } else if (element instanceof UnitemporalSnapshot) {
355
+ const protocol = new V1_UnitemporalSnapshot();
356
+ protocol.transactionMilestoning = V1_transformTransactionMilestoning(
357
+ element.transactionMilestoning,
358
+ context,
359
+ );
360
+ return protocol;
361
+ } else if (element instanceof BitemporalSnapshot) {
362
+ const protocol = new V1_BitemporalSnapshot();
363
+ protocol.transactionMilestoning = V1_transformTransactionMilestoning(
364
+ element.transactionMilestoning,
365
+ context,
366
+ );
367
+ protocol.validityMilestoning = V1_transformValidityMilestoning(
368
+ element.validityMilestoning,
369
+ context,
370
+ );
371
+ return protocol;
372
+ } else if (element instanceof NontemporalDelta) {
373
+ const protocol = new V1_NontemporalDelta();
374
+ protocol.mergeStrategy = V1_transformMergeStrategy(
375
+ element.mergeStrategy,
376
+ context,
377
+ );
378
+ protocol.auditing = V1_transformAuditing(element.auditing, context);
379
+ return protocol;
380
+ } else if (element instanceof UnitemporalDelta) {
381
+ const protocol = new V1_UnitemporalDelta();
382
+ protocol.mergeStrategy = V1_transformMergeStrategy(
383
+ element.mergeStrategy,
384
+ context,
385
+ );
386
+ protocol.transactionMilestoning = V1_transformTransactionMilestoning(
387
+ element.transactionMilestoning,
388
+ context,
389
+ );
390
+ return protocol;
391
+ } else if (element instanceof BitemporalDelta) {
392
+ const protocol = new V1_BitemporalDelta();
393
+ protocol.mergeStrategy = V1_transformMergeStrategy(
394
+ element.mergeStrategy,
395
+ context,
396
+ );
397
+ protocol.transactionMilestoning = V1_transformTransactionMilestoning(
398
+ element.transactionMilestoning,
399
+ context,
400
+ );
401
+ protocol.validityMilestoning = V1_transformValidityMilestoning(
402
+ element.validityMilestoning,
403
+ context,
404
+ );
405
+ return protocol;
406
+ } else if (element instanceof AppendOnly) {
407
+ const protocol = new V1_AppendOnly();
408
+ protocol.auditing = V1_transformAuditing(element.auditing, context);
409
+ protocol.filterDuplicates = element.filterDuplicates;
410
+ return protocol;
411
+ }
412
+ throw new UnsupportedOperationError(
413
+ `Can't transform ingest mode '${element}'`,
414
+ );
415
+ };
416
+
417
+ /**********
418
+ * deduplication strategy
419
+ **********/
420
+
421
+ export const V1_transformDeduplicationStrategy = (
422
+ element: DeduplicationStrategy,
423
+ context: V1_GraphTransformerContext,
424
+ ): V1_DeduplicationStrategy => {
425
+ if (element instanceof NoDeduplicationStrategy) {
426
+ return new V1_NoDeduplicationStrategy();
427
+ } else if (element instanceof AnyVersionDeduplicationStrategy) {
428
+ return new V1_AnyVersionDeduplicationStrategy();
429
+ } else if (element instanceof MaxVersionDeduplicationStrategy) {
430
+ const protocol = new V1_MaxVersionDeduplicationStrategy();
431
+ protocol.versionField = element.versionField;
432
+ return protocol;
433
+ } else if (element instanceof DuplicateCountDeduplicationStrategy) {
434
+ const protocol = new V1_DuplicateCountDeduplicationStrategy();
435
+ protocol.duplicateCountName = element.duplicateCountName;
436
+ return protocol;
437
+ }
438
+ throw new UnsupportedOperationError(
439
+ `Can't transform deduplicationStrategy '${element}'`,
440
+ );
441
+ };
442
+
443
+ /**********
444
+ * target shape
445
+ **********/
446
+
447
+ export const V1_transformFlatTarget = (
448
+ element: FlatTarget,
449
+ context: V1_GraphTransformerContext,
450
+ ): V1_FlatTarget => {
451
+ const protocol = new V1_FlatTarget();
452
+ if (element.modelClass) {
453
+ protocol.modelClass = V1_transformElementReference(element.modelClass);
454
+ }
455
+ protocol.targetName = element.targetName;
456
+ protocol.partitionFields = element.partitionFields;
457
+ protocol.deduplicationStrategy = V1_transformDeduplicationStrategy(
458
+ element.deduplicationStrategy,
459
+ context,
460
+ );
461
+ return protocol;
462
+ };
463
+
464
+ export const V1_transformTransactionScope = (
465
+ element: TransactionScope,
466
+ context: V1_GraphTransformerContext,
467
+ ): V1_TransactionScope => {
468
+ if (element === TransactionScope.SINGLE_TARGET) {
469
+ return V1_TransactionScope.SINGLE_TARGET;
470
+ } else {
471
+ return V1_TransactionScope.ALL_TARGETS;
472
+ }
473
+
474
+ //note: ledav -- would prefer to write the below to be defensive when a new
475
+ // enum member is added, but lint complains
476
+
477
+ /*
478
+ } else if (element === TransactionScope.ALL_TARGETS) {
479
+ return V1_TransactionScope.ALL_TARGETS;
480
+ }
481
+ throw new UnsupportedOperationError(
482
+ `Can't transform transaction scope '${element}'`,
483
+ );
484
+ */
485
+ };
486
+
487
+ export const V1_transformMultiFlatTargetPart = (
488
+ element: MultiFlatTargetPart,
489
+ context: V1_GraphTransformerContext,
490
+ ): V1_MultiFlatTargetPart => {
491
+ const protocol = new V1_MultiFlatTargetPart();
492
+ protocol.modelProperty = element.modelProperty;
493
+ protocol.targetName = element.targetName;
494
+ protocol.partitionFields = element.partitionFields;
495
+ protocol.deduplicationStrategy = V1_transformDeduplicationStrategy(
496
+ element.deduplicationStrategy,
497
+ context,
498
+ );
499
+ return protocol;
500
+ };
501
+
502
+ export const V1_transformMultiFlatTarget = (
503
+ element: MultiFlatTarget,
504
+ context: V1_GraphTransformerContext,
505
+ ): V1_MultiFlatTarget => {
506
+ const protocol = new V1_MultiFlatTarget();
507
+ protocol.modelClass = V1_transformElementReference(element.modelClass);
508
+ protocol.transactionScope = V1_transformTransactionScope(
509
+ element.transactionScope,
510
+ context,
511
+ );
512
+ protocol.parts = element.parts.map((p) =>
513
+ V1_transformMultiFlatTargetPart(p, context),
514
+ );
515
+ return protocol;
516
+ };
517
+
518
+ export const V1_transformTargetShape = (
519
+ element: TargetShape,
520
+ context: V1_GraphTransformerContext,
521
+ ): V1_TargetShape => {
522
+ if (element instanceof FlatTarget) {
523
+ return V1_transformFlatTarget(element, context);
524
+ } else if (element instanceof MultiFlatTarget) {
525
+ return V1_transformMultiFlatTarget(element, context);
526
+ }
527
+ throw new UnsupportedOperationError(
528
+ `Can't transform target shape '${element}'`,
529
+ );
530
+ };
531
+
532
+ /**********
533
+ * persister
534
+ **********/
535
+
536
+ export const V1_transformPersister = (
537
+ element: Persister,
538
+ context: V1_GraphTransformerContext,
539
+ ): V1_Persister => {
540
+ if (element instanceof StreamingPersister) {
541
+ const protocol = new V1_StreamingPersister();
542
+ protocol.sink = V1_transformSink(element.sink, context);
543
+ return protocol;
544
+ } else if (element instanceof BatchPersister) {
545
+ const protocol = new V1_BatchPersister();
546
+ protocol.sink = V1_transformSink(element.sink, context);
547
+ protocol.ingestMode = V1_transformIngestMode(element.ingestMode, context);
548
+ protocol.targetShape = V1_transformTargetShape(
549
+ element.targetShape,
550
+ context,
551
+ );
552
+ return protocol;
553
+ }
554
+ throw new UnsupportedOperationError(`Can't transform persister '${element}'`);
555
+ };
556
+
557
+ /**********
558
+ * notifier
559
+ **********/
560
+
561
+ export const V1_transformNotifyee = (
562
+ element: Notifyee,
563
+ context: V1_GraphTransformerContext,
564
+ ): V1_Notifyee => {
565
+ if (element instanceof EmailNotifyee) {
566
+ const protocol = new V1_EmailNotifyee();
567
+ protocol.address = element.address;
568
+ return protocol;
569
+ } else if (element instanceof PagerDutyNotifyee) {
570
+ const protocol = new V1_PagerDutyNotifyee();
571
+ protocol.url = element.url;
572
+ return protocol;
573
+ }
574
+ throw new UnsupportedOperationError(`Can't transform notifyee '${element}'`);
575
+ };
576
+
577
+ export const V1_transformNotifier = (
578
+ element: Notifier,
579
+ context: V1_GraphTransformerContext,
580
+ ): V1_Notifier => {
581
+ const notifier = new V1_Notifier();
582
+ notifier.notifyees = element.notifyees.map((n) =>
583
+ V1_transformNotifyee(n, context),
584
+ );
585
+ return notifier;
586
+ };
587
+
588
+ /**********
589
+ * persistence
590
+ **********/
591
+
592
+ export const V1_transformPersistence = (
593
+ element: Persistence,
594
+ context: V1_GraphTransformerContext,
595
+ ): V1_Persistence => {
596
+ const protocol = new V1_Persistence();
597
+ V1_initPackageableElement(protocol, element);
598
+ protocol.documentation = element.documentation;
599
+ protocol.trigger = V1_transformTrigger(element.trigger, context);
600
+ protocol.service = V1_transformElementReference(element.service);
601
+ protocol.persister = V1_transformPersister(element.persister, context);
602
+ protocol.notifier = V1_transformNotifier(element.notifier, context);
603
+ return protocol;
604
+ };