@twin.org/engine-types 0.0.3-next.20 → 0.0.3-next.21

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 (239) hide show
  1. package/dist/es/components/attestation.js +20 -22
  2. package/dist/es/components/attestation.js.map +1 -1
  3. package/dist/es/components/auditableItemGraph.js +26 -22
  4. package/dist/es/components/auditableItemGraph.js.map +1 -1
  5. package/dist/es/components/auditableItemStream.js +26 -22
  6. package/dist/es/components/auditableItemStream.js.map +1 -1
  7. package/dist/es/components/backgroundTask.js +14 -12
  8. package/dist/es/components/backgroundTask.js.map +1 -1
  9. package/dist/es/components/blobStorage.js +69 -80
  10. package/dist/es/components/blobStorage.js.map +1 -1
  11. package/dist/es/components/contextIdHandler.js +9 -9
  12. package/dist/es/components/contextIdHandler.js.map +1 -1
  13. package/dist/es/components/dataProcessing.js +33 -32
  14. package/dist/es/components/dataProcessing.js.map +1 -1
  15. package/dist/es/components/dataSpaceConnector.js +26 -25
  16. package/dist/es/components/dataSpaceConnector.js.map +1 -1
  17. package/dist/es/components/documentManagement.js +12 -12
  18. package/dist/es/components/documentManagement.js.map +1 -1
  19. package/dist/es/components/entityStorage.js +19 -20
  20. package/dist/es/components/entityStorage.js.map +1 -1
  21. package/dist/es/components/eventBus.js +19 -27
  22. package/dist/es/components/eventBus.js.map +1 -1
  23. package/dist/es/components/faucet.js +18 -18
  24. package/dist/es/components/faucet.js.map +1 -1
  25. package/dist/es/components/federatedCatalogue.js +14 -14
  26. package/dist/es/components/federatedCatalogue.js.map +1 -1
  27. package/dist/es/components/federatedCatalogueFilter.js +12 -9
  28. package/dist/es/components/federatedCatalogueFilter.js.map +1 -1
  29. package/dist/es/components/identity.js +28 -31
  30. package/dist/es/components/identity.js.map +1 -1
  31. package/dist/es/components/identityProfile.js +26 -24
  32. package/dist/es/components/identityProfile.js.map +1 -1
  33. package/dist/es/components/identityResolver.js +36 -40
  34. package/dist/es/components/identityResolver.js.map +1 -1
  35. package/dist/es/components/immutableProof.js +23 -21
  36. package/dist/es/components/immutableProof.js.map +1 -1
  37. package/dist/es/components/logging.js +28 -28
  38. package/dist/es/components/logging.js.map +1 -1
  39. package/dist/es/components/messaging.js +77 -89
  40. package/dist/es/components/messaging.js.map +1 -1
  41. package/dist/es/components/nft.js +33 -33
  42. package/dist/es/components/nft.js.map +1 -1
  43. package/dist/es/components/rightsManagementPap.js +17 -17
  44. package/dist/es/components/rightsManagementPap.js.map +1 -1
  45. package/dist/es/components/rightsManagementPdp.js +10 -10
  46. package/dist/es/components/rightsManagementPdp.js.map +1 -1
  47. package/dist/es/components/rightsManagementPep.js +10 -10
  48. package/dist/es/components/rightsManagementPep.js.map +1 -1
  49. package/dist/es/components/rightsManagementPip.js +8 -10
  50. package/dist/es/components/rightsManagementPip.js.map +1 -1
  51. package/dist/es/components/rightsManagementPmp.js +10 -10
  52. package/dist/es/components/rightsManagementPmp.js.map +1 -1
  53. package/dist/es/components/rightsManagementPnap.js +20 -18
  54. package/dist/es/components/rightsManagementPnap.js.map +1 -1
  55. package/dist/es/components/rightsManagementPnp.js +12 -14
  56. package/dist/es/components/rightsManagementPnp.js.map +1 -1
  57. package/dist/es/components/rightsManagementPolicyArbiter.js +15 -10
  58. package/dist/es/components/rightsManagementPolicyArbiter.js.map +1 -1
  59. package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js +17 -11
  60. package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js.map +1 -1
  61. package/dist/es/components/rightsManagementPolicyExecutionAction.js +8 -10
  62. package/dist/es/components/rightsManagementPolicyExecutionAction.js.map +1 -1
  63. package/dist/es/components/rightsManagementPolicyInformationSource.js +14 -15
  64. package/dist/es/components/rightsManagementPolicyInformationSource.js.map +1 -1
  65. package/dist/es/components/rightsManagementPolicyNegotiator.js +10 -10
  66. package/dist/es/components/rightsManagementPolicyNegotiator.js.map +1 -1
  67. package/dist/es/components/rightsManagementPolicyObligationEnforcer.js +27 -0
  68. package/dist/es/components/rightsManagementPolicyObligationEnforcer.js.map +1 -0
  69. package/dist/es/components/rightsManagementPolicyRequester.js +8 -10
  70. package/dist/es/components/rightsManagementPolicyRequester.js.map +1 -1
  71. package/dist/es/components/rightsManagementPxp.js +8 -10
  72. package/dist/es/components/rightsManagementPxp.js.map +1 -1
  73. package/dist/es/components/synchronisedStorage.js +25 -23
  74. package/dist/es/components/synchronisedStorage.js.map +1 -1
  75. package/dist/es/components/taskScheduler.js +10 -10
  76. package/dist/es/components/taskScheduler.js.map +1 -1
  77. package/dist/es/components/telemetry.js +29 -32
  78. package/dist/es/components/telemetry.js.map +1 -1
  79. package/dist/es/components/tenant.js +14 -11
  80. package/dist/es/components/tenant.js.map +1 -1
  81. package/dist/es/components/trust.js +8 -10
  82. package/dist/es/components/trust.js.map +1 -1
  83. package/dist/es/components/trustGenerator.js +10 -10
  84. package/dist/es/components/trustGenerator.js.map +1 -1
  85. package/dist/es/components/trustVerifier.js +10 -10
  86. package/dist/es/components/trustVerifier.js.map +1 -1
  87. package/dist/es/components/vault.js +15 -12
  88. package/dist/es/components/vault.js.map +1 -1
  89. package/dist/es/components/verifiableStorage.js +32 -34
  90. package/dist/es/components/verifiableStorage.js.map +1 -1
  91. package/dist/es/components/wallet.js +23 -24
  92. package/dist/es/components/wallet.js.map +1 -1
  93. package/dist/es/index.js +3 -0
  94. package/dist/es/index.js.map +1 -1
  95. package/dist/es/models/IEngineConfig.js.map +1 -1
  96. package/dist/es/models/config/blobStorageConnectorConfig.js.map +1 -1
  97. package/dist/es/models/config/rightsManagementPolicyArbiterComponentConfig.js.map +1 -1
  98. package/dist/es/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.js.map +1 -1
  99. package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js +2 -0
  100. package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js.map +1 -0
  101. package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js +5 -1
  102. package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js.map +1 -1
  103. package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js +5 -1
  104. package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js.map +1 -1
  105. package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js +13 -0
  106. package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js.map +1 -0
  107. package/dist/es/utils/engineTypeHelper.js +19 -1
  108. package/dist/es/utils/engineTypeHelper.js.map +1 -1
  109. package/dist/types/components/attestation.d.ts +5 -13
  110. package/dist/types/components/auditableItemGraph.d.ts +3 -7
  111. package/dist/types/components/auditableItemStream.d.ts +3 -7
  112. package/dist/types/components/backgroundTask.d.ts +3 -7
  113. package/dist/types/components/blobStorage.d.ts +4 -12
  114. package/dist/types/components/contextIdHandler.d.ts +3 -7
  115. package/dist/types/components/dataProcessing.d.ts +5 -17
  116. package/dist/types/components/dataSpaceConnector.d.ts +3 -7
  117. package/dist/types/components/documentManagement.d.ts +3 -7
  118. package/dist/types/components/entityStorage.d.ts +3 -7
  119. package/dist/types/components/eventBus.d.ts +4 -12
  120. package/dist/types/components/faucet.d.ts +2 -7
  121. package/dist/types/components/federatedCatalogue.d.ts +3 -7
  122. package/dist/types/components/federatedCatalogueFilter.d.ts +2 -7
  123. package/dist/types/components/identity.d.ts +4 -12
  124. package/dist/types/components/identityProfile.d.ts +4 -12
  125. package/dist/types/components/identityResolver.d.ts +4 -12
  126. package/dist/types/components/immutableProof.d.ts +3 -7
  127. package/dist/types/components/logging.d.ts +4 -12
  128. package/dist/types/components/messaging.d.ts +7 -27
  129. package/dist/types/components/nft.d.ts +4 -12
  130. package/dist/types/components/rightsManagementPap.d.ts +3 -7
  131. package/dist/types/components/rightsManagementPdp.d.ts +3 -7
  132. package/dist/types/components/rightsManagementPep.d.ts +3 -7
  133. package/dist/types/components/rightsManagementPip.d.ts +3 -7
  134. package/dist/types/components/rightsManagementPmp.d.ts +3 -7
  135. package/dist/types/components/rightsManagementPnap.d.ts +3 -7
  136. package/dist/types/components/rightsManagementPnp.d.ts +3 -7
  137. package/dist/types/components/rightsManagementPolicyArbiter.d.ts +2 -7
  138. package/dist/types/components/rightsManagementPolicyEnforcementProcessor.d.ts +2 -7
  139. package/dist/types/components/rightsManagementPolicyExecutionAction.d.ts +2 -7
  140. package/dist/types/components/rightsManagementPolicyInformationSource.d.ts +2 -7
  141. package/dist/types/components/rightsManagementPolicyNegotiator.d.ts +2 -7
  142. package/dist/types/components/rightsManagementPolicyObligationEnforcer.d.ts +12 -0
  143. package/dist/types/components/rightsManagementPolicyRequester.d.ts +2 -7
  144. package/dist/types/components/rightsManagementPxp.d.ts +3 -7
  145. package/dist/types/components/synchronisedStorage.d.ts +3 -7
  146. package/dist/types/components/taskScheduler.d.ts +3 -7
  147. package/dist/types/components/telemetry.d.ts +4 -12
  148. package/dist/types/components/tenant.d.ts +3 -7
  149. package/dist/types/components/trust.d.ts +3 -7
  150. package/dist/types/components/trustGenerator.d.ts +2 -7
  151. package/dist/types/components/trustVerifier.d.ts +2 -7
  152. package/dist/types/components/vault.d.ts +2 -7
  153. package/dist/types/components/verifiableStorage.d.ts +4 -12
  154. package/dist/types/components/wallet.d.ts +2 -7
  155. package/dist/types/index.d.ts +3 -0
  156. package/dist/types/models/IEngineConfig.d.ts +5 -0
  157. package/dist/types/models/config/blobStorageConnectorConfig.d.ts +4 -1
  158. package/dist/types/models/config/rightsManagementPolicyArbiterComponentConfig.d.ts +4 -1
  159. package/dist/types/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.d.ts +4 -1
  160. package/dist/types/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.d.ts +9 -0
  161. package/dist/types/models/types/rightsManagementPolicyArbiterComponentType.d.ts +4 -0
  162. package/dist/types/models/types/rightsManagementPolicyEnforcementProcessorComponentType.d.ts +4 -0
  163. package/dist/types/models/types/rightsManagementPolicyObligationEnforcerComponentType.d.ts +13 -0
  164. package/dist/types/utils/engineTypeHelper.d.ts +11 -0
  165. package/docs/changelog.md +15 -0
  166. package/docs/reference/classes/EngineTypeHelper.md +53 -0
  167. package/docs/reference/functions/initialiseAttestationComponent.md +2 -2
  168. package/docs/reference/functions/initialiseAttestationConnector.md +3 -3
  169. package/docs/reference/functions/initialiseAuditableItemGraphComponent.md +2 -2
  170. package/docs/reference/functions/initialiseAuditableItemStreamComponent.md +2 -2
  171. package/docs/reference/functions/initialiseBackgroundTaskComponent.md +2 -2
  172. package/docs/reference/functions/initialiseBlobStorageComponent.md +2 -2
  173. package/docs/reference/functions/initialiseBlobStorageConnector.md +2 -2
  174. package/docs/reference/functions/initialiseContextIdHandlerComponent.md +2 -2
  175. package/docs/reference/functions/initialiseDataConverterConnector.md +2 -2
  176. package/docs/reference/functions/initialiseDataExtractorConnector.md +2 -2
  177. package/docs/reference/functions/initialiseDataProcessingComponent.md +2 -2
  178. package/docs/reference/functions/initialiseDataSpaceConnectorComponent.md +2 -2
  179. package/docs/reference/functions/initialiseDocumentManagementComponent.md +2 -2
  180. package/docs/reference/functions/initialiseEntityStorageComponent.md +2 -2
  181. package/docs/reference/functions/initialiseEventBusComponent.md +2 -2
  182. package/docs/reference/functions/initialiseEventBusConnector.md +2 -2
  183. package/docs/reference/functions/initialiseFaucetConnector.md +2 -2
  184. package/docs/reference/functions/initialiseFederatedCatalogueComponent.md +2 -2
  185. package/docs/reference/functions/initialiseFederatedCatalogueFilterComponent.md +2 -2
  186. package/docs/reference/functions/initialiseIdentityComponent.md +2 -2
  187. package/docs/reference/functions/initialiseIdentityConnector.md +2 -2
  188. package/docs/reference/functions/initialiseIdentityProfileComponent.md +2 -2
  189. package/docs/reference/functions/initialiseIdentityProfileConnector.md +2 -2
  190. package/docs/reference/functions/initialiseIdentityResolverComponent.md +2 -2
  191. package/docs/reference/functions/initialiseIdentityResolverConnector.md +2 -2
  192. package/docs/reference/functions/initialiseImmutableProofComponent.md +2 -2
  193. package/docs/reference/functions/initialiseLoggingComponent.md +2 -2
  194. package/docs/reference/functions/initialiseLoggingConnector.md +2 -2
  195. package/docs/reference/functions/initialiseMessagingAdminComponent.md +2 -2
  196. package/docs/reference/functions/initialiseMessagingComponent.md +2 -2
  197. package/docs/reference/functions/initialiseMessagingEmailConnector.md +2 -2
  198. package/docs/reference/functions/initialiseMessagingPushNotificationConnector.md +2 -2
  199. package/docs/reference/functions/initialiseMessagingSmsConnector.md +2 -2
  200. package/docs/reference/functions/initialiseNftComponent.md +2 -2
  201. package/docs/reference/functions/initialiseNftConnector.md +2 -2
  202. package/docs/reference/functions/initialiseRightsManagementPapComponent.md +2 -2
  203. package/docs/reference/functions/initialiseRightsManagementPdpComponent.md +2 -2
  204. package/docs/reference/functions/initialiseRightsManagementPepComponent.md +2 -2
  205. package/docs/reference/functions/initialiseRightsManagementPipComponent.md +2 -2
  206. package/docs/reference/functions/initialiseRightsManagementPmpComponent.md +2 -2
  207. package/docs/reference/functions/initialiseRightsManagementPnapComponent.md +2 -2
  208. package/docs/reference/functions/initialiseRightsManagementPnpComponent.md +2 -2
  209. package/docs/reference/functions/initialiseRightsManagementPolicyArbiterComponent.md +2 -2
  210. package/docs/reference/functions/initialiseRightsManagementPolicyEnforcementProcessorComponent.md +2 -2
  211. package/docs/reference/functions/initialiseRightsManagementPolicyExecutionActionComponent.md +2 -2
  212. package/docs/reference/functions/initialiseRightsManagementPolicyInformationSourceComponent.md +2 -2
  213. package/docs/reference/functions/initialiseRightsManagementPolicyNegotiatorComponent.md +2 -2
  214. package/docs/reference/functions/initialiseRightsManagementPolicyObligationEnforcerComponent.md +31 -0
  215. package/docs/reference/functions/initialiseRightsManagementPolicyRequesterComponent.md +2 -2
  216. package/docs/reference/functions/initialiseRightsManagementPxpComponent.md +2 -2
  217. package/docs/reference/functions/initialiseSynchronisedStorageComponent.md +2 -2
  218. package/docs/reference/functions/initialiseTaskSchedulerComponent.md +2 -2
  219. package/docs/reference/functions/initialiseTelemetryComponent.md +2 -2
  220. package/docs/reference/functions/initialiseTelemetryConnector.md +2 -2
  221. package/docs/reference/functions/initialiseTenantAdminComponent.md +2 -2
  222. package/docs/reference/functions/initialiseTrustComponent.md +2 -2
  223. package/docs/reference/functions/initialiseTrustGeneratorComponent.md +2 -2
  224. package/docs/reference/functions/initialiseTrustVerifierComponent.md +2 -2
  225. package/docs/reference/functions/initialiseVaultConnector.md +2 -2
  226. package/docs/reference/functions/initialiseVerifiableStorageComponent.md +2 -2
  227. package/docs/reference/functions/initialiseVerifiableStorageConnector.md +2 -2
  228. package/docs/reference/functions/initialiseWalletConnector.md +2 -2
  229. package/docs/reference/index.md +4 -0
  230. package/docs/reference/interfaces/IEngineConfig.md +6 -0
  231. package/docs/reference/type-aliases/BlobStorageConnectorConfig.md +1 -1
  232. package/docs/reference/type-aliases/RightsManagementPolicyArbiterComponentConfig.md +1 -13
  233. package/docs/reference/type-aliases/RightsManagementPolicyEnforcementProcessorComponentConfig.md +1 -13
  234. package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentConfig.md +17 -0
  235. package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentType.md +5 -0
  236. package/docs/reference/variables/RightsManagementPolicyArbiterComponentType.md +6 -0
  237. package/docs/reference/variables/RightsManagementPolicyEnforcementProcessorComponentType.md +6 -0
  238. package/docs/reference/variables/RightsManagementPolicyObligationEnforcerComponentType.md +13 -0
  239. package/package.json +3 -3
@@ -7,27 +7,27 @@ import { AttestationService } from "@twin.org/attestation-service";
7
7
  import { ComponentFactory } from "@twin.org/core";
8
8
  import { AttestationComponentType } from "../models/types/attestationComponentType.js";
9
9
  import { AttestationConnectorType } from "../models/types/attestationConnectorType.js";
10
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
10
11
  /**
11
12
  * Initialise the attestation connector.
12
13
  * @param engineCore The engine core.
13
14
  * @param context The context for the engine.
14
- * @param instanceConfig The instance config.
15
+ * @param instanceConfig The instance config type.
15
16
  * @returns The instance created and the factory for it.
16
17
  */
17
- export async function initialiseAttestationConnector(engineCore, context, instanceConfig) {
18
- let component;
19
- let instanceType;
18
+ export function initialiseAttestationConnector(engineCore, context, instanceConfig) {
19
+ let createComponent;
20
+ let instanceTypeName;
20
21
  if (instanceConfig.type === AttestationConnectorType.Nft) {
21
- component = new NftAttestationConnector({
22
+ createComponent = (createConfig) => new NftAttestationConnector(EngineTypeHelper.mergeConfig({
22
23
  identityConnectorType: engineCore.getRegisteredInstanceType("identityConnector"),
23
- nftConnectorType: engineCore.getRegisteredInstanceType("nftConnector"),
24
- ...instanceConfig.options
25
- });
26
- instanceType = NftAttestationConnector.NAMESPACE;
24
+ nftConnectorType: engineCore.getRegisteredInstanceType("nftConnector")
25
+ }, createConfig.options));
26
+ instanceTypeName = NftAttestationConnector.NAMESPACE;
27
27
  }
28
28
  return {
29
- component,
30
- instanceType,
29
+ createComponent: createComponent,
30
+ instanceTypeName,
31
31
  factory: AttestationConnectorFactory
32
32
  };
33
33
  }
@@ -38,22 +38,20 @@ export async function initialiseAttestationConnector(engineCore, context, instan
38
38
  * @param instanceConfig The instance config.
39
39
  * @returns The instance created and the factory for it.
40
40
  */
41
- export async function initialiseAttestationComponent(engineCore, context, instanceConfig) {
42
- let component;
43
- let instanceType;
41
+ export function initialiseAttestationComponent(engineCore, context, instanceConfig) {
42
+ let createComponent;
43
+ let instanceTypeName;
44
44
  if (instanceConfig.type === AttestationComponentType.Service) {
45
- component = new AttestationService({
46
- ...instanceConfig.options
47
- });
48
- instanceType = "attestation-service";
45
+ createComponent = (createConfig) => new AttestationService(EngineTypeHelper.mergeConfig(createConfig.options));
46
+ instanceTypeName = "attestation-service";
49
47
  }
50
48
  else if (instanceConfig.type === AttestationComponentType.RestClient) {
51
- component = new AttestationRestClient(instanceConfig.options);
52
- instanceType = "attestation-rest-client";
49
+ createComponent = (createConfig) => new AttestationRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
50
+ instanceTypeName = "attestation-rest-client";
53
51
  }
54
52
  return {
55
- component,
56
- instanceType,
53
+ createComponent: createComponent,
54
+ instanceTypeName,
57
55
  factory: ComponentFactory
58
56
  };
59
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../../src/components/attestation.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACN,2BAA2B,EAG3B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAM1C,IAAI,SAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,GAAG,EAAE,CAAC;QAC1D,SAAS,GAAG,IAAI,uBAAuB,CAAC;YACvC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;YAChF,gBAAgB,EAAE,UAAU,CAAC,yBAAyB,CAAC,cAAc,CAAC;YACtE,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,2BAA2B;KACpC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAE1C,IAAI,SAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC9D,SAAS,GAAG,IAAI,kBAAkB,CAAC;YAClC,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,wBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,SAAS,GAAG,IAAI,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9D,YAAY,4BAAyC,CAAC;IACvD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { NftAttestationConnector } from \"@twin.org/attestation-connector-nft\";\nimport {\n\tAttestationConnectorFactory,\n\ttype IAttestationComponent,\n\ttype IAttestationConnector\n} from \"@twin.org/attestation-models\";\nimport { AttestationRestClient } from \"@twin.org/attestation-rest-client\";\nimport { AttestationService } from \"@twin.org/attestation-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AttestationComponentConfig } from \"../models/config/attestationComponentConfig.js\";\nimport type { AttestationConnectorConfig } from \"../models/config/attestationConnectorConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AttestationComponentType } from \"../models/types/attestationComponentType.js\";\nimport { AttestationConnectorType } from \"../models/types/attestationConnectorType.js\";\n\n/**\n * Initialise the attestation connector.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAttestationConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AttestationConnectorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof AttestationConnectorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IAttestationConnector | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AttestationConnectorType.Nft) {\n\t\tcomponent = new NftAttestationConnector({\n\t\t\tidentityConnectorType: engineCore.getRegisteredInstanceType(\"identityConnector\"),\n\t\t\tnftConnectorType: engineCore.getRegisteredInstanceType(\"nftConnector\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = NftAttestationConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: AttestationConnectorFactory\n\t};\n}\n\n/**\n * Initialise the attestation component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAttestationComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AttestationComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IAttestationComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AttestationComponentType.Service) {\n\t\tcomponent = new AttestationService({\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(AttestationService);\n\t} else if (instanceConfig.type === AttestationComponentType.RestClient) {\n\t\tcomponent = new AttestationRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(AttestationRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"attestation.js","sourceRoot":"","sources":["../../../src/components/attestation.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAUnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC7C,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAE1C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,GAAG,EAAE,CAAC;QAC1D,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,uBAAuB,CAC1B,gBAAgB,CAAC,WAAW,CAC3B;YACC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;YAChF,gBAAgB,EAAE,UAAU,CAAC,yBAAyB,CAAC,cAAc,CAAC;SACtE,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,GAAG,uBAAuB,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,2BAA2B;KACpC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC7C,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAE1C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC9D,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,kBAAkB,CACrB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,wBAAsC,CAAC;IACxD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,qBAAqB,CACxB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,4BAAyC,CAAC;IAC3D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { NftAttestationConnector } from \"@twin.org/attestation-connector-nft\";\nimport type { INftAttestationConnectorConstructorOptions } from \"@twin.org/attestation-connector-nft\";\nimport { AttestationConnectorFactory } from \"@twin.org/attestation-models\";\nimport { AttestationRestClient } from \"@twin.org/attestation-rest-client\";\nimport { AttestationService } from \"@twin.org/attestation-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AttestationComponentConfig } from \"../models/config/attestationComponentConfig.js\";\nimport type { AttestationConnectorConfig } from \"../models/config/attestationConnectorConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AttestationComponentType } from \"../models/types/attestationComponentType.js\";\nimport { AttestationConnectorType } from \"../models/types/attestationConnectorType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the attestation connector.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config type.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAttestationConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AttestationConnectorConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof AttestationConnectorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AttestationConnectorType.Nft) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew NftAttestationConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<INftAttestationConnectorConstructorOptions>(\n\t\t\t\t\t{\n\t\t\t\t\t\tidentityConnectorType: engineCore.getRegisteredInstanceType(\"identityConnector\"),\n\t\t\t\t\t\tnftConnectorType: engineCore.getRegisteredInstanceType(\"nftConnector\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = NftAttestationConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: AttestationConnectorFactory\n\t};\n}\n\n/**\n * Initialise the attestation component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAttestationComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AttestationComponentConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AttestationComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AttestationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AttestationService);\n\t} else if (instanceConfig.type === AttestationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AttestationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AttestationRestClient);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,9 +1,12 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { AuditableItemGraphRestClient } from "@twin.org/auditable-item-graph-rest-client";
2
4
  import { AuditableItemGraphService, initSchema as initSchemaAuditableItemGraph } from "@twin.org/auditable-item-graph-service";
3
5
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
4
6
  import { ComponentFactory } from "@twin.org/core";
5
7
  import { initialiseEntityStorageConnector } from "./entityStorage.js";
6
8
  import { AuditableItemGraphComponentType } from "../models/types/auditableItemGraphComponentType.js";
9
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
7
10
  /**
8
11
  * Initialise the auditable item graph component.
9
12
  * @param engineCore The engine core.
@@ -11,33 +14,34 @@ import { AuditableItemGraphComponentType } from "../models/types/auditableItemGr
11
14
  * @param instanceConfig The instance config.
12
15
  * @returns The instance created and the factory for it.
13
16
  */
14
- export async function initialiseAuditableItemGraphComponent(engineCore, context, instanceConfig) {
15
- let component;
16
- let instanceType;
17
+ export function initialiseAuditableItemGraphComponent(engineCore, context, instanceConfig) {
18
+ let createComponent;
19
+ let instanceTypeName;
17
20
  if (instanceConfig.type === AuditableItemGraphComponentType.Service) {
18
- initSchemaAuditableItemGraph();
19
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.vertexEntityStorageType, "AuditableItemGraphVertex", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
20
- ContextIdKeys.Node,
21
- ContextIdKeys.Tenant
22
- ]));
23
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.changesetEntityStorageType, "AuditableItemGraphChangeset", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
24
- ContextIdKeys.Node,
25
- ContextIdKeys.Tenant
26
- ]));
27
- component = new AuditableItemGraphService({
28
- immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
29
- eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent"),
30
- ...instanceConfig.options
31
- });
32
- instanceType = "auditable-item-graph-service";
21
+ createComponent = (createConfig) => {
22
+ initSchemaAuditableItemGraph();
23
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.vertexEntityStorageType, "AuditableItemGraphVertex", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
24
+ ContextIdKeys.Node,
25
+ ContextIdKeys.Tenant
26
+ ]));
27
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.changesetEntityStorageType, "AuditableItemGraphChangeset", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
28
+ ContextIdKeys.Node,
29
+ ContextIdKeys.Tenant
30
+ ]));
31
+ return new AuditableItemGraphService(EngineTypeHelper.mergeConfig({
32
+ immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
33
+ eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent")
34
+ }, createConfig.options));
35
+ };
36
+ instanceTypeName = "auditable-item-graph-service";
33
37
  }
34
38
  else if (instanceConfig.type === AuditableItemGraphComponentType.RestClient) {
35
- component = new AuditableItemGraphRestClient(instanceConfig.options);
36
- instanceType = "auditable-item-graph-rest-client";
39
+ createComponent = (createConfig) => new AuditableItemGraphRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
40
+ instanceTypeName = "auditable-item-graph-rest-client";
37
41
  }
38
42
  return {
39
- component,
40
- instanceType,
43
+ createComponent: createComponent,
44
+ instanceTypeName,
41
45
  factory: ComponentFactory
42
46
  };
43
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auditableItemGraph.js","sourceRoot":"","sources":["../../../src/components/auditableItemGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAEN,yBAAyB,EAEzB,UAAU,IAAI,4BAA4B,EAC1C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAGnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAErG;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CAC1D,UAAsC,EACtC,OAA0C,EAC1C,cAAiD;IAEjD,IAAI,SAAmD,CAAC;IACxD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QACrE,4BAA4B,EAAE,CAAC;QAE/B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,uBAAuB,8BAE/C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,0BAA0B,iCAElD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,yBAAyB,CAAC;YACzC,2BAA2B,EAAE,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;YAC5F,qBAAqB,EAAE,UAAU,CAAC,iCAAiC,CAAC,mBAAmB,CAAC;YACxF,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,iCAA6C,CAAC;IAC3D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,UAAU,EAAE,CAAC;QAC/E,SAAS,GAAG,IAAI,4BAA4B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrE,YAAY,qCAAgD,CAAC;IAC9D,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IAuditableItemGraphComponent } from \"@twin.org/auditable-item-graph-models\";\nimport { AuditableItemGraphRestClient } from \"@twin.org/auditable-item-graph-rest-client\";\nimport {\n\ttype AuditableItemGraphChangeset,\n\tAuditableItemGraphService,\n\ttype AuditableItemGraphVertex,\n\tinitSchema as initSchemaAuditableItemGraph\n} from \"@twin.org/auditable-item-graph-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { AuditableItemGraphComponentConfig } from \"../models/config/auditableItemGraphComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AuditableItemGraphComponentType } from \"../models/types/auditableItemGraphComponentType.js\";\n\n/**\n * Initialise the auditable item graph component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAuditableItemGraphComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AuditableItemGraphComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IAuditableItemGraphComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AuditableItemGraphComponentType.Service) {\n\t\tinitSchemaAuditableItemGraph();\n\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.vertexEntityStorageType,\n\t\t\tnameof<AuditableItemGraphVertex>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.changesetEntityStorageType,\n\t\t\tnameof<AuditableItemGraphChangeset>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\n\t\tcomponent = new AuditableItemGraphService({\n\t\t\timmutableProofComponentType: engineCore.getRegisteredInstanceType(\"immutableProofComponent\"),\n\t\t\teventBusComponentType: engineCore.getRegisteredInstanceTypeOptional(\"eventBusComponent\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(AuditableItemGraphService);\n\t} else if (instanceConfig.type === AuditableItemGraphComponentType.RestClient) {\n\t\tcomponent = new AuditableItemGraphRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(AuditableItemGraphRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"auditableItemGraph.js","sourceRoot":"","sources":["../../../src/components/auditableItemGraph.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAEN,yBAAyB,EAEzB,UAAU,IAAI,4BAA4B,EAC1C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAOnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,qCAAqC,CACpD,UAAsC,EACtC,OAA0C,EAC1C,cAAiD;IAEjD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QACrE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,4BAA4B,EAAE,CAAC;YAE/B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,uBAAuB,8BAE7C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,0BAA0B,iCAEhD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YAEF,OAAO,IAAI,yBAAyB,CACnC,gBAAgB,CAAC,WAAW,CAC3B;gBACC,2BAA2B,EAC1B,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;gBAChE,qBAAqB,EAAE,UAAU,CAAC,iCAAiC,CAAC,mBAAmB,CAAC;aACxF,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,iCAA6C,CAAC;IAC/D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,UAAU,EAAE,CAAC;QAC/E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,4BAA4B,CAC/B,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,qCAAgD,CAAC;IAClE,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuditableItemGraphRestClient } from \"@twin.org/auditable-item-graph-rest-client\";\nimport {\n\ttype AuditableItemGraphChangeset,\n\tAuditableItemGraphService,\n\ttype AuditableItemGraphVertex,\n\tinitSchema as initSchemaAuditableItemGraph\n} from \"@twin.org/auditable-item-graph-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { AuditableItemGraphComponentConfig } from \"../models/config/auditableItemGraphComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AuditableItemGraphComponentType } from \"../models/types/auditableItemGraphComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the auditable item graph component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuditableItemGraphComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AuditableItemGraphComponentConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuditableItemGraphComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaAuditableItemGraph();\n\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.vertexEntityStorageType,\n\t\t\t\tnameof<AuditableItemGraphVertex>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.changesetEntityStorageType,\n\t\t\t\tnameof<AuditableItemGraphChangeset>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\n\t\t\treturn new AuditableItemGraphService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\timmutableProofComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"immutableProofComponent\"),\n\t\t\t\t\t\teventBusComponentType: engineCore.getRegisteredInstanceTypeOptional(\"eventBusComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(AuditableItemGraphService);\n\t} else if (instanceConfig.type === AuditableItemGraphComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AuditableItemGraphRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AuditableItemGraphRestClient);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,9 +1,12 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { AuditableItemStreamRestClient } from "@twin.org/auditable-item-stream-rest-client";
2
4
  import { AuditableItemStreamService, initSchema as initSchemaAuditableItemStream } from "@twin.org/auditable-item-stream-service";
3
5
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
4
6
  import { ComponentFactory } from "@twin.org/core";
5
7
  import { initialiseEntityStorageConnector } from "./entityStorage.js";
6
8
  import { AuditableItemStreamComponentType } from "../models/types/auditableItemStreamComponentType.js";
9
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
7
10
  /**
8
11
  * Initialise the auditable item stream component.
9
12
  * @param engineCore The engine core.
@@ -11,33 +14,34 @@ import { AuditableItemStreamComponentType } from "../models/types/auditableItemS
11
14
  * @param instanceConfig The instance config.
12
15
  * @returns The instance created and the factory for it.
13
16
  */
14
- export async function initialiseAuditableItemStreamComponent(engineCore, context, instanceConfig) {
15
- let component;
16
- let instanceType;
17
+ export function initialiseAuditableItemStreamComponent(engineCore, context, instanceConfig) {
18
+ let createComponent;
19
+ let instanceTypeName;
17
20
  if (instanceConfig.type === AuditableItemStreamComponentType.Service) {
18
- initSchemaAuditableItemStream();
19
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.streamEntityStorageType, "AuditableItemStream", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
20
- ContextIdKeys.Node,
21
- ContextIdKeys.Tenant
22
- ]));
23
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.streamEntryEntityStorageType, "AuditableItemStreamEntry", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
24
- ContextIdKeys.Node,
25
- ContextIdKeys.Tenant
26
- ]));
27
- component = new AuditableItemStreamService({
28
- immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
29
- eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent"),
30
- ...instanceConfig.options
31
- });
32
- instanceType = "auditable-item-stream-service";
21
+ createComponent = (createConfig) => {
22
+ initSchemaAuditableItemStream();
23
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.streamEntityStorageType, "AuditableItemStream", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
24
+ ContextIdKeys.Node,
25
+ ContextIdKeys.Tenant
26
+ ]));
27
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.streamEntryEntityStorageType, "AuditableItemStreamEntry", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
28
+ ContextIdKeys.Node,
29
+ ContextIdKeys.Tenant
30
+ ]));
31
+ return new AuditableItemStreamService(EngineTypeHelper.mergeConfig({
32
+ immutableProofComponentType: engineCore.getRegisteredInstanceType("immutableProofComponent"),
33
+ eventBusComponentType: engineCore.getRegisteredInstanceTypeOptional("eventBusComponent")
34
+ }, createConfig.options));
35
+ };
36
+ instanceTypeName = "auditable-item-stream-service";
33
37
  }
34
38
  else if (instanceConfig.type === AuditableItemStreamComponentType.RestClient) {
35
- component = new AuditableItemStreamRestClient(instanceConfig.options);
36
- instanceType = "auditable-item-stream-rest-client";
39
+ createComponent = (createConfig) => new AuditableItemStreamRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
40
+ instanceTypeName = "auditable-item-stream-rest-client";
37
41
  }
38
42
  return {
39
- component,
40
- instanceType,
43
+ createComponent: createComponent,
44
+ instanceTypeName,
41
45
  factory: ComponentFactory
42
46
  };
43
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auditableItemStream.js","sourceRoot":"","sources":["../../../src/components/auditableItemStream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAGN,0BAA0B,EAC1B,UAAU,IAAI,6BAA6B,EAC3C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAGnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAEvG;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC3D,UAAsC,EACtC,OAA0C,EAC1C,cAAkD;IAElD,IAAI,SAAoD,CAAC;IACzD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,OAAO,EAAE,CAAC;QACtE,6BAA6B,EAAE,CAAC;QAEhC,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,uBAAuB,yBAE/C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,4BAA4B,8BAEpD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,0BAA0B,CAAC;YAC1C,2BAA2B,EAAE,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;YAC5F,qBAAqB,EAAE,UAAU,CAAC,iCAAiC,CAAC,mBAAmB,CAAC;YACxF,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,kCAA8C,CAAC;IAC5D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,UAAU,EAAE,CAAC;QAChF,SAAS,GAAG,IAAI,6BAA6B,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACtE,YAAY,sCAAiD,CAAC;IAC/D,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IAuditableItemStreamComponent } from \"@twin.org/auditable-item-stream-models\";\nimport { AuditableItemStreamRestClient } from \"@twin.org/auditable-item-stream-rest-client\";\nimport {\n\ttype AuditableItemStream,\n\ttype AuditableItemStreamEntry,\n\tAuditableItemStreamService,\n\tinitSchema as initSchemaAuditableItemStream\n} from \"@twin.org/auditable-item-stream-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { AuditableItemStreamComponentConfig } from \"../models/config/auditableItemStreamComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AuditableItemStreamComponentType } from \"../models/types/auditableItemStreamComponentType.js\";\n\n/**\n * Initialise the auditable item stream component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAuditableItemStreamComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AuditableItemStreamComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IAuditableItemStreamComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AuditableItemStreamComponentType.Service) {\n\t\tinitSchemaAuditableItemStream();\n\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.streamEntityStorageType,\n\t\t\tnameof<AuditableItemStream>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.streamEntryEntityStorageType,\n\t\t\tnameof<AuditableItemStreamEntry>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\n\t\tcomponent = new AuditableItemStreamService({\n\t\t\timmutableProofComponentType: engineCore.getRegisteredInstanceType(\"immutableProofComponent\"),\n\t\t\teventBusComponentType: engineCore.getRegisteredInstanceTypeOptional(\"eventBusComponent\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(AuditableItemStreamService);\n\t} else if (instanceConfig.type === AuditableItemStreamComponentType.RestClient) {\n\t\tcomponent = new AuditableItemStreamRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(AuditableItemStreamRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"auditableItemStream.js","sourceRoot":"","sources":["../../../src/components/auditableItemStream.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAGN,0BAA0B,EAC1B,UAAU,IAAI,6BAA6B,EAC3C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAOnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AACvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACrD,UAAsC,EACtC,OAA0C,EAC1C,cAAkD;IAElD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,OAAO,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,6BAA6B,EAAE,CAAC;YAEhC,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,uBAAuB,yBAE7C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,8BAElD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YAEF,OAAO,IAAI,0BAA0B,CACpC,gBAAgB,CAAC,WAAW,CAC3B;gBACC,2BAA2B,EAC1B,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;gBAChE,qBAAqB,EAAE,UAAU,CAAC,iCAAiC,CAAC,mBAAmB,CAAC;aACxF,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,kCAA8C,CAAC;IAChE,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,UAAU,EAAE,CAAC;QAChF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,6BAA6B,CAChC,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,sCAAiD,CAAC;IACnE,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuditableItemStreamRestClient } from \"@twin.org/auditable-item-stream-rest-client\";\nimport {\n\ttype AuditableItemStream,\n\ttype AuditableItemStreamEntry,\n\tAuditableItemStreamService,\n\tinitSchema as initSchemaAuditableItemStream\n} from \"@twin.org/auditable-item-stream-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { AuditableItemStreamComponentConfig } from \"../models/config/auditableItemStreamComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { AuditableItemStreamComponentType } from \"../models/types/auditableItemStreamComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the auditable item stream component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuditableItemStreamComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: AuditableItemStreamComponentConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuditableItemStreamComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaAuditableItemStream();\n\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.streamEntityStorageType,\n\t\t\t\tnameof<AuditableItemStream>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.streamEntryEntityStorageType,\n\t\t\t\tnameof<AuditableItemStreamEntry>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\n\t\t\treturn new AuditableItemStreamService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\timmutableProofComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"immutableProofComponent\"),\n\t\t\t\t\t\teventBusComponentType: engineCore.getRegisteredInstanceTypeOptional(\"eventBusComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(AuditableItemStreamService);\n\t} else if (instanceConfig.type === AuditableItemStreamComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AuditableItemStreamRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AuditableItemStreamRestClient);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,8 +1,11 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { BackgroundTaskService, initSchema } from "@twin.org/background-task-service";
2
4
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
3
5
  import { ComponentFactory } from "@twin.org/core";
4
6
  import { initialiseEntityStorageConnector } from "./entityStorage.js";
5
7
  import { BackgroundTaskComponentType } from "../models/types/backgroundTaskComponentType.js";
8
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
6
9
  /**
7
10
  * Initialise a background task component.
8
11
  * @param engineCore The engine core.
@@ -10,21 +13,20 @@ import { BackgroundTaskComponentType } from "../models/types/backgroundTaskCompo
10
13
  * @param instanceConfig The instance config.
11
14
  * @returns The instance created and the factory for it.
12
15
  */
13
- export async function initialiseBackgroundTaskComponent(engineCore, context, instanceConfig) {
14
- let component;
15
- let instanceType;
16
+ export function initialiseBackgroundTaskComponent(engineCore, context, instanceConfig) {
17
+ let createComponent;
18
+ let instanceTypeName;
16
19
  if (instanceConfig.type === BackgroundTaskComponentType.Service) {
17
- initSchema();
18
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.backgroundTaskEntityStorageType, "BackgroundTask", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node]));
19
- component = new BackgroundTaskService({
20
- loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
21
- ...instanceConfig.options
22
- });
23
- instanceType = "background-task-service";
20
+ createComponent = (createConfig) => {
21
+ initSchema();
22
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.backgroundTaskEntityStorageType, "BackgroundTask", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node]));
23
+ return new BackgroundTaskService(EngineTypeHelper.mergeConfig({ loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent") }, createConfig.options));
24
+ };
25
+ instanceTypeName = "background-task-service";
24
26
  }
25
27
  return {
26
- component,
27
- instanceType,
28
+ createComponent: createComponent,
29
+ instanceTypeName,
28
30
  factory: ComponentFactory
29
31
  };
30
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundTask.js","sourceRoot":"","sources":["../../../src/components/backgroundTask.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,qBAAqB,EACrB,UAAU,EAEV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAGnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACtD,UAAsC,EACtC,OAA0C,EAC1C,cAA6C;IAM7C,IAAI,SAA+C,CAAC;IACpD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,OAAO,EAAE,CAAC;QACjE,UAAU,EAAE,CAAC;QACb,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,+BAA+B,oBAEvD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC;QACF,SAAS,GAAG,IAAI,qBAAqB,CAAC;YACrC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;YAC9E,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,4BAAyC,CAAC;IACvD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IBackgroundTaskComponent } from \"@twin.org/background-task-models\";\nimport {\n\tBackgroundTaskService,\n\tinitSchema,\n\ttype BackgroundTask\n} from \"@twin.org/background-task-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { BackgroundTaskComponentConfig } from \"../models/config/backgroundTaskComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { BackgroundTaskComponentType } from \"../models/types/backgroundTaskComponentType.js\";\n\n/**\n * Initialise a background task component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseBackgroundTaskComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BackgroundTaskComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IBackgroundTaskComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === BackgroundTaskComponentType.Service) {\n\t\tinitSchema();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.backgroundTaskEntityStorageType,\n\t\t\tnameof<BackgroundTask>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node])\n\t\t);\n\t\tcomponent = new BackgroundTaskService({\n\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(BackgroundTaskService);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"backgroundTask.js","sourceRoot":"","sources":["../../../src/components/backgroundTask.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EACN,qBAAqB,EACrB,UAAU,EAEV,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAOnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,UAAsC,EACtC,OAA0C,EAC1C,cAA6C;IAE7C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,OAAO,EAAE,CAAC;QACjE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,UAAU,EAAE,CAAC;YACb,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,+BAA+B,oBAErD,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC;YACF,OAAO,IAAI,qBAAqB,CAC/B,gBAAgB,CAAC,WAAW,CAC3B,EAAE,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC,EAAE,EAClF,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,4BAAyC,CAAC;IAC3D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tBackgroundTaskService,\n\tinitSchema,\n\ttype BackgroundTask\n} from \"@twin.org/background-task-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { BackgroundTaskComponentConfig } from \"../models/config/backgroundTaskComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { BackgroundTaskComponentType } from \"../models/types/backgroundTaskComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise a background task component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseBackgroundTaskComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BackgroundTaskComponentConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === BackgroundTaskComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchema();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.backgroundTaskEntityStorageType,\n\t\t\t\tnameof<BackgroundTask>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node])\n\t\t\t);\n\t\t\treturn new BackgroundTaskService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{ loggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\") },\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(BackgroundTaskService);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -11,10 +11,11 @@ import { BlobStorageConnectorFactory } from "@twin.org/blob-storage-models";
11
11
  import { BlobStorageRestClient } from "@twin.org/blob-storage-rest-client";
12
12
  import { BlobStorageService, initSchema as initSchemaBlobStorage } from "@twin.org/blob-storage-service";
13
13
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
14
- import { Is, ComponentFactory } from "@twin.org/core";
14
+ import { ComponentFactory, Is } from "@twin.org/core";
15
15
  import { initialiseEntityStorageConnector } from "./entityStorage.js";
16
16
  import { BlobStorageComponentType } from "../models/types/blobStorageComponentType.js";
17
17
  import { BlobStorageConnectorType } from "../models/types/blobStorageConnectorType.js";
18
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
18
19
  /**
19
20
  * Initialise the blob storage connector.
20
21
  * @param engineCore The engine core.
@@ -22,89 +23,75 @@ import { BlobStorageConnectorType } from "../models/types/blobStorageConnectorTy
22
23
  * @param instanceConfig The instance config.
23
24
  * @returns The instance created and the factory for it.
24
25
  */
25
- export async function initialiseBlobStorageConnector(engineCore, context, instanceConfig) {
26
- let component;
27
- let instanceType;
26
+ export function initialiseBlobStorageConnector(engineCore, context, instanceConfig) {
27
+ let createComponent;
28
+ let instanceTypeName;
28
29
  if (instanceConfig.type === BlobStorageConnectorType.Ipfs) {
29
- component = new IpfsBlobStorageConnector({
30
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
31
- ContextIdKeys.Node,
32
- ContextIdKeys.Tenant
33
- ]),
34
- ...instanceConfig.options
35
- });
36
- instanceType = IpfsBlobStorageConnector.NAMESPACE;
30
+ createComponent = (createConfig) => new IpfsBlobStorageConnector(EngineTypeHelper.mergeConfig({
31
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant])
32
+ }, createConfig.options));
33
+ instanceTypeName = IpfsBlobStorageConnector.NAMESPACE;
37
34
  }
38
35
  else if (instanceConfig.type === BlobStorageConnectorType.File) {
39
- component = new FileBlobStorageConnector({
40
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
41
- ContextIdKeys.Node,
42
- ContextIdKeys.Tenant
43
- ]),
44
- ...instanceConfig.options,
36
+ createComponent = (createConfig) => new FileBlobStorageConnector(EngineTypeHelper.mergeConfig({
37
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant])
38
+ }, {
45
39
  config: {
46
- ...instanceConfig.options.config,
47
- directory: Is.stringValue(instanceConfig.options.storagePrefix)
48
- ? path.join(instanceConfig.options.config.directory, instanceConfig.options.storagePrefix)
49
- : instanceConfig.options.config.directory
40
+ directory: Is.stringValue(createConfig?.options.storagePrefix)
41
+ ? path.join(createConfig.options.config.directory, createConfig.options.storagePrefix)
42
+ : (createConfig.options.config.directory ?? "")
50
43
  }
51
- });
52
- instanceType = FileBlobStorageConnector.NAMESPACE;
44
+ }, createConfig.options));
45
+ instanceTypeName = FileBlobStorageConnector.NAMESPACE;
53
46
  }
54
47
  else if (instanceConfig.type === BlobStorageConnectorType.Memory) {
55
- component = new MemoryBlobStorageConnector({
56
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
57
- ContextIdKeys.Node,
58
- ContextIdKeys.Tenant
59
- ])
60
- });
61
- instanceType = MemoryBlobStorageConnector.NAMESPACE;
48
+ createComponent = (createConfig) => new MemoryBlobStorageConnector(EngineTypeHelper.mergeConfig({
49
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant])
50
+ }, createConfig.options));
51
+ instanceTypeName = MemoryBlobStorageConnector.NAMESPACE;
62
52
  }
63
53
  else if (instanceConfig.type === BlobStorageConnectorType.AwsS3) {
64
- component = new S3BlobStorageConnector({
65
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
66
- ContextIdKeys.Node,
67
- ContextIdKeys.Tenant
68
- ]),
69
- ...instanceConfig.options,
54
+ createComponent = (createConfig) => new S3BlobStorageConnector(EngineTypeHelper.mergeConfig({
55
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant])
56
+ }, {
70
57
  config: {
71
- ...instanceConfig.options.config,
72
- bucketName: `${instanceConfig.options.storagePrefix ?? ""}${instanceConfig.options.config.bucketName}`
58
+ bucketName: createConfig
59
+ ? `${createConfig.options.storagePrefix ?? ""}${createConfig.options.config.bucketName}`
60
+ : "",
61
+ region: createConfig?.options.config.region ?? ""
73
62
  }
74
- });
75
- instanceType = S3BlobStorageConnector.NAMESPACE;
63
+ }, createConfig.options));
64
+ instanceTypeName = S3BlobStorageConnector.NAMESPACE;
76
65
  }
77
66
  else if (instanceConfig.type === BlobStorageConnectorType.GcpStorage) {
78
- component = new GcpBlobStorageConnector({
79
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
80
- ContextIdKeys.Node,
81
- ContextIdKeys.Tenant
82
- ]),
83
- ...instanceConfig.options,
67
+ createComponent = (createConfig) => new GcpBlobStorageConnector(EngineTypeHelper.mergeConfig({
68
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant])
69
+ }, {
84
70
  config: {
85
- ...instanceConfig.options.config,
86
- bucketName: `${instanceConfig.options.storagePrefix ?? ""}${instanceConfig.options.config.bucketName}`
71
+ bucketName: createConfig
72
+ ? `${createConfig.options.storagePrefix ?? ""}${createConfig.options.config.bucketName}`
73
+ : "",
74
+ projectId: createConfig?.options.config.projectId ?? ""
87
75
  }
88
- });
89
- instanceType = GcpBlobStorageConnector.NAMESPACE;
76
+ }, createConfig.options));
77
+ instanceTypeName = GcpBlobStorageConnector.NAMESPACE;
90
78
  }
91
79
  else if (instanceConfig.type === BlobStorageConnectorType.AzureStorage) {
92
- component = new AzureBlobStorageConnector({
93
- partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
94
- ContextIdKeys.Node,
95
- ContextIdKeys.Tenant
96
- ]),
97
- ...instanceConfig.options,
80
+ createComponent = (createConfig) => new AzureBlobStorageConnector(EngineTypeHelper.mergeConfig({
81
+ partitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant]),
98
82
  config: {
99
- ...instanceConfig.options.config,
100
- containerName: `${instanceConfig.options.storagePrefix ?? ""}${instanceConfig.options.config.containerName}`
83
+ containerName: createConfig
84
+ ? `${createConfig.options.storagePrefix ?? ""}${createConfig.options.config.containerName}`
85
+ : "",
86
+ accountName: createConfig?.options.config.accountName ?? "",
87
+ accountKey: createConfig?.options.config.accountKey ?? ""
101
88
  }
102
- });
103
- instanceType = AzureBlobStorageConnector.NAMESPACE;
89
+ }, createConfig.options));
90
+ instanceTypeName = AzureBlobStorageConnector.NAMESPACE;
104
91
  }
105
92
  return {
106
- component,
107
- instanceType,
93
+ createComponent: createComponent,
94
+ instanceTypeName,
108
95
  factory: BlobStorageConnectorFactory
109
96
  };
110
97
  }
@@ -115,28 +102,30 @@ export async function initialiseBlobStorageConnector(engineCore, context, instan
115
102
  * @param instanceConfig The instance config.
116
103
  * @returns The instance created and the factory for it.
117
104
  */
118
- export async function initialiseBlobStorageComponent(engineCore, context, instanceConfig) {
119
- let component;
120
- let instanceType;
105
+ export function initialiseBlobStorageComponent(engineCore, context, instanceConfig) {
106
+ let createComponent;
107
+ let instanceTypeName;
121
108
  if (instanceConfig.type === BlobStorageComponentType.Service) {
122
- initSchemaBlobStorage();
123
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.entryEntityStorageType, "BlobStorageEntry", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
124
- ContextIdKeys.Node,
125
- ContextIdKeys.Tenant
126
- ]));
127
- component = new BlobStorageService({
128
- vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
129
- ...instanceConfig.options
130
- });
131
- instanceType = "blob-storage-service";
109
+ createComponent = (createConfig) => {
110
+ initSchemaBlobStorage();
111
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.entryEntityStorageType, "BlobStorageEntry", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
112
+ ContextIdKeys.Node,
113
+ ContextIdKeys.Tenant
114
+ ]));
115
+ return new BlobStorageService(EngineTypeHelper.mergeConfig({ vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector") }, createConfig.options));
116
+ };
117
+ instanceTypeName = "blob-storage-service";
132
118
  }
133
119
  else if (instanceConfig.type === BlobStorageComponentType.RestClient) {
134
- component = new BlobStorageRestClient(instanceConfig.options);
135
- instanceType = "blob-storage-rest-client";
120
+ createComponent = (createConfig) => {
121
+ const mergedOptions = EngineTypeHelper.mergeConfig(createConfig.options);
122
+ return new BlobStorageRestClient(mergedOptions);
123
+ };
124
+ instanceTypeName = "blob-storage-rest-client";
136
125
  }
137
126
  return {
138
- component,
139
- instanceType,
127
+ createComponent: createComponent,
128
+ instanceTypeName,
140
129
  factory: ComponentFactory
141
130
  };
142
131
  }