@finos/legend-graph 31.8.1 → 31.8.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 (124) hide show
  1. package/lib/graph/Core_HashUtils.d.ts +3 -1
  2. package/lib/graph/Core_HashUtils.d.ts.map +1 -1
  3. package/lib/graph/Core_HashUtils.js +2 -0
  4. package/lib/graph/Core_HashUtils.js.map +1 -1
  5. package/lib/graph/MetaModelConst.d.ts +2 -1
  6. package/lib/graph/MetaModelConst.d.ts.map +1 -1
  7. package/lib/graph/MetaModelConst.js +1 -0
  8. package/lib/graph/MetaModelConst.js.map +1 -1
  9. package/lib/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.d.ts +23 -0
  10. package/lib/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.d.ts.map +1 -0
  11. package/lib/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.js +26 -0
  12. package/lib/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.js.map +1 -0
  13. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts +2 -0
  14. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.d.ts.map +1 -1
  15. package/lib/graph/metamodel/pure/packageableElements/PackageableElement.js.map +1 -1
  16. package/lib/graph/metamodel/pure/packageableElements/function/FunctionActivator.d.ts +2 -2
  17. package/lib/graph/metamodel/pure/packageableElements/function/FunctionActivator.d.ts.map +1 -1
  18. package/lib/graph/metamodel/pure/packageableElements/function/FunctionActivator.js.map +1 -1
  19. package/lib/graph/metamodel/pure/packageableElements/function/HostedService.d.ts +31 -0
  20. package/lib/graph/metamodel/pure/packageableElements/function/HostedService.d.ts.map +1 -0
  21. package/lib/graph/metamodel/pure/packageableElements/function/HostedService.js +45 -0
  22. package/lib/graph/metamodel/pure/packageableElements/function/HostedService.js.map +1 -0
  23. package/lib/graph-manager/action/changeDetection/DSL_FunctionActivatorObserverHelper.d.ts +5 -1
  24. package/lib/graph-manager/action/changeDetection/DSL_FunctionActivatorObserverHelper.d.ts.map +1 -1
  25. package/lib/graph-manager/action/changeDetection/DSL_FunctionActivatorObserverHelper.js +27 -0
  26. package/lib/graph-manager/action/changeDetection/DSL_FunctionActivatorObserverHelper.js.map +1 -1
  27. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.d.ts +2 -0
  28. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.d.ts.map +1 -1
  29. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js +19 -1
  30. package/lib/graph-manager/action/changeDetection/DomainObserverHelper.js.map +1 -1
  31. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.d.ts.map +1 -1
  32. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.js +4 -1
  33. package/lib/graph-manager/action/changeDetection/PackageableElementObserver.js.map +1 -1
  34. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.d.ts.map +1 -1
  35. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js +4 -0
  36. package/lib/graph-manager/protocol/pure/v1/V1_PureGraphManager.js.map +1 -1
  37. package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.d.ts +24 -0
  38. package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.d.ts.map +1 -0
  39. package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.js +26 -0
  40. package/lib/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.js.map +1 -0
  41. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts +2 -0
  42. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.d.ts.map +1 -1
  43. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.js.map +1 -1
  44. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_FunctionActivator.d.ts +1 -1
  45. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_FunctionActivator.d.ts.map +1 -1
  46. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.d.ts +29 -0
  47. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.d.ts.map +1 -0
  48. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.js +41 -0
  49. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.js.map +1 -0
  50. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.d.ts +8 -3
  51. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.d.ts.map +1 -1
  52. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.js +22 -6
  53. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.js.map +1 -1
  54. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.d.ts.map +1 -1
  55. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js +22 -1
  56. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.js.map +1 -1
  57. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts +2 -0
  58. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.d.ts.map +1 -1
  59. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js +3 -0
  60. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.js.map +1 -1
  61. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts +2 -0
  62. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.d.ts.map +1 -1
  63. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js +16 -0
  64. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.js.map +1 -1
  65. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts +2 -0
  66. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.d.ts.map +1 -1
  67. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js +3 -0
  68. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.js.map +1 -1
  69. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts +2 -0
  70. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.d.ts.map +1 -1
  71. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js +15 -1
  72. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.js.map +1 -1
  73. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts +2 -0
  74. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.d.ts.map +1 -1
  75. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js +3 -0
  76. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.js.map +1 -1
  77. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.d.ts +8 -3
  78. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.d.ts.map +1 -1
  79. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.js +17 -4
  80. package/lib/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.js.map +1 -1
  81. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.d.ts.map +1 -1
  82. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js +6 -1
  83. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.js.map +1 -1
  84. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.d.ts +3 -0
  85. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.d.ts.map +1 -1
  86. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.js +22 -1
  87. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.js.map +1 -1
  88. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.d.ts +6 -2
  89. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.d.ts.map +1 -1
  90. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.js +29 -10
  91. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.js.map +1 -1
  92. package/lib/index.d.ts +3 -1
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/index.js +3 -1
  95. package/lib/index.js.map +1 -1
  96. package/lib/package.json +1 -1
  97. package/package.json +1 -1
  98. package/src/graph/Core_HashUtils.ts +2 -0
  99. package/src/graph/MetaModelConst.ts +1 -0
  100. package/src/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.ts +28 -0
  101. package/src/graph/metamodel/pure/packageableElements/PackageableElement.ts +2 -0
  102. package/src/graph/metamodel/pure/packageableElements/function/FunctionActivator.ts +2 -2
  103. package/src/graph/metamodel/pure/packageableElements/function/HostedService.ts +61 -0
  104. package/src/graph-manager/action/changeDetection/DSL_FunctionActivatorObserverHelper.ts +42 -1
  105. package/src/graph-manager/action/changeDetection/DomainObserverHelper.ts +29 -1
  106. package/src/graph-manager/action/changeDetection/PackageableElementObserver.ts +6 -0
  107. package/src/graph-manager/protocol/pure/v1/V1_PureGraphManager.ts +3 -0
  108. package/src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.ts +31 -0
  109. package/src/graph-manager/protocol/pure/v1/model/packageableElements/V1_PackageableElement.ts +2 -0
  110. package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_FunctionActivator.ts +1 -1
  111. package/src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.ts +51 -0
  112. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_FunctionActivatorTransformer.ts +32 -7
  113. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/from/V1_PackageableElementTransformer.ts +30 -0
  114. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFifthPassBuilder.ts +5 -0
  115. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFirstPassBuilder.ts +31 -0
  116. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementFourthPassBuilder.ts +5 -0
  117. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementSecondPassBuilder.ts +36 -1
  118. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/V1_ElementThirdPassBuilder.ts +5 -0
  119. package/src/graph-manager/protocol/pure/v1/transformation/pureGraph/to/helpers/V1_FunctionActivatorBuilderHelper.ts +28 -2
  120. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_PackageableElementSerialization.ts +11 -0
  121. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_DomainSerializationHelper.ts +30 -0
  122. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/serializationHelpers/V1_FunctionActivatorSerializationHelper.ts +44 -11
  123. package/src/index.ts +6 -0
  124. package/tsconfig.json +4 -0
@@ -83,9 +83,13 @@ import { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_
83
83
  import type { SnowflakeApp } from '../../../../../../../graph/metamodel/pure/packageableElements/function/SnowflakeApp.js';
84
84
  import {
85
85
  V1_transformDeployment,
86
+ V1_transformHostedServiceDeploymentConfiguration,
87
+ V1_transformOwnership,
86
88
  V1_transformSnowflakeAppDeploymentConfiguration,
87
89
  } from './V1_FunctionActivatorTransformer.js';
88
90
  import { PackageableElementPointerType } from '../../../../../../../graph/MetaModelConst.js';
91
+ import type { HostedService } from '../../../../../../../graph/metamodel/pure/packageableElements/function/HostedService.js';
92
+ import { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
89
93
 
90
94
  class V1_PackageableElementTransformer
91
95
  implements PackageableElementVisitor<V1_PackageableElement>
@@ -163,6 +167,32 @@ class V1_PackageableElementTransformer
163
167
  return protocol;
164
168
  }
165
169
 
170
+ visit_HostedService(element: HostedService): V1_PackageableElement {
171
+ const protocol = new V1_HostedService();
172
+ V1_initPackageableElement(protocol, element);
173
+ protocol.function = new V1_PackageableElementPointer(
174
+ PackageableElementPointerType.FUNCTION,
175
+ generateFunctionPrettyName(element.function.value, {
176
+ fullPath: true,
177
+ spacing: false,
178
+ notIncludeParamName: true,
179
+ }),
180
+ );
181
+ protocol.documentation = element.documentation;
182
+ protocol.pattern = element.pattern;
183
+ protocol.autoActivateUpdates = element.autoActivateUpdates;
184
+ protocol.storeModel = element.storeModel;
185
+ protocol.generateLineage = element.generateLineage;
186
+ protocol.ownership = V1_transformOwnership(element.ownership);
187
+ if (element.activationConfiguration) {
188
+ protocol.activationConfiguration =
189
+ V1_transformHostedServiceDeploymentConfiguration(
190
+ element.activationConfiguration,
191
+ );
192
+ }
193
+ return protocol;
194
+ }
195
+
166
196
  visit_INTERNAL__UnknownStore(
167
197
  element: INTERNAL__UnknownStore,
168
198
  ): V1_PackageableElement {
@@ -49,6 +49,7 @@ import type { V1_INTERNAL__UnknownPackageableElement } from '../../../model/pack
49
49
  import type { V1_INTERNAL__UnknownFunctionActivator } from '../../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
50
50
  import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
51
51
  import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
52
+ import type { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
52
53
 
53
54
  export class V1_ElementFifthPassBuilder
54
55
  implements V1_PackageableElementVisitor<void>
@@ -170,4 +171,8 @@ export class V1_ElementFifthPassBuilder
170
171
  visit_SnowflakeApp(element: V1_SnowflakeApp): void {
171
172
  throw new UnsupportedOperationError();
172
173
  }
174
+
175
+ visit_HostedService(element: V1_HostedService): void {
176
+ throw new UnsupportedOperationError();
177
+ }
173
178
  }
@@ -76,6 +76,8 @@ import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElemen
76
76
  import { INTERNAL__UnknownStore } from '../../../../../../../graph/metamodel/pure/packageableElements/store/INTERNAL__UnknownStore.js';
77
77
  import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
78
78
  import { SnowflakeApp } from '../../../../../../../graph/metamodel/pure/packageableElements/function/SnowflakeApp.js';
79
+ import type { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
80
+ import { HostedService } from '../../../../../../../graph/metamodel/pure/packageableElements/function/HostedService.js';
79
81
 
80
82
  export class V1_ElementFirstPassBuilder
81
83
  implements V1_PackageableElementVisitor<PackageableElement>
@@ -161,6 +163,35 @@ export class V1_ElementFirstPassBuilder
161
163
  return metamodel;
162
164
  }
163
165
 
166
+ visit_HostedService(element: V1_HostedService): PackageableElement {
167
+ assertNonEmptyString(
168
+ element.package,
169
+ `Rest Service 'package' field is missing or empty`,
170
+ );
171
+ assertNonEmptyString(
172
+ element.name,
173
+ `Rest Service 'name' field is missing or empty`,
174
+ );
175
+ const metamodel = new HostedService(element.name);
176
+ const path = V1_buildFullPath(element.package, element.name);
177
+ V1_checkDuplicatedElement(path, this.context, this.elementPathCache);
178
+ this.context.currentSubGraph.setOwnFunctionActivator(path, metamodel);
179
+ addElementToPackage(
180
+ getOrCreateGraphPackage(
181
+ this.context.currentSubGraph,
182
+ element.package,
183
+ this.packageCache,
184
+ ),
185
+ metamodel,
186
+ );
187
+ metamodel.documentation = element.documentation;
188
+ metamodel.pattern = element.pattern;
189
+ metamodel.autoActivateUpdates = element.autoActivateUpdates;
190
+ metamodel.storeModel = element.storeModel;
191
+ metamodel.generateLineage = element.generateLineage;
192
+ return metamodel;
193
+ }
194
+
164
195
  visit_INTERNAL__UnknownFunctionActivator(
165
196
  element: V1_INTERNAL__UnknownFunctionActivator,
166
197
  ): PackageableElement {
@@ -57,6 +57,7 @@ import type { V1_INTERNAL__UnknownPackageableElement } from '../../../model/pack
57
57
  import type { V1_INTERNAL__UnknownFunctionActivator } from '../../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
58
58
  import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
59
59
  import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
60
+ import type { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
60
61
 
61
62
  export class V1_ElementFourthPassBuilder
62
63
  implements V1_PackageableElementVisitor<void>
@@ -89,6 +90,10 @@ export class V1_ElementFourthPassBuilder
89
90
  throw new UnsupportedOperationError();
90
91
  }
91
92
 
93
+ visit_HostedService(element: V1_HostedService): void {
94
+ throw new UnsupportedOperationError();
95
+ }
96
+
92
97
  visit_INTERNAL__UnknownStore(element: V1_INTERNAL__UnknownStore): void {
93
98
  return;
94
99
  }
@@ -105,9 +105,12 @@ import { V1_INTERNAL__UnknownMappingInclude } from '../../../model/packageableEl
105
105
  import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
106
106
  import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
107
107
  import {
108
- V1_buildDeploymentOwnership,
108
+ V1_buildHostedServiceDeploymentConfiguration,
109
109
  V1_buildSnowflakeAppDeploymentConfiguration,
110
+ V1_buildDeploymentOwnership,
111
+ V1_builHostedServiceOwnership,
110
112
  } from './helpers/V1_FunctionActivatorBuilderHelper.js';
113
+ import type { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
111
114
 
112
115
  export class V1_ElementSecondPassBuilder
113
116
  implements V1_PackageableElementVisitor<void>
@@ -176,6 +179,38 @@ export class V1_ElementSecondPassBuilder
176
179
  );
177
180
  }
178
181
 
182
+ visit_HostedService(element: V1_HostedService): void {
183
+ assertNonEmptyString(
184
+ element.pattern,
185
+ `Hosted Service 'pattern' field is missing or empty`,
186
+ );
187
+ const metamodel = this.context.currentSubGraph.getOwnFunctionActivator(
188
+ V1_buildFullPath(element.package, element.name),
189
+ );
190
+ metamodel.function = PackageableElementExplicitReference.create(
191
+ guaranteeNonNullable(
192
+ this.context.graph.functions.find(
193
+ (fn) =>
194
+ generateFunctionPrettyName(fn, {
195
+ fullPath: true,
196
+ spacing: false,
197
+ notIncludeParamName: true,
198
+ }) === element.function.path.replaceAll(/\s*/gu, ''),
199
+ ),
200
+ ),
201
+ );
202
+ metamodel.ownership = V1_builHostedServiceOwnership(
203
+ element.ownership,
204
+ metamodel,
205
+ );
206
+ if (element.activationConfiguration) {
207
+ metamodel.activationConfiguration =
208
+ V1_buildHostedServiceDeploymentConfiguration(
209
+ element.activationConfiguration,
210
+ );
211
+ }
212
+ }
213
+
179
214
  visit_INTERNAL__UnknownStore(element: V1_INTERNAL__UnknownStore): void {
180
215
  return;
181
216
  }
@@ -64,6 +64,7 @@ import type { V1_INTERNAL__UnknownPackageableElement } from '../../../model/pack
64
64
  import type { V1_INTERNAL__UnknownFunctionActivator } from '../../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
65
65
  import type { V1_INTERNAL__UnknownStore } from '../../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
66
66
  import type { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
67
+ import type { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
67
68
 
68
69
  export class V1_ElementThirdPassBuilder
69
70
  implements V1_PackageableElementVisitor<void>
@@ -112,6 +113,10 @@ export class V1_ElementThirdPassBuilder
112
113
  throw new UnsupportedOperationError();
113
114
  }
114
115
 
116
+ visit_HostedService(element: V1_HostedService): void {
117
+ throw new UnsupportedOperationError();
118
+ }
119
+
115
120
  visit_ExecutionEnvironmentInstance(
116
121
  element: V1_ExecutionEnvironmentInstance,
117
122
  ): void {
@@ -22,13 +22,17 @@ import { V1_buildConnection } from './V1_ConnectionBuilderHelper.js';
22
22
  import { UnsupportedOperationError, guaranteeType } from '@finos/legend-shared';
23
23
  import {
24
24
  DeploymentOwner,
25
+ UserList,
25
26
  type Ownership,
26
27
  } from '../../../../../../../../graph/metamodel/pure/packageableElements/function/Ownership.js';
27
28
  import {
28
29
  V1_DeploymentOwner,
30
+ V1_UserList,
29
31
  type V1_Ownership,
30
32
  } from '../../../../model/packageableElements/function/V1_Ownership.js';
31
33
  import type { FunctionActivator } from '../../../../../../../../graph/metamodel/pure/packageableElements/function/FunctionActivator.js';
34
+ import { HostedServiceDeploymentConfiguration } from '../../../../../../../../graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.js';
35
+ import type { V1_HostedServiceDeploymentConfiguration } from '../../../../engine/functionActivator/V1_HostedServiceDeploymentConfiguration.js';
32
36
 
33
37
  export const V1_buildSnowflakeAppDeploymentConfiguration = (
34
38
  element: V1_SnowflakeAppDeploymentConfiguration,
@@ -48,11 +52,33 @@ export const V1_buildSnowflakeAppDeploymentConfiguration = (
48
52
  };
49
53
 
50
54
  export const V1_buildDeploymentOwnership = (
51
- ownership: V1_Ownership,
55
+ ownership: V1_DeploymentOwner,
56
+ functionActivator: FunctionActivator,
57
+ ): DeploymentOwner => new DeploymentOwner(ownership.id, functionActivator);
58
+
59
+ export const V1_buildUserList = (
60
+ ownership: V1_UserList,
52
61
  functionActivator: FunctionActivator,
62
+ ): UserList => new UserList(ownership.users, functionActivator);
63
+
64
+ export const V1_builHostedServiceOwnership = (
65
+ ownership: V1_Ownership,
66
+ parentService: FunctionActivator,
53
67
  ): Ownership => {
54
68
  if (ownership instanceof V1_DeploymentOwner) {
55
- return new DeploymentOwner(ownership.id, functionActivator);
69
+ return V1_buildDeploymentOwnership(ownership, parentService);
70
+ } else if (ownership instanceof V1_UserList) {
71
+ return V1_buildUserList(ownership, parentService);
56
72
  }
57
73
  throw new UnsupportedOperationError();
58
74
  };
75
+
76
+ export const V1_buildHostedServiceDeploymentConfiguration = (
77
+ element: V1_HostedServiceDeploymentConfiguration,
78
+ ): HostedServiceDeploymentConfiguration => {
79
+ const metamodel = new HostedServiceDeploymentConfiguration();
80
+ metamodel.host = element.host;
81
+ metamodel.port = element.port;
82
+ metamodel.path = element.path;
83
+ return metamodel;
84
+ };
@@ -93,6 +93,8 @@ import {
93
93
  V1_INTERNAL__UnknownFunctionActivatorModelSchema,
94
94
  V1_snowflakeAppModelSchema,
95
95
  V1_SNOWFLAKE_APP_TYPE,
96
+ V1_HostedServiceModelSchema,
97
+ V1_HOSTED_SERVICE_TYPE,
96
98
  } from './serializationHelpers/V1_DomainSerializationHelper.js';
97
99
  import type {
98
100
  PureProtocolProcessorPlugin,
@@ -114,6 +116,7 @@ import type { V1_INTERNAL__UnknownFunctionActivator } from '../../model/packagea
114
116
  import type { SubtypeInfo } from '../../../../../action/protocol/ProtocolInfo.js';
115
117
  import { V1_INTERNAL__UnknownStore } from '../../model/packageableElements/store/V1_INTERNAL__UnknownStore.js';
116
118
  import type { V1_SnowflakeApp } from '../../model/packageableElements/function/V1_SnowflakeApp.js';
119
+ import type { V1_HostedService } from '../../model/packageableElements/function/V1_HostedService.js';
117
120
 
118
121
  class V1_PackageableElementSerializer
119
122
  implements V1_PackageableElementVisitor<PlainObject<V1_PackageableElement>>
@@ -160,6 +163,12 @@ class V1_PackageableElementSerializer
160
163
  return serialize(V1_snowflakeAppModelSchema, element);
161
164
  }
162
165
 
166
+ visit_HostedService(
167
+ element: V1_HostedService,
168
+ ): PlainObject<V1_PackageableElement> {
169
+ return serialize(V1_HostedServiceModelSchema, element);
170
+ }
171
+
163
172
  visit_INTERNAL__UnknownStore(
164
173
  element: V1_INTERNAL__UnknownStore,
165
174
  ): PlainObject<V1_PackageableElement> {
@@ -329,6 +338,8 @@ export const V1_deserializePackageableElement = (
329
338
  return deserialize(V1_dataElementModelSchema(plugins), json);
330
339
  case V1_SNOWFLAKE_APP_TYPE:
331
340
  return deserialize(V1_snowflakeAppModelSchema, json);
341
+ case V1_HOSTED_SERVICE_TYPE:
342
+ return deserialize(V1_HostedServiceModelSchema, json);
332
343
  default: {
333
344
  for (const deserializer of extraElementProtocolDeserializers) {
334
345
  const protocol = deserializer(json, plugins);
@@ -61,9 +61,12 @@ import {
61
61
  import { V1_INTERNAL__UnknownFunctionActivator } from '../../../model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.js';
62
62
  import { V1_SnowflakeApp } from '../../../model/packageableElements/function/V1_SnowflakeApp.js';
63
63
  import {
64
+ V1_HostedServiceDeploymentConfigurationAppModelSchema,
64
65
  V1_SnowflakeAppDeploymentConfigurationAppModelSchema,
65
66
  V1_deserializeDeploymentOwnership,
66
67
  V1_serializeDeploymentOwership,
68
+ V1_serializeOwnership,
69
+ V1_deserializeOwnership,
67
70
  } from './V1_FunctionActivatorSerializationHelper.js';
68
71
  import {
69
72
  V1_deserializeTestSuite,
@@ -72,6 +75,7 @@ import {
72
75
  import type { PureProtocolProcessorPlugin } from '../../../../PureProtocolProcessorPlugin.js';
73
76
  import type { V1_TestSuite } from '../../../model/test/V1_TestSuite.js';
74
77
  import { V1_DefaultValue } from '../../../model/packageableElements/domain/V1_DefaultValue.js';
78
+ import { V1_HostedService } from '../../../model/packageableElements/function/V1_HostedService.js';
75
79
 
76
80
  export const V1_CLASS_ELEMENT_PROTOCOL_TYPE = 'class';
77
81
  export const V1_PROFILE_ELEMENT_PROTOCOL_TYPE = 'profile';
@@ -81,6 +85,7 @@ export const V1_UNIT_ELEMENT_PROTOCOL_TYPE = 'unit';
81
85
  export const V1_ASSOCIATION_ELEMENT_PROTOCOL_TYPE = 'association';
82
86
  export const V1_FUNCTION_ELEMENT_PROTOCOL_TYPE = 'function';
83
87
  export const V1_SNOWFLAKE_APP_TYPE = 'snowflakeApp';
88
+ export const V1_HOSTED_SERVICE_TYPE = 'hostedService';
84
89
 
85
90
  export const V1_propertyPointerModelSchema = createModelSchema(
86
91
  V1_PropertyPointer,
@@ -180,6 +185,31 @@ export const V1_snowflakeAppModelSchema = createModelSchema(V1_SnowflakeApp, {
180
185
  ),
181
186
  });
182
187
 
188
+ export const V1_HostedServiceModelSchema = createModelSchema(V1_HostedService, {
189
+ _type: usingConstantValueSchema(V1_HOSTED_SERVICE_TYPE),
190
+ documentation: optional(primitive()),
191
+ pattern: primitive(),
192
+ autoActivateUpdates: primitive(),
193
+ storeModel: primitive(),
194
+ generateLineage: primitive(),
195
+ function: usingModelSchema(V1_packageableElementPointerModelSchema),
196
+ name: primitive(),
197
+ package: primitive(),
198
+ stereotypes: customListWithSchema(V1_stereotypePtrModelSchema, {
199
+ INTERNAL__forceReturnEmptyInTest: true,
200
+ }),
201
+ taggedValues: customListWithSchema(V1_taggedValueModelSchema, {
202
+ INTERNAL__forceReturnEmptyInTest: true,
203
+ }),
204
+ ownership: optionalCustom(
205
+ (val) => V1_serializeOwnership(val),
206
+ (val) => V1_deserializeOwnership(val),
207
+ ),
208
+ activationConfiguration: optional(
209
+ usingModelSchema(V1_HostedServiceDeploymentConfigurationAppModelSchema),
210
+ ),
211
+ });
212
+
183
213
  // ------------------------------------- Class -------------------------------------
184
214
 
185
215
  export const V1_defaultValueModelSchema = createModelSchema(V1_DefaultValue, {
@@ -24,17 +24,22 @@ import { V1_SnowflakeAppDeploymentConfiguration } from '../../../engine/function
24
24
  import {
25
25
  createModelSchema,
26
26
  deserialize,
27
+ list,
27
28
  primitive,
28
29
  serialize,
29
30
  } from 'serializr';
30
31
  import { V1_connectionPointerModelSchema } from './V1_ConnectionSerializationHelper.js';
31
32
  import {
32
33
  V1_DeploymentOwner,
34
+ V1_UserList,
33
35
  type V1_Ownership,
34
36
  } from '../../../model/packageableElements/function/V1_Ownership.js';
37
+ import { V1_HostedServiceDeploymentConfiguration } from '../../../engine/functionActivator/V1_HostedServiceDeploymentConfiguration.js';
35
38
 
36
39
  const V1_SNOWFLAKE_APP_DEPLOYMENT_CONFIGURATION_APP_TYPE =
37
40
  'snowflakeDeploymentConfiguration';
41
+ const V1_HOSTED_SERVICE_DEPLOYMENT_CONFIGURATION_APP_TYPE =
42
+ 'hostedServiceDeploymentConfiguration';
38
43
 
39
44
  export const V1_SnowflakeAppDeploymentConfigurationAppModelSchema =
40
45
  createModelSchema(V1_SnowflakeAppDeploymentConfiguration, {
@@ -44,6 +49,16 @@ export const V1_SnowflakeAppDeploymentConfigurationAppModelSchema =
44
49
  activationConnection: usingModelSchema(V1_connectionPointerModelSchema),
45
50
  });
46
51
 
52
+ export const V1_HostedServiceDeploymentConfigurationAppModelSchema =
53
+ createModelSchema(V1_HostedServiceDeploymentConfiguration, {
54
+ _type: usingConstantValueSchema(
55
+ V1_HOSTED_SERVICE_DEPLOYMENT_CONFIGURATION_APP_TYPE,
56
+ ),
57
+ host: primitive(),
58
+ port: primitive(),
59
+ path: primitive(),
60
+ });
61
+
47
62
  enum V1_OwnershipType {
48
63
  DEPLOYMENT_OWNERSHIP = 'DeploymentOwner',
49
64
  USERLIST_OWNERSHIP = 'userList',
@@ -54,27 +69,45 @@ const deploymentOwnershipSchema = createModelSchema(V1_DeploymentOwner, {
54
69
  id: primitive(),
55
70
  });
56
71
 
72
+ const userListOwnershipSchema = createModelSchema(V1_UserList, {
73
+ _type: usingConstantValueSchema(V1_OwnershipType.USERLIST_OWNERSHIP),
74
+ users: list(primitive()),
75
+ });
76
+
57
77
  export const V1_deserializeDeploymentOwnership = (
58
- json: PlainObject<V1_Ownership>,
59
- ): V1_DeploymentOwner => {
60
- switch (json._type) {
61
- case V1_OwnershipType.DEPLOYMENT_OWNERSHIP:
62
- return deserialize(deploymentOwnershipSchema, json);
63
- default:
64
- throw new UnsupportedOperationError(
65
- `Can't deserialize function activator ownership of type '${json._type}'`,
66
- );
67
- }
68
- };
78
+ json: PlainObject<V1_DeploymentOwner>,
79
+ ): V1_DeploymentOwner => deserialize(deploymentOwnershipSchema, json);
69
80
 
70
81
  export const V1_serializeDeploymentOwership = (
71
82
  protocol: V1_DeploymentOwner,
83
+ ): PlainObject<V1_DeploymentOwner> =>
84
+ serialize(deploymentOwnershipSchema, protocol);
85
+
86
+ export const V1_serializeOwnership = (
87
+ protocol: V1_Ownership,
72
88
  ): PlainObject<V1_Ownership> => {
73
89
  if (protocol instanceof V1_DeploymentOwner) {
74
90
  return serialize(deploymentOwnershipSchema, protocol);
91
+ } else if (protocol instanceof V1_UserList) {
92
+ return serialize(userListOwnershipSchema, protocol);
75
93
  }
76
94
  throw new UnsupportedOperationError(
77
95
  `Can't serialize function activator ownership`,
78
96
  protocol,
79
97
  );
80
98
  };
99
+
100
+ export const V1_deserializeOwnership = (
101
+ json: PlainObject<V1_Ownership>,
102
+ ): V1_Ownership => {
103
+ switch (json._type) {
104
+ case V1_OwnershipType.DEPLOYMENT_OWNERSHIP:
105
+ return deserialize(deploymentOwnershipSchema, json);
106
+ case V1_OwnershipType.USERLIST_OWNERSHIP:
107
+ return deserialize(userListOwnershipSchema, json);
108
+ default:
109
+ throw new UnsupportedOperationError(
110
+ `Can't deserialize rest service ownership of type '${json._type}'`,
111
+ );
112
+ }
113
+ };
package/src/index.ts CHANGED
@@ -81,7 +81,13 @@ export { INTERNAL__UnknownPackageableElement } from './graph/metamodel/pure/pack
81
81
  export {
82
82
  Ownership,
83
83
  DeploymentOwner,
84
+ UserList,
84
85
  } from './graph/metamodel/pure/packageableElements/function/Ownership.js';
86
+ export {
87
+ HostedService,
88
+ DEFAULT_HOSTED_SERVICE_PATTERN,
89
+ } from './graph/metamodel/pure/packageableElements/function/HostedService.js';
90
+ export { HostedServiceDeploymentConfiguration } from './graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.js';
85
91
 
86
92
  // --------------------------------------------- VALUE SPECIFICATION --------------------------------------------------
87
93
 
package/tsconfig.json CHANGED
@@ -113,6 +113,7 @@
113
113
  "./src/graph/metamodel/pure/executionPlan/result/TDSResultType.ts",
114
114
  "./src/graph/metamodel/pure/executionPlan/result/VoidResultType.ts",
115
115
  "./src/graph/metamodel/pure/functionActivator/DeploymentConfiguration.ts",
116
+ "./src/graph/metamodel/pure/functionActivator/HostedServiceDeploymentConfiguration.ts",
116
117
  "./src/graph/metamodel/pure/functionActivator/SnowflakeAppDeploymentConfiguration.ts",
117
118
  "./src/graph/metamodel/pure/packageableElements/INTERNAL__UnknownPackageableElement.ts",
118
119
  "./src/graph/metamodel/pure/packageableElements/PackageableElement.ts",
@@ -161,6 +162,7 @@
161
162
  "./src/graph/metamodel/pure/packageableElements/fileGeneration/FileGenerationSpecification.ts",
162
163
  "./src/graph/metamodel/pure/packageableElements/function/ConcreteFunctionDefinition.ts",
163
164
  "./src/graph/metamodel/pure/packageableElements/function/FunctionActivator.ts",
165
+ "./src/graph/metamodel/pure/packageableElements/function/HostedService.ts",
164
166
  "./src/graph/metamodel/pure/packageableElements/function/INTERNAL__UnknownFunctionActivator.ts",
165
167
  "./src/graph/metamodel/pure/packageableElements/function/Ownership.ts",
166
168
  "./src/graph/metamodel/pure/packageableElements/function/SnowflakeApp.ts",
@@ -416,6 +418,7 @@
416
418
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorError.ts",
417
419
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInfo.ts",
418
420
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_FunctionActivatorInput.ts",
421
+ "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_HostedServiceDeploymentConfiguration.ts",
419
422
  "./src/graph-manager/protocol/pure/v1/engine/functionActivator/V1_SnowflakeAppDeploymentConfiguration.ts",
420
423
  "./src/graph-manager/protocol/pure/v1/engine/generation/V1_ArtifactGenerationExtensionApi.ts",
421
424
  "./src/graph-manager/protocol/pure/v1/engine/generation/V1_DatabaseBuilderInput.ts",
@@ -531,6 +534,7 @@
531
534
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/fileGeneration/V1_FileGenerationSpecification.ts",
532
535
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_ConcreteFunctionDefinition.ts",
533
536
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_FunctionActivator.ts",
537
+ "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_HostedService.ts",
534
538
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_INTERNAL__UnknownFunctionActivator.ts",
535
539
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_Ownership.ts",
536
540
  "./src/graph-manager/protocol/pure/v1/model/packageableElements/function/V1_SnowflakeApp.ts",