@twin.org/engine-types 0.0.3-next.2 → 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 (396) 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 +18 -18
  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 +31 -0
  12. package/dist/es/components/contextIdHandler.js.map +1 -0
  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 +20 -21
  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 -18
  26. package/dist/es/components/federatedCatalogue.js.map +1 -1
  27. package/dist/es/components/federatedCatalogueFilter.js +34 -0
  28. package/dist/es/components/federatedCatalogueFilter.js.map +1 -0
  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 -20
  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 +11 -25
  46. package/dist/es/components/rightsManagementPdp.js.map +1 -1
  47. package/dist/es/components/rightsManagementPep.js +12 -24
  48. package/dist/es/components/rightsManagementPep.js.map +1 -1
  49. package/dist/es/components/rightsManagementPip.js +9 -25
  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 +14 -36
  56. package/dist/es/components/rightsManagementPnp.js.map +1 -1
  57. package/dist/es/components/rightsManagementPolicyArbiter.js +32 -0
  58. package/dist/es/components/rightsManagementPolicyArbiter.js.map +1 -0
  59. package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js +33 -0
  60. package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js.map +1 -0
  61. package/dist/es/components/rightsManagementPolicyExecutionAction.js +25 -0
  62. package/dist/es/components/rightsManagementPolicyExecutionAction.js.map +1 -0
  63. package/dist/es/components/rightsManagementPolicyInformationSource.js +34 -0
  64. package/dist/es/components/rightsManagementPolicyInformationSource.js.map +1 -0
  65. package/dist/es/components/rightsManagementPolicyNegotiator.js +27 -0
  66. package/dist/es/components/rightsManagementPolicyNegotiator.js.map +1 -0
  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 +25 -0
  70. package/dist/es/components/rightsManagementPolicyRequester.js.map +1 -0
  71. package/dist/es/components/rightsManagementPxp.js +9 -25
  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 +12 -11
  80. package/dist/es/components/tenant.js.map +1 -1
  81. package/dist/es/components/trust.js +27 -0
  82. package/dist/es/components/trust.js.map +1 -0
  83. package/dist/es/components/trustGenerator.js +28 -0
  84. package/dist/es/components/trustGenerator.js.map +1 -0
  85. package/dist/es/components/trustVerifier.js +28 -0
  86. package/dist/es/components/trustVerifier.js.map +1 -0
  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 +38 -11
  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/backgroundTaskComponentConfig.js +2 -0
  97. package/dist/es/models/config/backgroundTaskComponentConfig.js.map +1 -0
  98. package/dist/es/models/config/blobStorageConnectorConfig.js.map +1 -1
  99. package/dist/es/models/config/contextIdHandlerComponentConfig.js +2 -0
  100. package/dist/es/models/config/contextIdHandlerComponentConfig.js.map +1 -0
  101. package/dist/es/models/config/federatedCatalogueFilterComponentConfig.js +2 -0
  102. package/dist/es/models/config/federatedCatalogueFilterComponentConfig.js.map +1 -0
  103. package/dist/es/models/config/rightsManagementPdpComponentConfig.js.map +1 -1
  104. package/dist/es/models/config/rightsManagementPepComponentConfig.js.map +1 -1
  105. package/dist/es/models/config/rightsManagementPipComponentConfig.js.map +1 -1
  106. package/dist/es/models/config/rightsManagementPnpComponentConfig.js.map +1 -1
  107. package/dist/es/models/config/rightsManagementPolicyArbiterComponentConfig.js +2 -0
  108. package/dist/es/models/config/rightsManagementPolicyArbiterComponentConfig.js.map +1 -0
  109. package/dist/es/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.js +2 -0
  110. package/dist/es/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.js.map +1 -0
  111. package/dist/es/models/config/rightsManagementPolicyExecutionActionComponentConfig.js +2 -0
  112. package/dist/es/models/config/rightsManagementPolicyExecutionActionComponentConfig.js.map +1 -0
  113. package/dist/es/models/config/rightsManagementPolicyInformationSourceComponentConfig.js +2 -0
  114. package/dist/es/models/config/rightsManagementPolicyInformationSourceComponentConfig.js.map +1 -0
  115. package/dist/es/models/config/rightsManagementPolicyNegotiatorComponentConfig.js +2 -0
  116. package/dist/es/models/config/rightsManagementPolicyNegotiatorComponentConfig.js.map +1 -0
  117. package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js +2 -0
  118. package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js.map +1 -0
  119. package/dist/es/models/config/rightsManagementPolicyRequesterComponentConfig.js +2 -0
  120. package/dist/es/models/config/rightsManagementPolicyRequesterComponentConfig.js.map +1 -0
  121. package/dist/es/models/config/rightsManagementPxpComponentConfig.js.map +1 -1
  122. package/dist/es/models/config/trustComponentConfig.js +2 -0
  123. package/dist/es/models/config/trustComponentConfig.js.map +1 -0
  124. package/dist/es/models/config/trustGeneratorComponentConfig.js +2 -0
  125. package/dist/es/models/config/trustGeneratorComponentConfig.js.map +1 -0
  126. package/dist/es/models/config/trustVerifierComponentConfig.js +2 -0
  127. package/dist/es/models/config/trustVerifierComponentConfig.js.map +1 -0
  128. package/dist/es/models/types/{rightsManagementDarpComponentType.js → backgroundTaskComponentType.js} +3 -3
  129. package/dist/es/models/types/backgroundTaskComponentType.js.map +1 -0
  130. package/dist/es/models/types/contextIdHandlerComponentType.js +17 -0
  131. package/dist/es/models/types/contextIdHandlerComponentType.js.map +1 -0
  132. package/dist/es/models/types/federatedCatalogueFilterComponentType.js +13 -0
  133. package/dist/es/models/types/federatedCatalogueFilterComponentType.js.map +1 -0
  134. package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js +17 -0
  135. package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js.map +1 -0
  136. package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js +17 -0
  137. package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js.map +1 -0
  138. package/dist/es/models/types/rightsManagementPolicyExecutionActionComponentType.js +13 -0
  139. package/dist/es/models/types/rightsManagementPolicyExecutionActionComponentType.js.map +1 -0
  140. package/dist/es/models/types/rightsManagementPolicyInformationSourceComponentType.js +17 -0
  141. package/dist/es/models/types/rightsManagementPolicyInformationSourceComponentType.js.map +1 -0
  142. package/dist/es/models/types/rightsManagementPolicyNegotiatorComponentType.js +13 -0
  143. package/dist/es/models/types/rightsManagementPolicyNegotiatorComponentType.js.map +1 -0
  144. package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js +13 -0
  145. package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js.map +1 -0
  146. package/dist/es/models/types/rightsManagementPolicyRequesterComponentType.js +13 -0
  147. package/dist/es/models/types/rightsManagementPolicyRequesterComponentType.js.map +1 -0
  148. package/dist/es/models/types/trustComponentType.js +13 -0
  149. package/dist/es/models/types/trustComponentType.js.map +1 -0
  150. package/dist/es/models/types/trustGeneratorComponentType.js +13 -0
  151. package/dist/es/models/types/trustGeneratorComponentType.js.map +1 -0
  152. package/dist/es/models/types/trustVerifierComponentType.js +13 -0
  153. package/dist/es/models/types/trustVerifierComponentType.js.map +1 -0
  154. package/dist/es/utils/engineTypeHelper.js +19 -1
  155. package/dist/es/utils/engineTypeHelper.js.map +1 -1
  156. package/dist/types/components/attestation.d.ts +5 -13
  157. package/dist/types/components/auditableItemGraph.d.ts +3 -7
  158. package/dist/types/components/auditableItemStream.d.ts +3 -7
  159. package/dist/types/components/backgroundTask.d.ts +5 -10
  160. package/dist/types/components/blobStorage.d.ts +4 -12
  161. package/dist/types/components/contextIdHandler.d.ts +12 -0
  162. package/dist/types/components/dataProcessing.d.ts +5 -17
  163. package/dist/types/components/dataSpaceConnector.d.ts +3 -7
  164. package/dist/types/components/documentManagement.d.ts +3 -7
  165. package/dist/types/components/entityStorage.d.ts +3 -7
  166. package/dist/types/components/eventBus.d.ts +4 -12
  167. package/dist/types/components/faucet.d.ts +2 -7
  168. package/dist/types/components/federatedCatalogue.d.ts +3 -7
  169. package/dist/types/components/federatedCatalogueFilter.d.ts +12 -0
  170. package/dist/types/components/identity.d.ts +4 -12
  171. package/dist/types/components/identityProfile.d.ts +4 -12
  172. package/dist/types/components/identityResolver.d.ts +4 -12
  173. package/dist/types/components/immutableProof.d.ts +3 -7
  174. package/dist/types/components/logging.d.ts +4 -12
  175. package/dist/types/components/messaging.d.ts +7 -27
  176. package/dist/types/components/nft.d.ts +4 -12
  177. package/dist/types/components/rightsManagementPap.d.ts +3 -7
  178. package/dist/types/components/rightsManagementPdp.d.ts +3 -7
  179. package/dist/types/components/rightsManagementPep.d.ts +3 -7
  180. package/dist/types/components/rightsManagementPip.d.ts +3 -7
  181. package/dist/types/components/rightsManagementPmp.d.ts +3 -7
  182. package/dist/types/components/rightsManagementPnap.d.ts +3 -7
  183. package/dist/types/components/rightsManagementPnp.d.ts +3 -7
  184. package/dist/types/components/rightsManagementPolicyArbiter.d.ts +12 -0
  185. package/dist/types/components/rightsManagementPolicyEnforcementProcessor.d.ts +12 -0
  186. package/dist/types/components/rightsManagementPolicyExecutionAction.d.ts +12 -0
  187. package/dist/types/components/rightsManagementPolicyInformationSource.d.ts +12 -0
  188. package/dist/types/components/rightsManagementPolicyNegotiator.d.ts +12 -0
  189. package/dist/types/components/rightsManagementPolicyObligationEnforcer.d.ts +12 -0
  190. package/dist/types/components/rightsManagementPolicyRequester.d.ts +12 -0
  191. package/dist/types/components/rightsManagementPxp.d.ts +3 -7
  192. package/dist/types/components/synchronisedStorage.d.ts +3 -7
  193. package/dist/types/components/taskScheduler.d.ts +3 -7
  194. package/dist/types/components/telemetry.d.ts +4 -12
  195. package/dist/types/components/tenant.d.ts +3 -7
  196. package/dist/types/components/trust.d.ts +12 -0
  197. package/dist/types/components/trustGenerator.d.ts +12 -0
  198. package/dist/types/components/trustVerifier.d.ts +12 -0
  199. package/dist/types/components/vault.d.ts +2 -7
  200. package/dist/types/components/verifiableStorage.d.ts +4 -12
  201. package/dist/types/components/wallet.d.ts +2 -7
  202. package/dist/types/index.d.ts +38 -11
  203. package/dist/types/models/IEngineConfig.d.ts +57 -12
  204. package/dist/types/models/config/backgroundTaskComponentConfig.d.ts +9 -0
  205. package/dist/types/models/config/blobStorageConnectorConfig.d.ts +4 -1
  206. package/dist/types/models/config/contextIdHandlerComponentConfig.d.ts +11 -0
  207. package/dist/types/models/config/federatedCatalogueFilterComponentConfig.d.ts +9 -0
  208. package/dist/types/models/config/rightsManagementPdpComponentConfig.d.ts +1 -4
  209. package/dist/types/models/config/rightsManagementPepComponentConfig.d.ts +1 -4
  210. package/dist/types/models/config/rightsManagementPipComponentConfig.d.ts +1 -4
  211. package/dist/types/models/config/rightsManagementPnpComponentConfig.d.ts +1 -5
  212. package/dist/types/models/config/rightsManagementPolicyArbiterComponentConfig.d.ts +12 -0
  213. package/dist/types/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.d.ts +12 -0
  214. package/dist/types/models/config/rightsManagementPolicyExecutionActionComponentConfig.d.ts +9 -0
  215. package/dist/types/models/config/rightsManagementPolicyInformationSourceComponentConfig.d.ts +12 -0
  216. package/dist/types/models/config/rightsManagementPolicyNegotiatorComponentConfig.d.ts +9 -0
  217. package/dist/types/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.d.ts +9 -0
  218. package/dist/types/models/config/rightsManagementPolicyRequesterComponentConfig.d.ts +9 -0
  219. package/dist/types/models/config/rightsManagementPxpComponentConfig.d.ts +1 -4
  220. package/dist/types/models/config/trustComponentConfig.d.ts +9 -0
  221. package/dist/types/models/config/trustGeneratorComponentConfig.d.ts +9 -0
  222. package/dist/types/models/config/trustVerifierComponentConfig.d.ts +9 -0
  223. package/dist/types/models/types/backgroundTaskComponentType.d.ts +13 -0
  224. package/dist/types/models/types/contextIdHandlerComponentType.d.ts +17 -0
  225. package/dist/types/models/types/federatedCatalogueFilterComponentType.d.ts +13 -0
  226. package/dist/types/models/types/rightsManagementPolicyArbiterComponentType.d.ts +17 -0
  227. package/dist/types/models/types/rightsManagementPolicyEnforcementProcessorComponentType.d.ts +17 -0
  228. package/dist/types/models/types/rightsManagementPolicyExecutionActionComponentType.d.ts +13 -0
  229. package/dist/types/models/types/rightsManagementPolicyInformationSourceComponentType.d.ts +17 -0
  230. package/dist/types/models/types/rightsManagementPolicyNegotiatorComponentType.d.ts +13 -0
  231. package/dist/types/models/types/rightsManagementPolicyObligationEnforcerComponentType.d.ts +13 -0
  232. package/dist/types/models/types/rightsManagementPolicyRequesterComponentType.d.ts +13 -0
  233. package/dist/types/models/types/trustComponentType.d.ts +13 -0
  234. package/dist/types/models/types/trustGeneratorComponentType.d.ts +13 -0
  235. package/dist/types/models/types/trustVerifierComponentType.d.ts +13 -0
  236. package/dist/types/utils/engineTypeHelper.d.ts +11 -0
  237. package/docs/changelog.md +330 -0
  238. package/docs/reference/classes/EngineTypeHelper.md +53 -0
  239. package/docs/reference/functions/initialiseAttestationComponent.md +2 -2
  240. package/docs/reference/functions/initialiseAttestationConnector.md +3 -3
  241. package/docs/reference/functions/initialiseAuditableItemGraphComponent.md +2 -2
  242. package/docs/reference/functions/initialiseAuditableItemStreamComponent.md +2 -2
  243. package/docs/reference/functions/initialiseBackgroundTaskComponent.md +31 -0
  244. package/docs/reference/functions/initialiseBlobStorageComponent.md +2 -2
  245. package/docs/reference/functions/initialiseBlobStorageConnector.md +2 -2
  246. package/docs/reference/functions/initialiseContextIdHandlerComponent.md +31 -0
  247. package/docs/reference/functions/initialiseDataConverterConnector.md +2 -2
  248. package/docs/reference/functions/initialiseDataExtractorConnector.md +2 -2
  249. package/docs/reference/functions/initialiseDataProcessingComponent.md +2 -2
  250. package/docs/reference/functions/initialiseDataSpaceConnectorComponent.md +2 -2
  251. package/docs/reference/functions/initialiseDocumentManagementComponent.md +2 -2
  252. package/docs/reference/functions/initialiseEntityStorageComponent.md +2 -2
  253. package/docs/reference/functions/initialiseEventBusComponent.md +2 -2
  254. package/docs/reference/functions/initialiseEventBusConnector.md +2 -2
  255. package/docs/reference/functions/initialiseFaucetConnector.md +2 -2
  256. package/docs/reference/functions/initialiseFederatedCatalogueComponent.md +2 -2
  257. package/docs/reference/functions/initialiseFederatedCatalogueFilterComponent.md +31 -0
  258. package/docs/reference/functions/initialiseIdentityComponent.md +2 -2
  259. package/docs/reference/functions/initialiseIdentityConnector.md +2 -2
  260. package/docs/reference/functions/initialiseIdentityProfileComponent.md +2 -2
  261. package/docs/reference/functions/initialiseIdentityProfileConnector.md +2 -2
  262. package/docs/reference/functions/initialiseIdentityResolverComponent.md +2 -2
  263. package/docs/reference/functions/initialiseIdentityResolverConnector.md +2 -2
  264. package/docs/reference/functions/initialiseImmutableProofComponent.md +2 -2
  265. package/docs/reference/functions/initialiseLoggingComponent.md +2 -2
  266. package/docs/reference/functions/initialiseLoggingConnector.md +2 -2
  267. package/docs/reference/functions/initialiseMessagingAdminComponent.md +2 -2
  268. package/docs/reference/functions/initialiseMessagingComponent.md +2 -2
  269. package/docs/reference/functions/initialiseMessagingEmailConnector.md +2 -2
  270. package/docs/reference/functions/initialiseMessagingPushNotificationConnector.md +2 -2
  271. package/docs/reference/functions/initialiseMessagingSmsConnector.md +2 -2
  272. package/docs/reference/functions/initialiseNftComponent.md +2 -2
  273. package/docs/reference/functions/initialiseNftConnector.md +2 -2
  274. package/docs/reference/functions/initialiseRightsManagementPapComponent.md +2 -2
  275. package/docs/reference/functions/initialiseRightsManagementPdpComponent.md +2 -2
  276. package/docs/reference/functions/initialiseRightsManagementPepComponent.md +2 -2
  277. package/docs/reference/functions/initialiseRightsManagementPipComponent.md +2 -2
  278. package/docs/reference/functions/initialiseRightsManagementPmpComponent.md +2 -2
  279. package/docs/reference/functions/initialiseRightsManagementPnapComponent.md +2 -2
  280. package/docs/reference/functions/initialiseRightsManagementPnpComponent.md +2 -2
  281. package/docs/reference/functions/initialiseRightsManagementPolicyArbiterComponent.md +31 -0
  282. package/docs/reference/functions/initialiseRightsManagementPolicyEnforcementProcessorComponent.md +31 -0
  283. package/docs/reference/functions/initialiseRightsManagementPolicyExecutionActionComponent.md +31 -0
  284. package/docs/reference/functions/initialiseRightsManagementPolicyInformationSourceComponent.md +31 -0
  285. package/docs/reference/functions/initialiseRightsManagementPolicyNegotiatorComponent.md +31 -0
  286. package/docs/reference/functions/initialiseRightsManagementPolicyObligationEnforcerComponent.md +31 -0
  287. package/docs/reference/functions/initialiseRightsManagementPolicyRequesterComponent.md +31 -0
  288. package/docs/reference/functions/initialiseRightsManagementPxpComponent.md +2 -2
  289. package/docs/reference/functions/initialiseSynchronisedStorageComponent.md +2 -2
  290. package/docs/reference/functions/initialiseTaskSchedulerComponent.md +2 -2
  291. package/docs/reference/functions/initialiseTelemetryComponent.md +2 -2
  292. package/docs/reference/functions/initialiseTelemetryConnector.md +2 -2
  293. package/docs/reference/functions/initialiseTenantAdminComponent.md +2 -2
  294. package/docs/reference/functions/initialiseTrustComponent.md +31 -0
  295. package/docs/reference/functions/initialiseTrustGeneratorComponent.md +31 -0
  296. package/docs/reference/functions/initialiseTrustVerifierComponent.md +31 -0
  297. package/docs/reference/functions/initialiseVaultConnector.md +2 -2
  298. package/docs/reference/functions/initialiseVerifiableStorageComponent.md +2 -2
  299. package/docs/reference/functions/initialiseVerifiableStorageConnector.md +2 -2
  300. package/docs/reference/functions/initialiseWalletConnector.md +2 -2
  301. package/docs/reference/index.md +52 -16
  302. package/docs/reference/interfaces/IEngineConfig.md +66 -12
  303. package/docs/reference/type-aliases/BackgroundTaskComponentConfig.md +17 -0
  304. package/docs/reference/type-aliases/BackgroundTaskComponentType.md +5 -0
  305. package/docs/reference/type-aliases/BlobStorageConnectorConfig.md +1 -1
  306. package/docs/reference/type-aliases/ContextIdHandlerComponentConfig.md +5 -0
  307. package/docs/reference/type-aliases/ContextIdHandlerComponentType.md +5 -0
  308. package/docs/reference/type-aliases/FederatedCatalogueFilterComponentConfig.md +17 -0
  309. package/docs/reference/type-aliases/FederatedCatalogueFilterComponentType.md +5 -0
  310. package/docs/reference/type-aliases/RightsManagementPdpComponentConfig.md +1 -7
  311. package/docs/reference/type-aliases/RightsManagementPepComponentConfig.md +1 -7
  312. package/docs/reference/type-aliases/RightsManagementPipComponentConfig.md +1 -7
  313. package/docs/reference/type-aliases/RightsManagementPnpComponentConfig.md +1 -1
  314. package/docs/reference/type-aliases/RightsManagementPolicyArbiterComponentConfig.md +5 -0
  315. package/docs/reference/type-aliases/RightsManagementPolicyArbiterComponentType.md +5 -0
  316. package/docs/reference/type-aliases/RightsManagementPolicyEnforcementProcessorComponentConfig.md +5 -0
  317. package/docs/reference/type-aliases/RightsManagementPolicyEnforcementProcessorComponentType.md +5 -0
  318. package/docs/reference/type-aliases/RightsManagementPolicyExecutionActionComponentConfig.md +17 -0
  319. package/docs/reference/type-aliases/RightsManagementPolicyExecutionActionComponentType.md +5 -0
  320. package/docs/reference/type-aliases/RightsManagementPolicyInformationSourceComponentConfig.md +5 -0
  321. package/docs/reference/type-aliases/RightsManagementPolicyInformationSourceComponentType.md +5 -0
  322. package/docs/reference/type-aliases/RightsManagementPolicyNegotiatorComponentConfig.md +17 -0
  323. package/docs/reference/type-aliases/RightsManagementPolicyNegotiatorComponentType.md +5 -0
  324. package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentConfig.md +17 -0
  325. package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentType.md +5 -0
  326. package/docs/reference/type-aliases/RightsManagementPolicyRequesterComponentConfig.md +17 -0
  327. package/docs/reference/type-aliases/RightsManagementPolicyRequesterComponentType.md +5 -0
  328. package/docs/reference/type-aliases/RightsManagementPxpComponentConfig.md +1 -7
  329. package/docs/reference/type-aliases/TrustComponentConfig.md +17 -0
  330. package/docs/reference/type-aliases/TrustComponentType.md +5 -0
  331. package/docs/reference/type-aliases/TrustGeneratorComponentConfig.md +17 -0
  332. package/docs/reference/type-aliases/TrustGeneratorComponentType.md +5 -0
  333. package/docs/reference/type-aliases/TrustVerifierComponentConfig.md +17 -0
  334. package/docs/reference/type-aliases/TrustVerifierComponentType.md +5 -0
  335. package/docs/reference/variables/BackgroundTaskComponentType.md +13 -0
  336. package/docs/reference/variables/ContextIdHandlerComponentType.md +19 -0
  337. package/docs/reference/variables/FederatedCatalogueFilterComponentType.md +13 -0
  338. package/docs/reference/variables/RightsManagementPolicyArbiterComponentType.md +19 -0
  339. package/docs/reference/variables/RightsManagementPolicyEnforcementProcessorComponentType.md +19 -0
  340. package/docs/reference/variables/RightsManagementPolicyExecutionActionComponentType.md +13 -0
  341. package/docs/reference/variables/RightsManagementPolicyInformationSourceComponentType.md +19 -0
  342. package/docs/reference/variables/RightsManagementPolicyNegotiatorComponentType.md +13 -0
  343. package/docs/reference/variables/RightsManagementPolicyObligationEnforcerComponentType.md +13 -0
  344. package/docs/reference/variables/RightsManagementPolicyRequesterComponentType.md +13 -0
  345. package/docs/reference/variables/TrustComponentType.md +13 -0
  346. package/docs/reference/variables/TrustGeneratorComponentType.md +13 -0
  347. package/docs/reference/variables/TrustVerifierComponentType.md +13 -0
  348. package/package.json +10 -5
  349. package/dist/es/components/authenticationGenerator.js +0 -30
  350. package/dist/es/components/authenticationGenerator.js.map +0 -1
  351. package/dist/es/components/rightsManagementDap.js +0 -38
  352. package/dist/es/components/rightsManagementDap.js.map +0 -1
  353. package/dist/es/components/rightsManagementDarp.js +0 -29
  354. package/dist/es/components/rightsManagementDarp.js.map +0 -1
  355. package/dist/es/models/config/authenticationGeneratorComponentConfig.js +0 -2
  356. package/dist/es/models/config/authenticationGeneratorComponentConfig.js.map +0 -1
  357. package/dist/es/models/config/backgroundTaskConnectorConfig.js +0 -2
  358. package/dist/es/models/config/backgroundTaskConnectorConfig.js.map +0 -1
  359. package/dist/es/models/config/rightsManagementDapComponentConfig.js +0 -2
  360. package/dist/es/models/config/rightsManagementDapComponentConfig.js.map +0 -1
  361. package/dist/es/models/config/rightsManagementDarpComponentConfig.js +0 -2
  362. package/dist/es/models/config/rightsManagementDarpComponentConfig.js.map +0 -1
  363. package/dist/es/models/types/authenticationGeneratorComponentType.js +0 -13
  364. package/dist/es/models/types/authenticationGeneratorComponentType.js.map +0 -1
  365. package/dist/es/models/types/backgroundTaskConnectorType.js +0 -13
  366. package/dist/es/models/types/backgroundTaskConnectorType.js.map +0 -1
  367. package/dist/es/models/types/rightsManagementDapComponentType.js +0 -17
  368. package/dist/es/models/types/rightsManagementDapComponentType.js.map +0 -1
  369. package/dist/es/models/types/rightsManagementDarpComponentType.js.map +0 -1
  370. package/dist/types/components/authenticationGenerator.d.ts +0 -17
  371. package/dist/types/components/rightsManagementDap.d.ts +0 -16
  372. package/dist/types/components/rightsManagementDarp.d.ts +0 -16
  373. package/dist/types/models/config/authenticationGeneratorComponentConfig.d.ts +0 -9
  374. package/dist/types/models/config/backgroundTaskConnectorConfig.d.ts +0 -9
  375. package/dist/types/models/config/rightsManagementDapComponentConfig.d.ts +0 -16
  376. package/dist/types/models/config/rightsManagementDarpComponentConfig.d.ts +0 -12
  377. package/dist/types/models/types/authenticationGeneratorComponentType.d.ts +0 -13
  378. package/dist/types/models/types/backgroundTaskConnectorType.d.ts +0 -13
  379. package/dist/types/models/types/rightsManagementDapComponentType.d.ts +0 -17
  380. package/dist/types/models/types/rightsManagementDarpComponentType.d.ts +0 -13
  381. package/docs/reference/functions/initialiseAuthenticationGeneratorComponent.md +0 -31
  382. package/docs/reference/functions/initialiseBackgroundTaskConnector.md +0 -31
  383. package/docs/reference/functions/initialiseRightsManagementDapComponent.md +0 -31
  384. package/docs/reference/functions/initialiseRightsManagementDarpComponent.md +0 -31
  385. package/docs/reference/type-aliases/AuthenticationGeneratorComponentConfig.md +0 -17
  386. package/docs/reference/type-aliases/AuthenticationGeneratorComponentType.md +0 -5
  387. package/docs/reference/type-aliases/BackgroundTaskConnectorConfig.md +0 -17
  388. package/docs/reference/type-aliases/BackgroundTaskConnectorType.md +0 -5
  389. package/docs/reference/type-aliases/RightsManagementDapComponentConfig.md +0 -5
  390. package/docs/reference/type-aliases/RightsManagementDapComponentType.md +0 -5
  391. package/docs/reference/type-aliases/RightsManagementDarpComponentConfig.md +0 -23
  392. package/docs/reference/type-aliases/RightsManagementDarpComponentType.md +0 -5
  393. package/docs/reference/variables/AuthenticationGeneratorComponentType.md +0 -13
  394. package/docs/reference/variables/BackgroundTaskConnectorType.md +0 -13
  395. package/docs/reference/variables/RightsManagementDapComponentType.md +0 -19
  396. package/docs/reference/variables/RightsManagementDarpComponentType.md +0 -13
@@ -1 +1 @@
1
- {"version":3,"file":"blobStorage.js","sourceRoot":"","sources":["../../../src/components/blobStorage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport path from \"node:path\";\nimport { S3BlobStorageConnector } from \"@twin.org/blob-storage-connector-aws-s3\";\nimport { AzureBlobStorageConnector } from \"@twin.org/blob-storage-connector-azure\";\nimport { FileBlobStorageConnector } from \"@twin.org/blob-storage-connector-file\";\nimport { GcpBlobStorageConnector } from \"@twin.org/blob-storage-connector-gcp\";\nimport { IpfsBlobStorageConnector } from \"@twin.org/blob-storage-connector-ipfs\";\nimport { MemoryBlobStorageConnector } from \"@twin.org/blob-storage-connector-memory\";\nimport {\n\tBlobStorageConnectorFactory,\n\ttype IBlobStorageComponent,\n\ttype IBlobStorageConnector\n} from \"@twin.org/blob-storage-models\";\nimport { BlobStorageRestClient } from \"@twin.org/blob-storage-rest-client\";\nimport {\n\tBlobStorageService,\n\tinitSchema as initSchemaBlobStorage,\n\ttype BlobStorageEntry\n} from \"@twin.org/blob-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { Is, type IComponent, ComponentFactory } 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 { BlobStorageComponentConfig } from \"../models/config/blobStorageComponentConfig.js\";\nimport type { BlobStorageConnectorConfig } from \"../models/config/blobStorageConnectorConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { BlobStorageComponentType } from \"../models/types/blobStorageComponentType.js\";\nimport { BlobStorageConnectorType } from \"../models/types/blobStorageConnectorType.js\";\n\n/**\n * Initialise the blob storage 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 initialiseBlobStorageConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BlobStorageConnectorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof BlobStorageConnectorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IBlobStorageConnector | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === BlobStorageConnectorType.Ipfs) {\n\t\tcomponent = new IpfsBlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t]),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = IpfsBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.File) {\n\t\tcomponent = new FileBlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t]),\n\t\t\t...instanceConfig.options,\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options.config,\n\t\t\t\tdirectory: Is.stringValue(instanceConfig.options.storagePrefix)\n\t\t\t\t\t? path.join(instanceConfig.options.config.directory, instanceConfig.options.storagePrefix)\n\t\t\t\t\t: instanceConfig.options.config.directory\n\t\t\t}\n\t\t});\n\t\tinstanceType = FileBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.Memory) {\n\t\tcomponent = new MemoryBlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t});\n\t\tinstanceType = MemoryBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.AwsS3) {\n\t\tcomponent = new S3BlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t]),\n\t\t\t...instanceConfig.options,\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options.config,\n\t\t\t\tbucketName: `${instanceConfig.options.storagePrefix ?? \"\"}${instanceConfig.options.config.bucketName}`\n\t\t\t}\n\t\t});\n\t\tinstanceType = S3BlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.GcpStorage) {\n\t\tcomponent = new GcpBlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t]),\n\t\t\t...instanceConfig.options,\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options.config,\n\t\t\t\tbucketName: `${instanceConfig.options.storagePrefix ?? \"\"}${instanceConfig.options.config.bucketName}`\n\t\t\t}\n\t\t});\n\t\tinstanceType = GcpBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.AzureStorage) {\n\t\tcomponent = new AzureBlobStorageConnector({\n\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t]),\n\t\t\t...instanceConfig.options,\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options.config,\n\t\t\t\tcontainerName: `${instanceConfig.options.storagePrefix ?? \"\"}${instanceConfig.options.config.containerName}`\n\t\t\t}\n\t\t});\n\t\tinstanceType = AzureBlobStorageConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: BlobStorageConnectorFactory\n\t};\n}\n\n/**\n * Initialise the blob storage 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 initialiseBlobStorageComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BlobStorageComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IBlobStorageComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === BlobStorageComponentType.Service) {\n\t\tinitSchemaBlobStorage();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.entryEntityStorageType,\n\t\t\tnameof<BlobStorageEntry>(),\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 BlobStorageService({\n\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(BlobStorageService);\n\t} else if (instanceConfig.type === BlobStorageComponentType.RestClient) {\n\t\tcomponent = new BlobStorageRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(BlobStorageRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"blobStorage.js","sourceRoot":"","sources":["../../../src/components/blobStorage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport path from \"node:path\";\nimport { S3BlobStorageConnector } from \"@twin.org/blob-storage-connector-aws-s3\";\nimport { AzureBlobStorageConnector } from \"@twin.org/blob-storage-connector-azure\";\nimport { FileBlobStorageConnector } from \"@twin.org/blob-storage-connector-file\";\nimport { GcpBlobStorageConnector } from \"@twin.org/blob-storage-connector-gcp\";\nimport { IpfsBlobStorageConnector } from \"@twin.org/blob-storage-connector-ipfs\";\nimport { MemoryBlobStorageConnector } from \"@twin.org/blob-storage-connector-memory\";\nimport { BlobStorageConnectorFactory } from \"@twin.org/blob-storage-models\";\nimport { BlobStorageRestClient } from \"@twin.org/blob-storage-rest-client\";\nimport {\n\tBlobStorageService,\n\tinitSchema as initSchemaBlobStorage,\n\ttype BlobStorageEntry\n} from \"@twin.org/blob-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent, Is } 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 { BlobStorageComponentConfig } from \"../models/config/blobStorageComponentConfig.js\";\nimport type { BlobStorageConnectorConfig } from \"../models/config/blobStorageConnectorConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { BlobStorageComponentType } from \"../models/types/blobStorageComponentType.js\";\nimport { BlobStorageConnectorType } from \"../models/types/blobStorageConnectorType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the blob storage 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 function initialiseBlobStorageConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BlobStorageConnectorConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof BlobStorageConnectorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === BlobStorageConnectorType.Ipfs) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew IpfsBlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t)\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 = IpfsBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.File) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew FileBlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tdirectory: Is.stringValue(createConfig?.options.storagePrefix)\n\t\t\t\t\t\t\t\t? path.join(\n\t\t\t\t\t\t\t\t\t\tcreateConfig.options.config.directory,\n\t\t\t\t\t\t\t\t\t\tcreateConfig.options.storagePrefix\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: (createConfig.options.config.directory ?? \"\")\n\t\t\t\t\t\t}\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 = FileBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.Memory) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew MemoryBlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t)\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 = MemoryBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.AwsS3) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew S3BlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tbucketName: createConfig\n\t\t\t\t\t\t\t\t? `${createConfig.options.storagePrefix ?? \"\"}${createConfig.options.config.bucketName}`\n\t\t\t\t\t\t\t\t: \"\",\n\t\t\t\t\t\t\tregion: createConfig?.options.config.region ?? \"\"\n\t\t\t\t\t\t}\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 = S3BlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.GcpStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew GcpBlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tbucketName: createConfig\n\t\t\t\t\t\t\t\t? `${createConfig.options.storagePrefix ?? \"\"}${createConfig.options.config.bucketName}`\n\t\t\t\t\t\t\t\t: \"\",\n\t\t\t\t\t\t\tprojectId: createConfig?.options.config.projectId ?? \"\"\n\t\t\t\t\t\t}\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 = GcpBlobStorageConnector.NAMESPACE;\n\t} else if (instanceConfig.type === BlobStorageConnectorType.AzureStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AzureBlobStorageConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tpartitionContextIds: ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t\t\t\t),\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tcontainerName: createConfig\n\t\t\t\t\t\t\t\t? `${createConfig.options.storagePrefix ?? \"\"}${createConfig.options.config.containerName}`\n\t\t\t\t\t\t\t\t: \"\",\n\t\t\t\t\t\t\taccountName: createConfig?.options.config.accountName ?? \"\",\n\t\t\t\t\t\t\taccountKey: createConfig?.options.config.accountKey ?? \"\"\n\t\t\t\t\t\t}\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 = AzureBlobStorageConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: BlobStorageConnectorFactory\n\t};\n}\n\n/**\n * Initialise the blob storage 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 initialiseBlobStorageComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: BlobStorageComponentConfig\n): EngineTypeInitialiserReturn<typeof instanceConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === BlobStorageComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaBlobStorage();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.entryEntityStorageType,\n\t\t\t\tnameof<BlobStorageEntry>(),\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\treturn new BlobStorageService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{ vaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\") },\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(BlobStorageService);\n\t} else if (instanceConfig.type === BlobStorageComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tconst mergedOptions = EngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\tcreateConfig.options\n\t\t\t);\n\t\t\treturn new BlobStorageRestClient(mergedOptions);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(BlobStorageRestClient);\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"]}
@@ -0,0 +1,31 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ import { TenantIdContextIdHandler } from "@twin.org/api-tenant-processor";
4
+ import { ComponentFactory } from "@twin.org/core";
5
+ import { DidContextIdHandler } from "@twin.org/identity-models";
6
+ import { ContextIdHandlerComponentType } from "../models/types/contextIdHandlerComponentType.js";
7
+ /**
8
+ * Initialise the context id handler component.
9
+ * @param engineCore The engine core.
10
+ * @param context The context for the engine.
11
+ * @param instanceConfig The instance config.
12
+ * @returns The instance created and the factory for it.
13
+ */
14
+ export function initialiseContextIdHandlerComponent(engineCore, context, instanceConfig) {
15
+ let createComponent;
16
+ let instanceTypeName;
17
+ if (instanceConfig.type === ContextIdHandlerComponentType.Did) {
18
+ createComponent = (createConfig) => new DidContextIdHandler();
19
+ instanceTypeName = "did-context-id-handler";
20
+ }
21
+ else if (instanceConfig.type === ContextIdHandlerComponentType.Tenant) {
22
+ createComponent = (createConfig) => new TenantIdContextIdHandler();
23
+ instanceTypeName = "tenant-id-context-id-handler";
24
+ }
25
+ return {
26
+ createComponent: createComponent,
27
+ instanceTypeName,
28
+ factory: ComponentFactory
29
+ };
30
+ }
31
+ //# sourceMappingURL=contextIdHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextIdHandler.js","sourceRoot":"","sources":["../../../src/components/contextIdHandler.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAEjG;;;;;;GAMG;AACH,MAAM,UAAU,mCAAmC,CAClD,UAAsC,EACtC,OAA0C,EAC1C,cAA+C;IAE/C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,6BAA6B,CAAC,GAAG,EAAE,CAAC;QAC/D,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CAAC,IAAI,mBAAmB,EAAE,CAAC;QACrF,gBAAgB,2BAAuC,CAAC;IACzD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,6BAA6B,CAAC,MAAM,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC;QAC1F,gBAAgB,iCAA4C,CAAC;IAC9D,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 { TenantIdContextIdHandler } from \"@twin.org/api-tenant-processor\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { DidContextIdHandler } from \"@twin.org/identity-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { ContextIdHandlerComponentConfig } from \"../models/config/contextIdHandlerComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { ContextIdHandlerComponentType } from \"../models/types/contextIdHandlerComponentType.js\";\n\n/**\n * Initialise the context id handler 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 initialiseContextIdHandlerComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: ContextIdHandlerComponentConfig\n): EngineTypeInitialiserReturn<ContextIdHandlerComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === ContextIdHandlerComponentType.Did) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new DidContextIdHandler();\n\t\tinstanceTypeName = nameofKebabCase(DidContextIdHandler);\n\t} else if (instanceConfig.type === ContextIdHandlerComponentType.Tenant) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new TenantIdContextIdHandler();\n\t\tinstanceTypeName = nameofKebabCase(TenantIdContextIdHandler);\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,6 +11,7 @@ import { initialiseEntityStorageConnector } from "./entityStorage.js";
11
11
  import { DataConverterConnectorType } from "../models/types/dataConverterConnectorType.js";
12
12
  import { DataExtractorConnectorType } from "../models/types/dataExtractorConnectorType.js";
13
13
  import { DataProcessingComponentType } from "../models/types/dataProcessingComponentType.js";
14
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
14
15
  /**
15
16
  * Initialise the data converter connector.
16
17
  * @param engineCore The engine core.
@@ -18,20 +19,20 @@ import { DataProcessingComponentType } from "../models/types/dataProcessingCompo
18
19
  * @param instanceConfig The instance config.
19
20
  * @returns The instance created and the factory for it.
20
21
  */
21
- export async function initialiseDataConverterConnector(engineCore, context, instanceConfig) {
22
- let component;
23
- let instanceType;
22
+ export function initialiseDataConverterConnector(engineCore, context, instanceConfig) {
23
+ let createComponent;
24
+ let instanceTypeName;
24
25
  if (instanceConfig.type === DataConverterConnectorType.Json) {
25
- component = new JsonConverterConnector();
26
- instanceType = JsonConverterConnector.NAMESPACE;
26
+ createComponent = (createConfig) => new JsonConverterConnector();
27
+ instanceTypeName = JsonConverterConnector.NAMESPACE;
27
28
  }
28
29
  else if (instanceConfig.type === DataConverterConnectorType.Xml) {
29
- component = new XmlConverterConnector();
30
- instanceType = XmlConverterConnector.NAMESPACE;
30
+ createComponent = (createConfig) => new XmlConverterConnector();
31
+ instanceTypeName = XmlConverterConnector.NAMESPACE;
31
32
  }
32
33
  return {
33
- component,
34
- instanceType,
34
+ createComponent: createComponent,
35
+ instanceTypeName,
35
36
  factory: DataConverterConnectorFactory
36
37
  };
37
38
  }
@@ -42,16 +43,16 @@ export async function initialiseDataConverterConnector(engineCore, context, inst
42
43
  * @param instanceConfig The instance config.
43
44
  * @returns The instance created and the factory for it.
44
45
  */
45
- export async function initialiseDataExtractorConnector(engineCore, context, instanceConfig) {
46
- let component;
47
- let instanceType;
46
+ export function initialiseDataExtractorConnector(engineCore, context, instanceConfig) {
47
+ let createComponent;
48
+ let instanceTypeName;
48
49
  if (instanceConfig.type === DataExtractorConnectorType.JsonPath) {
49
- component = new JsonPathExtractorConnector();
50
- instanceType = JsonPathExtractorConnector.NAMESPACE;
50
+ createComponent = (createConfig) => new JsonPathExtractorConnector();
51
+ instanceTypeName = JsonPathExtractorConnector.NAMESPACE;
51
52
  }
52
53
  return {
53
- component,
54
- instanceType,
54
+ createComponent: createComponent,
55
+ instanceTypeName,
55
56
  factory: DataExtractorConnectorFactory
56
57
  };
57
58
  }
@@ -62,27 +63,27 @@ export async function initialiseDataExtractorConnector(engineCore, context, inst
62
63
  * @param instanceConfig The instance config.
63
64
  * @returns The instance created and the factory for it.
64
65
  */
65
- export async function initialiseDataProcessingComponent(engineCore, context, instanceConfig) {
66
- let component;
67
- let instanceType;
66
+ export function initialiseDataProcessingComponent(engineCore, context, instanceConfig) {
67
+ let createComponent;
68
+ let instanceTypeName;
68
69
  if (instanceConfig.type === DataProcessingComponentType.Service) {
69
- initSchemaDataProcessing();
70
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.extractionRuleGroupStorageConnectorType, "ExtractionRuleGroup", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
71
- ContextIdKeys.Node,
72
- ContextIdKeys.Tenant
73
- ]));
74
- component = new DataProcessingService({
75
- ...instanceConfig.options
76
- });
77
- instanceType = "data-processing-service";
70
+ createComponent = (createConfig) => {
71
+ initSchemaDataProcessing();
72
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.extractionRuleGroupStorageConnectorType, "ExtractionRuleGroup", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
73
+ ContextIdKeys.Node,
74
+ ContextIdKeys.Tenant
75
+ ]));
76
+ return new DataProcessingService(EngineTypeHelper.mergeConfig(createConfig.options));
77
+ };
78
+ instanceTypeName = "data-processing-service";
78
79
  }
79
80
  else if (instanceConfig.type === DataProcessingComponentType.RestClient) {
80
- component = new DataProcessingRestClient(instanceConfig.options);
81
- instanceType = "data-processing-rest-client";
81
+ createComponent = (createConfig) => new DataProcessingRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
82
+ instanceTypeName = "data-processing-rest-client";
82
83
  }
83
84
  return {
84
- component,
85
- instanceType,
85
+ createComponent: createComponent,
86
+ instanceTypeName,
86
87
  factory: ComponentFactory
87
88
  };
88
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataProcessing.js","sourceRoot":"","sources":["../../../src/components/dataProcessing.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport {\n\tJsonConverterConnector,\n\tXmlConverterConnector\n} from \"@twin.org/data-processing-converters\";\nimport { JsonPathExtractorConnector } from \"@twin.org/data-processing-extractors\";\nimport {\n\tDataConverterConnectorFactory,\n\tDataExtractorConnectorFactory,\n\ttype IDataConverterConnector,\n\ttype IDataExtractorConnector,\n\ttype IDataProcessingComponent\n} from \"@twin.org/data-processing-models\";\nimport { DataProcessingRestClient } from \"@twin.org/data-processing-rest-client\";\nimport {\n\tDataProcessingService,\n\tinitSchema as initSchemaDataProcessing,\n\ttype ExtractionRuleGroup\n} from \"@twin.org/data-processing-service\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { DataConverterConnectorConfig } from \"../models/config/dataConverterConnectorConfig.js\";\nimport type { DataExtractorConnectorConfig } from \"../models/config/dataExtractorConnectorConfig.js\";\nimport type { DataProcessingComponentConfig } from \"../models/config/dataProcessingComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DataConverterConnectorType } from \"../models/types/dataConverterConnectorType.js\";\nimport { DataExtractorConnectorType } from \"../models/types/dataExtractorConnectorType.js\";\nimport { DataProcessingComponentType } from \"../models/types/dataProcessingComponentType.js\";\n\n/**\n * Initialise the data converter 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 initialiseDataConverterConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataConverterConnectorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof DataConverterConnectorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IDataConverterConnector | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === DataConverterConnectorType.Json) {\n\t\tcomponent = new JsonConverterConnector();\n\t\tinstanceType = JsonConverterConnector.NAMESPACE;\n\t} else if (instanceConfig.type === DataConverterConnectorType.Xml) {\n\t\tcomponent = new XmlConverterConnector();\n\t\tinstanceType = XmlConverterConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: DataConverterConnectorFactory\n\t};\n}\n\n/**\n * Initialise the data extractor 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 initialiseDataExtractorConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataExtractorConnectorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof DataExtractorConnectorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IDataExtractorConnector | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === DataExtractorConnectorType.JsonPath) {\n\t\tcomponent = new JsonPathExtractorConnector();\n\t\tinstanceType = JsonPathExtractorConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: DataExtractorConnectorFactory\n\t};\n}\n\n/**\n * Initialise the data processing 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 initialiseDataProcessingComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataProcessingComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IDataProcessingComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === DataProcessingComponentType.Service) {\n\t\tinitSchemaDataProcessing();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.extractionRuleGroupStorageConnectorType,\n\t\t\tnameof<ExtractionRuleGroup>(),\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 DataProcessingService({\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(DataProcessingService);\n\t} else if (instanceConfig.type === DataProcessingComponentType.RestClient) {\n\t\tcomponent = new DataProcessingRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(DataProcessingRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"dataProcessing.js","sourceRoot":"","sources":["../../../src/components/dataProcessing.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport {\n\tJsonConverterConnector,\n\tXmlConverterConnector\n} from \"@twin.org/data-processing-converters\";\nimport { JsonPathExtractorConnector } from \"@twin.org/data-processing-extractors\";\nimport {\n\tDataConverterConnectorFactory,\n\tDataExtractorConnectorFactory\n} from \"@twin.org/data-processing-models\";\nimport { DataProcessingRestClient } from \"@twin.org/data-processing-rest-client\";\nimport {\n\tDataProcessingService,\n\tinitSchema as initSchemaDataProcessing,\n\ttype ExtractionRuleGroup\n} from \"@twin.org/data-processing-service\";\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 { DataConverterConnectorConfig } from \"../models/config/dataConverterConnectorConfig.js\";\nimport type { DataExtractorConnectorConfig } from \"../models/config/dataExtractorConnectorConfig.js\";\nimport type { DataProcessingComponentConfig } from \"../models/config/dataProcessingComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DataConverterConnectorType } from \"../models/types/dataConverterConnectorType.js\";\nimport { DataExtractorConnectorType } from \"../models/types/dataExtractorConnectorType.js\";\nimport { DataProcessingComponentType } from \"../models/types/dataProcessingComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the data converter 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 function initialiseDataConverterConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataConverterConnectorConfig\n): EngineTypeInitialiserReturn<DataConverterConnectorConfig, typeof DataConverterConnectorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === DataConverterConnectorType.Json) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new JsonConverterConnector();\n\t\tinstanceTypeName = JsonConverterConnector.NAMESPACE;\n\t} else if (instanceConfig.type === DataConverterConnectorType.Xml) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new XmlConverterConnector();\n\t\tinstanceTypeName = XmlConverterConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: DataConverterConnectorFactory\n\t};\n}\n\n/**\n * Initialise the data extractor 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 function initialiseDataExtractorConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataExtractorConnectorConfig\n): EngineTypeInitialiserReturn<DataExtractorConnectorConfig, typeof DataExtractorConnectorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === DataExtractorConnectorType.JsonPath) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new JsonPathExtractorConnector();\n\t\tinstanceTypeName = JsonPathExtractorConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: DataExtractorConnectorFactory\n\t};\n}\n\n/**\n * Initialise the data processing 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 initialiseDataProcessingComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataProcessingComponentConfig\n): EngineTypeInitialiserReturn<DataProcessingComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === DataProcessingComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaDataProcessing();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.extractionRuleGroupStorageConnectorType,\n\t\t\t\tnameof<ExtractionRuleGroup>(),\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\treturn new DataProcessingService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(DataProcessingService);\n\t} else if (instanceConfig.type === DataProcessingComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew DataProcessingRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(DataProcessingRestClient);\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"]}
@@ -7,6 +7,7 @@ import { DataSpaceConnectorService, initSchema as initSchemaDataSpaceConnector }
7
7
  import { DataSpaceConnectorSocketClient } from "@twin.org/data-space-connector-socket-client";
8
8
  import { initialiseEntityStorageConnector } from "./entityStorage.js";
9
9
  import { DataSpaceConnectorComponentType } from "../models/types/dataSpaceConnectorComponentType.js";
10
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
10
11
  /**
11
12
  * Initialise the data space connector component.
12
13
  * @param engineCore The engine core.
@@ -14,38 +15,38 @@ import { DataSpaceConnectorComponentType } from "../models/types/dataSpaceConnec
14
15
  * @param instanceConfig The instance config.
15
16
  * @returns The instance created and the factory for it.
16
17
  */
17
- export async function initialiseDataSpaceConnectorComponent(engineCore, context, instanceConfig) {
18
- let component;
19
- let instanceType;
18
+ export function initialiseDataSpaceConnectorComponent(engineCore, context, instanceConfig) {
19
+ let createComponent;
20
+ let instanceTypeName;
20
21
  if (instanceConfig.type === DataSpaceConnectorComponentType.Service) {
21
- initSchemaDataSpaceConnector();
22
- const partitionContextIds = ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant]);
23
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.activityLogEntityStorageType, "ActivityLogDetails", partitionContextIds);
24
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.activityTaskEntityStorageType, "ActivityTask", partitionContextIds);
25
- component = new DataSpaceConnectorService({
26
- loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
27
- backgroundTaskConnectorType: engineCore.getRegisteredInstanceType("backgroundTaskConnector"),
28
- taskSchedulerComponentType: engineCore.getRegisteredInstanceType("taskSchedulerComponent"),
29
- federatedCatalogueComponentType: engineCore.getRegisteredInstanceType("federatedCatalogueComponent"),
30
- partitionContextIds,
31
- ...instanceConfig.options
32
- });
33
- instanceType = "data-space-connector-service";
22
+ createComponent = (createConfig) => {
23
+ initSchemaDataSpaceConnector();
24
+ const partitionContextIds = ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node, ContextIdKeys.Tenant]);
25
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.activityLogEntityStorageType, "ActivityLogDetails", partitionContextIds);
26
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.activityTaskEntityStorageType, "ActivityTask", partitionContextIds);
27
+ return new DataSpaceConnectorService(EngineTypeHelper.mergeConfig({
28
+ loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
29
+ backgroundTaskComponentType: engineCore.getRegisteredInstanceType("backgroundTaskComponent"),
30
+ taskSchedulerComponentType: engineCore.getRegisteredInstanceType("taskSchedulerComponent"),
31
+ trustComponentType: engineCore.getRegisteredInstanceType("trustComponent"),
32
+ partitionContextIds
33
+ }, createConfig.options));
34
+ };
35
+ instanceTypeName = "data-space-connector-service";
34
36
  }
35
37
  else if (instanceConfig.type === DataSpaceConnectorComponentType.RestClient) {
36
- component = new DataSpaceConnectorRestClient(instanceConfig.options);
37
- instanceType = "data-space-connector-rest-client";
38
+ createComponent = (createConfig) => new DataSpaceConnectorRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
39
+ instanceTypeName = "data-space-connector-rest-client";
38
40
  }
39
41
  else if (instanceConfig.type === DataSpaceConnectorComponentType.SocketClient) {
40
- component = new DataSpaceConnectorSocketClient({
41
- loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
42
- ...instanceConfig.options
43
- });
44
- instanceType = "data-space-connector-socket-client";
42
+ createComponent = (createConfig) => new DataSpaceConnectorSocketClient(EngineTypeHelper.mergeConfig({
43
+ loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent")
44
+ }, createConfig.options));
45
+ instanceTypeName = "data-space-connector-socket-client";
45
46
  }
46
47
  return {
47
- component,
48
- instanceType,
48
+ createComponent: createComponent,
49
+ instanceTypeName,
49
50
  factory: ComponentFactory
50
51
  };
51
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dataSpaceConnector.js","sourceRoot":"","sources":["../../../src/components/dataSpaceConnector.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAGN,yBAAyB,EACzB,UAAU,IAAI,4BAA4B,EAC1C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAG9F,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;IAMjD,IAAI,SAA0C,CAAC;IAC/C,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QACrE,4BAA4B,EAAE,CAAC;QAE/B,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAChE,UAAU,CAAC,gBAAgB,EAAE,EAC7B,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAC1C,CAAC;QAEF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,4BAA4B,wBAEpD,mBAAmB,CACnB,CAAC;QACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,6BAA6B,kBAErD,mBAAmB,CACnB,CAAC;QACF,SAAS,GAAG,IAAI,yBAAyB,CAAC;YACzC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;YAC9E,2BAA2B,EAAE,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;YAC5F,0BAA0B,EAAE,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;YAC1F,+BAA+B,EAAE,UAAU,CAAC,yBAAyB,CACpE,6BAA6B,CAC7B;YACD,mBAAmB;YACnB,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;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,YAAY,EAAE,CAAC;QACjF,SAAS,GAAG,IAAI,8BAA8B,CAAC;YAC9C,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;YAC9E,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,uCAAkD,CAAC;IAChE,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 { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IDataSpaceConnector } from \"@twin.org/data-space-connector-models\";\nimport { DataSpaceConnectorRestClient } from \"@twin.org/data-space-connector-rest-client\";\nimport {\n\ttype ActivityLogDetails,\n\ttype ActivityTask,\n\tDataSpaceConnectorService,\n\tinitSchema as initSchemaDataSpaceConnector\n} from \"@twin.org/data-space-connector-service\";\nimport { DataSpaceConnectorSocketClient } from \"@twin.org/data-space-connector-socket-client\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport { initialiseEntityStorageConnector } from \"./entityStorage.js\";\nimport type { DataSpaceConnectorComponentConfig } from \"../models/config/dataSpaceConnectorComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DataSpaceConnectorComponentType } from \"../models/types/dataSpaceConnectorComponentType.js\";\n\n/**\n * Initialise the data space connector 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 initialiseDataSpaceConnectorComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataSpaceConnectorComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IDataSpaceConnector | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === DataSpaceConnectorComponentType.Service) {\n\t\tinitSchemaDataSpaceConnector();\n\n\t\tconst partitionContextIds = ContextIdHelper.pickKeysFromAvailable(\n\t\t\tengineCore.getContextIdKeys(),\n\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t);\n\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.activityLogEntityStorageType,\n\t\t\tnameof<ActivityLogDetails>(),\n\t\t\tpartitionContextIds\n\t\t);\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.activityTaskEntityStorageType,\n\t\t\tnameof<ActivityTask>(),\n\t\t\tpartitionContextIds\n\t\t);\n\t\tcomponent = new DataSpaceConnectorService({\n\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\tbackgroundTaskConnectorType: engineCore.getRegisteredInstanceType(\"backgroundTaskConnector\"),\n\t\t\ttaskSchedulerComponentType: engineCore.getRegisteredInstanceType(\"taskSchedulerComponent\"),\n\t\t\tfederatedCatalogueComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\"federatedCatalogueComponent\"\n\t\t\t),\n\t\t\tpartitionContextIds,\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(DataSpaceConnectorService);\n\t} else if (instanceConfig.type === DataSpaceConnectorComponentType.RestClient) {\n\t\tcomponent = new DataSpaceConnectorRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(DataSpaceConnectorRestClient);\n\t} else if (instanceConfig.type === DataSpaceConnectorComponentType.SocketClient) {\n\t\tcomponent = new DataSpaceConnectorSocketClient({\n\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(DataSpaceConnectorSocketClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"dataSpaceConnector.js","sourceRoot":"","sources":["../../../src/components/dataSpaceConnector.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAGN,yBAAyB,EACzB,UAAU,IAAI,4BAA4B,EAC1C,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AAO9F,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,MAAM,mBAAmB,GAAG,eAAe,CAAC,qBAAqB,CAChE,UAAU,CAAC,gBAAgB,EAAE,EAC7B,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAC1C,CAAC;YAEF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,wBAElD,mBAAmB,CACnB,CAAC;YACF,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,kBAEnD,mBAAmB,CACnB,CAAC;YACF,OAAO,IAAI,yBAAyB,CACnC,gBAAgB,CAAC,WAAW,CAC3B;gBACC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;gBAC9E,2BAA2B,EAC1B,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;gBAChE,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBAC1E,mBAAmB;aACnB,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;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,YAAY,EAAE,CAAC;QACjF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,8BAA8B,CACjC,gBAAgB,CAAC,WAAW,CAC3B;YACC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;SAC9E,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,uCAAkD,CAAC;IACpE,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 { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport { DataSpaceConnectorRestClient } from \"@twin.org/data-space-connector-rest-client\";\nimport {\n\ttype ActivityLogDetails,\n\ttype ActivityTask,\n\tDataSpaceConnectorService,\n\tinitSchema as initSchemaDataSpaceConnector\n} from \"@twin.org/data-space-connector-service\";\nimport { DataSpaceConnectorSocketClient } from \"@twin.org/data-space-connector-socket-client\";\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 { DataSpaceConnectorComponentConfig } from \"../models/config/dataSpaceConnectorComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DataSpaceConnectorComponentType } from \"../models/types/dataSpaceConnectorComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the data space connector 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 initialiseDataSpaceConnectorComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DataSpaceConnectorComponentConfig\n): EngineTypeInitialiserReturn<DataSpaceConnectorComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === DataSpaceConnectorComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaDataSpaceConnector();\n\n\t\t\tconst partitionContextIds = ContextIdHelper.pickKeysFromAvailable(\n\t\t\t\tengineCore.getContextIdKeys(),\n\t\t\t\t[ContextIdKeys.Node, ContextIdKeys.Tenant]\n\t\t\t);\n\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.activityLogEntityStorageType,\n\t\t\t\tnameof<ActivityLogDetails>(),\n\t\t\t\tpartitionContextIds\n\t\t\t);\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.activityTaskEntityStorageType,\n\t\t\t\tnameof<ActivityTask>(),\n\t\t\t\tpartitionContextIds\n\t\t\t);\n\t\t\treturn new DataSpaceConnectorService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\t\t\t\tbackgroundTaskComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"backgroundTaskComponent\"),\n\t\t\t\t\t\ttaskSchedulerComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"taskSchedulerComponent\"),\n\t\t\t\t\t\ttrustComponentType: engineCore.getRegisteredInstanceType(\"trustComponent\"),\n\t\t\t\t\t\tpartitionContextIds\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(DataSpaceConnectorService);\n\t} else if (instanceConfig.type === DataSpaceConnectorComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew DataSpaceConnectorRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(DataSpaceConnectorRestClient);\n\t} else if (instanceConfig.type === DataSpaceConnectorComponentType.SocketClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew DataSpaceConnectorSocketClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\")\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 = nameofKebabCase(DataSpaceConnectorSocketClient);\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"]}
@@ -4,6 +4,7 @@ import { ComponentFactory } from "@twin.org/core";
4
4
  import { DocumentManagementRestClient } from "@twin.org/document-management-rest-client";
5
5
  import { DocumentManagementService } from "@twin.org/document-management-service";
6
6
  import { DocumentManagementComponentType } from "../models/types/documentManagementComponentType.js";
7
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
7
8
  /**
8
9
  * Initialise the document management component.
9
10
  * @param engineCore The engine core.
@@ -11,26 +12,25 @@ import { DocumentManagementComponentType } from "../models/types/documentManagem
11
12
  * @param instanceConfig The instance config.
12
13
  * @returns The instance created and the factory for it.
13
14
  */
14
- export async function initialiseDocumentManagementComponent(engineCore, context, instanceConfig) {
15
- let component;
16
- let instanceType;
15
+ export function initialiseDocumentManagementComponent(engineCore, context, instanceConfig) {
16
+ let createComponent;
17
+ let instanceTypeName;
17
18
  if (instanceConfig.type === DocumentManagementComponentType.Service) {
18
- component = new DocumentManagementService({
19
+ createComponent = (createConfig) => new DocumentManagementService(EngineTypeHelper.mergeConfig({
19
20
  auditableItemGraphComponentType: engineCore.getRegisteredInstanceType("auditableItemGraphComponent"),
20
21
  blobStorageComponentType: engineCore.getRegisteredInstanceType("blobStorageComponent"),
21
22
  attestationComponentType: engineCore.getRegisteredInstanceType("attestationComponent"),
22
- dataProcessingComponentType: engineCore.getRegisteredInstanceType("dataProcessingComponent"),
23
- ...instanceConfig.options
24
- });
25
- instanceType = "document-management-service";
23
+ dataProcessingComponentType: engineCore.getRegisteredInstanceType("dataProcessingComponent")
24
+ }, createConfig.options));
25
+ instanceTypeName = "document-management-service";
26
26
  }
27
27
  else if (instanceConfig.type === DocumentManagementComponentType.RestClient) {
28
- component = new DocumentManagementRestClient(instanceConfig.options);
29
- instanceType = "document-management-rest-client";
28
+ createComponent = (createConfig) => new DocumentManagementRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
29
+ instanceTypeName = "document-management-rest-client";
30
30
  }
31
31
  return {
32
- component,
33
- instanceType,
32
+ createComponent: createComponent,
33
+ instanceTypeName,
34
34
  factory: ComponentFactory
35
35
  };
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentManagement.js","sourceRoot":"","sources":["../../../src/components/documentManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAKlF,OAAO,EAAE,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAErG;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CAC1D,UAAsC,EACtC,OAA0C,EAC1C,cAAiD;IAMjD,IAAI,SAAmD,CAAC;IACxD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,+BAA+B,CAAC,OAAO,EAAE,CAAC;QACrE,SAAS,GAAG,IAAI,yBAAyB,CAAC;YACzC,+BAA+B,EAAE,UAAU,CAAC,yBAAyB,CACpE,6BAA6B,CAC7B;YACD,wBAAwB,EAAE,UAAU,CAAC,yBAAyB,CAAC,sBAAsB,CAAC;YACtF,wBAAwB,EAAE,UAAU,CAAC,yBAAyB,CAAC,sBAAsB,CAAC;YACtF,2BAA2B,EAAE,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;YAC5F,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,gCAA6C,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,oCAAgD,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 { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IDocumentManagementComponent } from \"@twin.org/document-management-models\";\nimport { DocumentManagementRestClient } from \"@twin.org/document-management-rest-client\";\nimport { DocumentManagementService } from \"@twin.org/document-management-service\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { DocumentManagementComponentConfig } from \"../models/config/documentManagementComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DocumentManagementComponentType } from \"../models/types/documentManagementComponentType.js\";\n\n/**\n * Initialise the document management 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 initialiseDocumentManagementComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DocumentManagementComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IDocumentManagementComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === DocumentManagementComponentType.Service) {\n\t\tcomponent = new DocumentManagementService({\n\t\t\tauditableItemGraphComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\"auditableItemGraphComponent\"\n\t\t\t),\n\t\t\tblobStorageComponentType: engineCore.getRegisteredInstanceType(\"blobStorageComponent\"),\n\t\t\tattestationComponentType: engineCore.getRegisteredInstanceType(\"attestationComponent\"),\n\t\t\tdataProcessingComponentType: engineCore.getRegisteredInstanceType(\"dataProcessingComponent\"),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(DocumentManagementService);\n\t} else if (instanceConfig.type === DocumentManagementComponentType.RestClient) {\n\t\tcomponent = new DocumentManagementRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(DocumentManagementRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"documentManagement.js","sourceRoot":"","sources":["../../../src/components/documentManagement.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AASlF,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,CACzD,IAAI,yBAAyB,CAC5B,gBAAgB,CAAC,WAAW,CAC3B;YACC,+BAA+B,EAAE,UAAU,CAAC,yBAAyB,CACpE,6BAA6B,CAC7B;YACD,wBAAwB,EAAE,UAAU,CAAC,yBAAyB,CAAC,sBAAsB,CAAC;YACtF,wBAAwB,EAAE,UAAU,CAAC,yBAAyB,CAAC,sBAAsB,CAAC;YACtF,2BAA2B,EAC1B,UAAU,CAAC,yBAAyB,CAAC,yBAAyB,CAAC;SAChE,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,gCAA6C,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,oCAAgD,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 { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport { DocumentManagementRestClient } from \"@twin.org/document-management-rest-client\";\nimport { DocumentManagementService } from \"@twin.org/document-management-service\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { DocumentManagementComponentConfig } from \"../models/config/documentManagementComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { DocumentManagementComponentType } from \"../models/types/documentManagementComponentType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the document management 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 initialiseDocumentManagementComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: DocumentManagementComponentConfig\n): EngineTypeInitialiserReturn<DocumentManagementComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === DocumentManagementComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew DocumentManagementService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauditableItemGraphComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"auditableItemGraphComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tblobStorageComponentType: engineCore.getRegisteredInstanceType(\"blobStorageComponent\"),\n\t\t\t\t\t\tattestationComponentType: engineCore.getRegisteredInstanceType(\"attestationComponent\"),\n\t\t\t\t\t\tdataProcessingComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"dataProcessingComponent\")\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 = nameofKebabCase(DocumentManagementService);\n\t} else if (instanceConfig.type === DocumentManagementComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew DocumentManagementRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(DocumentManagementRestClient);\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"]}
@@ -17,6 +17,7 @@ import { EntityStorageRestClient } from "@twin.org/entity-storage-rest-client";
17
17
  import { EntityStorageService } from "@twin.org/entity-storage-service";
18
18
  import { EntityStorageComponentType } from "../models/types/entityStorageComponentType.js";
19
19
  import { EntityStorageConnectorType } from "../models/types/entityStorageConnectorType.js";
20
+ import { EngineTypeHelper } from "../utils/engineTypeHelper.js";
20
21
  /**
21
22
  * Initialise the entity storage connector.
22
23
  * @param engineCore The engine core.
@@ -180,7 +181,7 @@ export function initialiseEntityStorageConnector(engineCore, context, typeCustom
180
181
  context.componentInstances.push({
181
182
  instanceType: instanceName,
182
183
  component: entityStorageConnector,
183
- started: false
184
+ initialised: false
184
185
  });
185
186
  EntityStorageConnectorFactory.register(instanceName, () => entityStorageConnector);
186
187
  }
@@ -193,33 +194,31 @@ export function initialiseEntityStorageConnector(engineCore, context, typeCustom
193
194
  * @param instanceConfig The instance config.
194
195
  * @returns The instance created and the factory for it.
195
196
  */
196
- export async function initialiseEntityStorageComponent(engineCore, context, instanceConfig) {
197
- let component;
198
- let instanceType;
197
+ export function initialiseEntityStorageComponent(engineCore, context, instanceConfig) {
198
+ let createComponent;
199
+ let instanceTypeName;
199
200
  if (instanceConfig.type === EntityStorageComponentType.Service) {
200
201
  const kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);
201
- // See if there is a custom entity storage for this type, otherwise just use the default one.
202
- const hasCustom = context.config.types.entityStorageConnector?.some(c => c.type === kebabName || c.overrideInstanceType === kebabName);
203
- initialiseEntityStorageConnector(engineCore, context, hasCustom ? kebabName : undefined, instanceConfig.options.entityStorageType, instanceConfig.options.partitionContextIds);
204
- component = new EntityStorageService({
205
- entityStorageType: kebabName,
206
- config: {
207
- ...instanceConfig.options.config
208
- }
209
- });
210
- instanceType = StringHelper.kebabCase(instanceConfig.options.entityStorageType);
202
+ createComponent = (createConfig) => {
203
+ // See if there is a custom entity storage for this type, otherwise just use the default one.
204
+ const hasCustom = context.config.types.entityStorageConnector?.some(c => c.type === kebabName || c.overrideInstanceType === kebabName);
205
+ initialiseEntityStorageConnector(engineCore, context, hasCustom ? kebabName : undefined, createConfig.options.entityStorageType, createConfig.options.partitionContextIds);
206
+ return new EntityStorageService(EngineTypeHelper.mergeConfig(createConfig.options, {
207
+ entityStorageType: kebabName
208
+ }));
209
+ };
210
+ instanceTypeName = kebabName;
211
211
  }
212
212
  else if (instanceConfig.type === EntityStorageComponentType.RestClient) {
213
213
  const kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);
214
- component = new EntityStorageRestClient({
215
- pathPrefix: kebabName,
216
- ...instanceConfig.options
217
- });
218
- instanceType = `${"entity-storage-rest-client"}-${kebabName}`;
214
+ createComponent = (createConfig) => new EntityStorageRestClient(EngineTypeHelper.mergeConfig(createConfig.options, {
215
+ pathPrefix: kebabName
216
+ }));
217
+ instanceTypeName = `${"entity-storage-rest-client"}-${kebabName}`;
219
218
  }
220
219
  return {
221
- component,
222
- instanceType,
220
+ createComponent: createComponent,
221
+ instanceTypeName,
223
222
  factory: ComponentFactory
224
223
  };
225
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entityStorage.js","sourceRoot":"","sources":["../../../src/components/entityStorage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport path from \"node:path\";\nimport {\n\tComponentFactory,\n\tGeneralError,\n\tI18n,\n\tIs,\n\tStringHelper,\n\ttype IComponent\n} from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { CosmosDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-cosmosdb\";\nimport { DynamoDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-dynamodb\";\nimport { FileEntityStorageConnector } from \"@twin.org/entity-storage-connector-file\";\nimport { FirestoreEntityStorageConnector } from \"@twin.org/entity-storage-connector-gcp-firestore\";\nimport { MemoryEntityStorageConnector } from \"@twin.org/entity-storage-connector-memory\";\nimport { MongoDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-mongodb\";\nimport { MySqlEntityStorageConnector } from \"@twin.org/entity-storage-connector-mysql\";\nimport { PostgreSqlEntityStorageConnector } from \"@twin.org/entity-storage-connector-postgresql\";\nimport { ScyllaDBTableConnector } from \"@twin.org/entity-storage-connector-scylladb\";\nimport { SynchronisedEntityStorageConnector } from \"@twin.org/entity-storage-connector-synchronised\";\nimport {\n\tEntityStorageConnectorFactory,\n\ttype IEntityStorageComponent,\n\ttype IEntityStorageConnector\n} from \"@twin.org/entity-storage-models\";\nimport { EntityStorageRestClient } from \"@twin.org/entity-storage-rest-client\";\nimport { EntityStorageService } from \"@twin.org/entity-storage-service\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { EntityStorageComponentConfig } from \"../models/config/entityStorageComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { EntityStorageComponentType } from \"../models/types/entityStorageComponentType.js\";\nimport { EntityStorageConnectorType } from \"../models/types/entityStorageConnectorType.js\";\n\n/**\n * Initialise the entity storage connector.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param typeCustom Override the type of connector to use instead of default configuration.\n * @param schema The schema for the entity storage.\n * @param partitionContextIds The context IDs to use for partitioning the data.\n * @returns The name of the instance type that was created.\n * @throws GeneralError when the configuration is invalid.\n */\nexport function initialiseEntityStorageConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\ttypeCustom: string | undefined,\n\tschema: string,\n\tpartitionContextIds: string[]\n): string {\n\tconst instanceName = StringHelper.kebabCase(schema);\n\n\tif (!EntityStorageConnectorFactory.hasName(instanceName)) {\n\t\tlet entityStorageConfig;\n\n\t\tif (Is.stringValue(typeCustom)) {\n\t\t\t// A custom type has been specified, so look it up\n\t\t\tentityStorageConfig = context.config.types.entityStorageConnector?.find(\n\t\t\t\tc => c.type === typeCustom || c.overrideInstanceType === typeCustom\n\t\t\t);\n\t\t\tif (Is.empty(entityStorageConfig)) {\n\t\t\t\tthrow new GeneralError(\"engineTypes\", \"entityStorageCustomMissing\", {\n\t\t\t\t\ttypeCustom,\n\t\t\t\t\tstorageName: instanceName\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// The default entity storage method is either the one with the isDefault flag set\n\t\t\t// or pick the first one if no default is set.\n\t\t\tentityStorageConfig =\n\t\t\t\tcontext.config.types.entityStorageConnector?.find(c => c.isDefault ?? false) ??\n\t\t\t\tcontext.config.types.entityStorageConnector?.[0];\n\t\t\tif (Is.empty(entityStorageConfig)) {\n\t\t\t\tthrow new GeneralError(\"engineTypes\", \"entityStorageMissing\", {\n\t\t\t\t\tstorageName: instanceName\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst type = entityStorageConfig.type;\n\t\tlet entityStorageConnector: IEntityStorageConnector;\n\n\t\tengineCore.logInfo(\n\t\t\tI18n.formatMessage(\"info.engineTypes.configuringEntityStorage\", {\n\t\t\t\telement: \"Entity Storage\",\n\t\t\t\tstorageName: instanceName,\n\t\t\t\tstorageType: type\n\t\t\t})\n\t\t);\n\n\t\tif (type === EntityStorageConnectorType.Memory) {\n\t\t\tentityStorageConnector = new MemoryEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.File) {\n\t\t\tentityStorageConnector = new FileEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tdirectory: path.join(\n\t\t\t\t\t\tentityStorageConfig.options.config.directory,\n\t\t\t\t\t\t`${entityStorageConfig.options.folderPrefix ?? \"\"}${instanceName}`\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.AwsDynamoDb) {\n\t\t\tentityStorageConnector = new DynamoDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.AzureCosmosDb) {\n\t\t\tentityStorageConnector = new CosmosDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcontainerId: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.GcpFirestoreDb) {\n\t\t\tentityStorageConnector = new FirestoreEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcollectionName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.ScyllaDb) {\n\t\t\tentityStorageConnector = new ScyllaDBTableConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.MySqlDb) {\n\t\t\tentityStorageConnector = new MySqlEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.MongoDb) {\n\t\t\tentityStorageConnector = new MongoDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcollection: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.PostgreSql) {\n\t\t\tentityStorageConnector = new PostgreSqlEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.Synchronised) {\n\t\t\t// Create the entity storage that is wrapped by the synchronised connector\n\t\t\t// by removing the custom type it will default to the standard storage\n\t\t\t// mechanism for entity storage\n\t\t\tconst wrappedInstanceName = initialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tundefined,\n\t\t\t\tschema,\n\t\t\t\tpartitionContextIds\n\t\t\t);\n\n\t\t\t// Use the wrapped instance name as the entity storage connector type\n\t\t\t// for the synchronised connector\n\t\t\tentityStorageConnector = new SynchronisedEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tentityStorageConnectorType: wrappedInstanceName,\n\t\t\t\teventBusComponentType: engineCore.getRegisteredInstanceType(\"eventBusComponent\"),\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new GeneralError(\"engineTypes\", \"connectorUnknownType\", {\n\t\t\t\ttype,\n\t\t\t\tconnectorType: \"entityStorageConnector\"\n\t\t\t});\n\t\t}\n\n\t\tcontext.componentInstances.push({\n\t\t\tinstanceType: instanceName,\n\t\t\tcomponent: entityStorageConnector,\n\t\t\tstarted: false\n\t\t});\n\t\tEntityStorageConnectorFactory.register(instanceName, () => entityStorageConnector);\n\t}\n\n\treturn instanceName;\n}\n\n/**\n * Initialise the entity storage 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 initialiseEntityStorageComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: EntityStorageComponentConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof ComponentFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IEntityStorageComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === EntityStorageComponentType.Service) {\n\t\tconst kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);\n\n\t\t// See if there is a custom entity storage for this type, otherwise just use the default one.\n\t\tconst hasCustom = context.config.types.entityStorageConnector?.some(\n\t\t\tc => c.type === kebabName || c.overrideInstanceType === kebabName\n\t\t);\n\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\thasCustom ? kebabName : undefined,\n\t\t\tinstanceConfig.options.entityStorageType,\n\t\t\tinstanceConfig.options.partitionContextIds\n\t\t);\n\t\tcomponent = new EntityStorageService({\n\t\t\tentityStorageType: kebabName,\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options.config\n\t\t\t}\n\t\t});\n\t\tinstanceType = StringHelper.kebabCase(instanceConfig.options.entityStorageType);\n\t} else if (instanceConfig.type === EntityStorageComponentType.RestClient) {\n\t\tconst kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);\n\t\tcomponent = new EntityStorageRestClient({\n\t\t\tpathPrefix: kebabName,\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = `${nameofKebabCase(EntityStorageRestClient)}-${kebabName}`;\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"entityStorage.js","sourceRoot":"","sources":["../../../src/components/entityStorage.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport path from \"node:path\";\nimport {\n\tComponentFactory,\n\tGeneralError,\n\tI18n,\n\ttype IComponent,\n\tIs,\n\tStringHelper\n} from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { CosmosDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-cosmosdb\";\nimport { DynamoDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-dynamodb\";\nimport { FileEntityStorageConnector } from \"@twin.org/entity-storage-connector-file\";\nimport { FirestoreEntityStorageConnector } from \"@twin.org/entity-storage-connector-gcp-firestore\";\nimport { MemoryEntityStorageConnector } from \"@twin.org/entity-storage-connector-memory\";\nimport { MongoDbEntityStorageConnector } from \"@twin.org/entity-storage-connector-mongodb\";\nimport { MySqlEntityStorageConnector } from \"@twin.org/entity-storage-connector-mysql\";\nimport { PostgreSqlEntityStorageConnector } from \"@twin.org/entity-storage-connector-postgresql\";\nimport { ScyllaDBTableConnector } from \"@twin.org/entity-storage-connector-scylladb\";\nimport { SynchronisedEntityStorageConnector } from \"@twin.org/entity-storage-connector-synchronised\";\nimport {\n\tEntityStorageConnectorFactory,\n\ttype IEntityStorageConnector\n} from \"@twin.org/entity-storage-models\";\nimport { EntityStorageRestClient } from \"@twin.org/entity-storage-rest-client\";\nimport { EntityStorageService } from \"@twin.org/entity-storage-service\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { EntityStorageComponentConfig } from \"../models/config/entityStorageComponentConfig.js\";\nimport type { IEngineConfig } from \"../models/IEngineConfig.js\";\nimport { EntityStorageComponentType } from \"../models/types/entityStorageComponentType.js\";\nimport { EntityStorageConnectorType } from \"../models/types/entityStorageConnectorType.js\";\nimport { EngineTypeHelper } from \"../utils/engineTypeHelper.js\";\n\n/**\n * Initialise the entity storage connector.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param typeCustom Override the type of connector to use instead of default configuration.\n * @param schema The schema for the entity storage.\n * @param partitionContextIds The context IDs to use for partitioning the data.\n * @returns The name of the instance type that was created.\n * @throws GeneralError when the configuration is invalid.\n */\nexport function initialiseEntityStorageConnector(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\ttypeCustom: string | undefined,\n\tschema: string,\n\tpartitionContextIds: string[]\n): string {\n\tconst instanceName = StringHelper.kebabCase(schema);\n\n\tif (!EntityStorageConnectorFactory.hasName(instanceName)) {\n\t\tlet entityStorageConfig;\n\n\t\tif (Is.stringValue(typeCustom)) {\n\t\t\t// A custom type has been specified, so look it up\n\t\t\tentityStorageConfig = context.config.types.entityStorageConnector?.find(\n\t\t\t\tc => c.type === typeCustom || c.overrideInstanceType === typeCustom\n\t\t\t);\n\t\t\tif (Is.empty(entityStorageConfig)) {\n\t\t\t\tthrow new GeneralError(\"engineTypes\", \"entityStorageCustomMissing\", {\n\t\t\t\t\ttypeCustom,\n\t\t\t\t\tstorageName: instanceName\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// The default entity storage method is either the one with the isDefault flag set\n\t\t\t// or pick the first one if no default is set.\n\t\t\tentityStorageConfig =\n\t\t\t\tcontext.config.types.entityStorageConnector?.find(c => c.isDefault ?? false) ??\n\t\t\t\tcontext.config.types.entityStorageConnector?.[0];\n\t\t\tif (Is.empty(entityStorageConfig)) {\n\t\t\t\tthrow new GeneralError(\"engineTypes\", \"entityStorageMissing\", {\n\t\t\t\t\tstorageName: instanceName\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tconst type = entityStorageConfig.type;\n\t\tlet entityStorageConnector: IEntityStorageConnector;\n\n\t\tengineCore.logInfo(\n\t\t\tI18n.formatMessage(\"info.engineTypes.configuringEntityStorage\", {\n\t\t\t\telement: \"Entity Storage\",\n\t\t\t\tstorageName: instanceName,\n\t\t\t\tstorageType: type\n\t\t\t})\n\t\t);\n\n\t\tif (type === EntityStorageConnectorType.Memory) {\n\t\t\tentityStorageConnector = new MemoryEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.File) {\n\t\t\tentityStorageConnector = new FileEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tdirectory: path.join(\n\t\t\t\t\t\tentityStorageConfig.options.config.directory,\n\t\t\t\t\t\t`${entityStorageConfig.options.folderPrefix ?? \"\"}${instanceName}`\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.AwsDynamoDb) {\n\t\t\tentityStorageConnector = new DynamoDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.AzureCosmosDb) {\n\t\t\tentityStorageConnector = new CosmosDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcontainerId: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.GcpFirestoreDb) {\n\t\t\tentityStorageConnector = new FirestoreEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcollectionName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.ScyllaDb) {\n\t\t\tentityStorageConnector = new ScyllaDBTableConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.MySqlDb) {\n\t\t\tentityStorageConnector = new MySqlEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.MongoDb) {\n\t\t\tentityStorageConnector = new MongoDbEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\tcollection: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.PostgreSql) {\n\t\t\tentityStorageConnector = new PostgreSqlEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\tpartitionContextIds,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config,\n\t\t\t\t\ttableName: `${entityStorageConfig.options.tablePrefix ?? \"\"}${instanceName}`\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === EntityStorageConnectorType.Synchronised) {\n\t\t\t// Create the entity storage that is wrapped by the synchronised connector\n\t\t\t// by removing the custom type it will default to the standard storage\n\t\t\t// mechanism for entity storage\n\t\t\tconst wrappedInstanceName = initialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tundefined,\n\t\t\t\tschema,\n\t\t\t\tpartitionContextIds\n\t\t\t);\n\n\t\t\t// Use the wrapped instance name as the entity storage connector type\n\t\t\t// for the synchronised connector\n\t\t\tentityStorageConnector = new SynchronisedEntityStorageConnector({\n\t\t\t\tentitySchema: schema,\n\t\t\t\t...entityStorageConfig.options,\n\t\t\t\tentityStorageConnectorType: wrappedInstanceName,\n\t\t\t\teventBusComponentType: engineCore.getRegisteredInstanceType(\"eventBusComponent\"),\n\t\t\t\tconfig: {\n\t\t\t\t\t...entityStorageConfig.options.config\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthrow new GeneralError(\"engineTypes\", \"connectorUnknownType\", {\n\t\t\t\ttype,\n\t\t\t\tconnectorType: \"entityStorageConnector\"\n\t\t\t});\n\t\t}\n\n\t\tcontext.componentInstances.push({\n\t\t\tinstanceType: instanceName,\n\t\t\tcomponent: entityStorageConnector,\n\t\t\tinitialised: false\n\t\t});\n\t\tEntityStorageConnectorFactory.register(instanceName, () => entityStorageConnector);\n\t}\n\n\treturn instanceName;\n}\n\n/**\n * Initialise the entity storage 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 function initialiseEntityStorageComponent(\n\tengineCore: IEngineCore<IEngineConfig>,\n\tcontext: IEngineCoreContext<IEngineConfig>,\n\tinstanceConfig: EntityStorageComponentConfig\n): EngineTypeInitialiserReturn<EntityStorageComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === EntityStorageComponentType.Service) {\n\t\tconst kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\t// See if there is a custom entity storage for this type, otherwise just use the default one.\n\t\t\tconst hasCustom = context.config.types.entityStorageConnector?.some(\n\t\t\t\tc => c.type === kebabName || c.overrideInstanceType === kebabName\n\t\t\t);\n\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\thasCustom ? kebabName : undefined,\n\t\t\t\tcreateConfig.options.entityStorageType,\n\t\t\t\tcreateConfig.options.partitionContextIds\n\t\t\t);\n\n\t\t\treturn new EntityStorageService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options, {\n\t\t\t\t\tentityStorageType: kebabName\n\t\t\t\t})\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = kebabName;\n\t} else if (instanceConfig.type === EntityStorageComponentType.RestClient) {\n\t\tconst kebabName = StringHelper.kebabCase(instanceConfig.options.entityStorageType);\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options, {\n\t\t\t\t\tpathPrefix: kebabName\n\t\t\t\t})\n\t\t\t);\n\t\tinstanceTypeName = `${nameofKebabCase(EntityStorageRestClient)}-${kebabName}`;\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"]}