@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.
- package/dist/es/components/attestation.js +20 -22
- package/dist/es/components/attestation.js.map +1 -1
- package/dist/es/components/auditableItemGraph.js +26 -22
- package/dist/es/components/auditableItemGraph.js.map +1 -1
- package/dist/es/components/auditableItemStream.js +26 -22
- package/dist/es/components/auditableItemStream.js.map +1 -1
- package/dist/es/components/backgroundTask.js +18 -18
- package/dist/es/components/backgroundTask.js.map +1 -1
- package/dist/es/components/blobStorage.js +69 -80
- package/dist/es/components/blobStorage.js.map +1 -1
- package/dist/es/components/contextIdHandler.js +31 -0
- package/dist/es/components/contextIdHandler.js.map +1 -0
- package/dist/es/components/dataProcessing.js +33 -32
- package/dist/es/components/dataProcessing.js.map +1 -1
- package/dist/es/components/dataSpaceConnector.js +26 -25
- package/dist/es/components/dataSpaceConnector.js.map +1 -1
- package/dist/es/components/documentManagement.js +12 -12
- package/dist/es/components/documentManagement.js.map +1 -1
- package/dist/es/components/entityStorage.js +20 -21
- package/dist/es/components/entityStorage.js.map +1 -1
- package/dist/es/components/eventBus.js +19 -27
- package/dist/es/components/eventBus.js.map +1 -1
- package/dist/es/components/faucet.js +18 -18
- package/dist/es/components/faucet.js.map +1 -1
- package/dist/es/components/federatedCatalogue.js +14 -18
- package/dist/es/components/federatedCatalogue.js.map +1 -1
- package/dist/es/components/federatedCatalogueFilter.js +34 -0
- package/dist/es/components/federatedCatalogueFilter.js.map +1 -0
- package/dist/es/components/identity.js +28 -31
- package/dist/es/components/identity.js.map +1 -1
- package/dist/es/components/identityProfile.js +26 -24
- package/dist/es/components/identityProfile.js.map +1 -1
- package/dist/es/components/identityResolver.js +36 -40
- package/dist/es/components/identityResolver.js.map +1 -1
- package/dist/es/components/immutableProof.js +23 -20
- package/dist/es/components/immutableProof.js.map +1 -1
- package/dist/es/components/logging.js +28 -28
- package/dist/es/components/logging.js.map +1 -1
- package/dist/es/components/messaging.js +77 -89
- package/dist/es/components/messaging.js.map +1 -1
- package/dist/es/components/nft.js +33 -33
- package/dist/es/components/nft.js.map +1 -1
- package/dist/es/components/rightsManagementPap.js +17 -17
- package/dist/es/components/rightsManagementPap.js.map +1 -1
- package/dist/es/components/rightsManagementPdp.js +11 -25
- package/dist/es/components/rightsManagementPdp.js.map +1 -1
- package/dist/es/components/rightsManagementPep.js +12 -24
- package/dist/es/components/rightsManagementPep.js.map +1 -1
- package/dist/es/components/rightsManagementPip.js +9 -25
- package/dist/es/components/rightsManagementPip.js.map +1 -1
- package/dist/es/components/rightsManagementPmp.js +10 -10
- package/dist/es/components/rightsManagementPmp.js.map +1 -1
- package/dist/es/components/rightsManagementPnap.js +20 -18
- package/dist/es/components/rightsManagementPnap.js.map +1 -1
- package/dist/es/components/rightsManagementPnp.js +14 -36
- package/dist/es/components/rightsManagementPnp.js.map +1 -1
- package/dist/es/components/rightsManagementPolicyArbiter.js +32 -0
- package/dist/es/components/rightsManagementPolicyArbiter.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js +33 -0
- package/dist/es/components/rightsManagementPolicyEnforcementProcessor.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyExecutionAction.js +25 -0
- package/dist/es/components/rightsManagementPolicyExecutionAction.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyInformationSource.js +34 -0
- package/dist/es/components/rightsManagementPolicyInformationSource.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyNegotiator.js +27 -0
- package/dist/es/components/rightsManagementPolicyNegotiator.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyObligationEnforcer.js +27 -0
- package/dist/es/components/rightsManagementPolicyObligationEnforcer.js.map +1 -0
- package/dist/es/components/rightsManagementPolicyRequester.js +25 -0
- package/dist/es/components/rightsManagementPolicyRequester.js.map +1 -0
- package/dist/es/components/rightsManagementPxp.js +9 -25
- package/dist/es/components/rightsManagementPxp.js.map +1 -1
- package/dist/es/components/synchronisedStorage.js +25 -23
- package/dist/es/components/synchronisedStorage.js.map +1 -1
- package/dist/es/components/taskScheduler.js +10 -10
- package/dist/es/components/taskScheduler.js.map +1 -1
- package/dist/es/components/telemetry.js +29 -32
- package/dist/es/components/telemetry.js.map +1 -1
- package/dist/es/components/tenant.js +12 -11
- package/dist/es/components/tenant.js.map +1 -1
- package/dist/es/components/trust.js +27 -0
- package/dist/es/components/trust.js.map +1 -0
- package/dist/es/components/trustGenerator.js +28 -0
- package/dist/es/components/trustGenerator.js.map +1 -0
- package/dist/es/components/trustVerifier.js +28 -0
- package/dist/es/components/trustVerifier.js.map +1 -0
- package/dist/es/components/vault.js +15 -12
- package/dist/es/components/vault.js.map +1 -1
- package/dist/es/components/verifiableStorage.js +32 -34
- package/dist/es/components/verifiableStorage.js.map +1 -1
- package/dist/es/components/wallet.js +23 -24
- package/dist/es/components/wallet.js.map +1 -1
- package/dist/es/index.js +38 -11
- package/dist/es/index.js.map +1 -1
- package/dist/es/models/IEngineConfig.js.map +1 -1
- package/dist/es/models/config/backgroundTaskComponentConfig.js +2 -0
- package/dist/es/models/config/backgroundTaskComponentConfig.js.map +1 -0
- package/dist/es/models/config/blobStorageConnectorConfig.js.map +1 -1
- package/dist/es/models/config/contextIdHandlerComponentConfig.js +2 -0
- package/dist/es/models/config/contextIdHandlerComponentConfig.js.map +1 -0
- package/dist/es/models/config/federatedCatalogueFilterComponentConfig.js +2 -0
- package/dist/es/models/config/federatedCatalogueFilterComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPdpComponentConfig.js.map +1 -1
- package/dist/es/models/config/rightsManagementPepComponentConfig.js.map +1 -1
- package/dist/es/models/config/rightsManagementPipComponentConfig.js.map +1 -1
- package/dist/es/models/config/rightsManagementPnpComponentConfig.js.map +1 -1
- package/dist/es/models/config/rightsManagementPolicyArbiterComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyArbiterComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyExecutionActionComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyExecutionActionComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyInformationSourceComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyInformationSourceComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyNegotiatorComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyNegotiatorComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPolicyRequesterComponentConfig.js +2 -0
- package/dist/es/models/config/rightsManagementPolicyRequesterComponentConfig.js.map +1 -0
- package/dist/es/models/config/rightsManagementPxpComponentConfig.js.map +1 -1
- package/dist/es/models/config/trustComponentConfig.js +2 -0
- package/dist/es/models/config/trustComponentConfig.js.map +1 -0
- package/dist/es/models/config/trustGeneratorComponentConfig.js +2 -0
- package/dist/es/models/config/trustGeneratorComponentConfig.js.map +1 -0
- package/dist/es/models/config/trustVerifierComponentConfig.js +2 -0
- package/dist/es/models/config/trustVerifierComponentConfig.js.map +1 -0
- package/dist/es/models/types/{rightsManagementDarpComponentType.js → backgroundTaskComponentType.js} +3 -3
- package/dist/es/models/types/backgroundTaskComponentType.js.map +1 -0
- package/dist/es/models/types/contextIdHandlerComponentType.js +17 -0
- package/dist/es/models/types/contextIdHandlerComponentType.js.map +1 -0
- package/dist/es/models/types/federatedCatalogueFilterComponentType.js +13 -0
- package/dist/es/models/types/federatedCatalogueFilterComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js +17 -0
- package/dist/es/models/types/rightsManagementPolicyArbiterComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js +17 -0
- package/dist/es/models/types/rightsManagementPolicyEnforcementProcessorComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyExecutionActionComponentType.js +13 -0
- package/dist/es/models/types/rightsManagementPolicyExecutionActionComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyInformationSourceComponentType.js +17 -0
- package/dist/es/models/types/rightsManagementPolicyInformationSourceComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyNegotiatorComponentType.js +13 -0
- package/dist/es/models/types/rightsManagementPolicyNegotiatorComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js +13 -0
- package/dist/es/models/types/rightsManagementPolicyObligationEnforcerComponentType.js.map +1 -0
- package/dist/es/models/types/rightsManagementPolicyRequesterComponentType.js +13 -0
- package/dist/es/models/types/rightsManagementPolicyRequesterComponentType.js.map +1 -0
- package/dist/es/models/types/trustComponentType.js +13 -0
- package/dist/es/models/types/trustComponentType.js.map +1 -0
- package/dist/es/models/types/trustGeneratorComponentType.js +13 -0
- package/dist/es/models/types/trustGeneratorComponentType.js.map +1 -0
- package/dist/es/models/types/trustVerifierComponentType.js +13 -0
- package/dist/es/models/types/trustVerifierComponentType.js.map +1 -0
- package/dist/es/utils/engineTypeHelper.js +19 -1
- package/dist/es/utils/engineTypeHelper.js.map +1 -1
- package/dist/types/components/attestation.d.ts +5 -13
- package/dist/types/components/auditableItemGraph.d.ts +3 -7
- package/dist/types/components/auditableItemStream.d.ts +3 -7
- package/dist/types/components/backgroundTask.d.ts +5 -10
- package/dist/types/components/blobStorage.d.ts +4 -12
- package/dist/types/components/contextIdHandler.d.ts +12 -0
- package/dist/types/components/dataProcessing.d.ts +5 -17
- package/dist/types/components/dataSpaceConnector.d.ts +3 -7
- package/dist/types/components/documentManagement.d.ts +3 -7
- package/dist/types/components/entityStorage.d.ts +3 -7
- package/dist/types/components/eventBus.d.ts +4 -12
- package/dist/types/components/faucet.d.ts +2 -7
- package/dist/types/components/federatedCatalogue.d.ts +3 -7
- package/dist/types/components/federatedCatalogueFilter.d.ts +12 -0
- package/dist/types/components/identity.d.ts +4 -12
- package/dist/types/components/identityProfile.d.ts +4 -12
- package/dist/types/components/identityResolver.d.ts +4 -12
- package/dist/types/components/immutableProof.d.ts +3 -7
- package/dist/types/components/logging.d.ts +4 -12
- package/dist/types/components/messaging.d.ts +7 -27
- package/dist/types/components/nft.d.ts +4 -12
- package/dist/types/components/rightsManagementPap.d.ts +3 -7
- package/dist/types/components/rightsManagementPdp.d.ts +3 -7
- package/dist/types/components/rightsManagementPep.d.ts +3 -7
- package/dist/types/components/rightsManagementPip.d.ts +3 -7
- package/dist/types/components/rightsManagementPmp.d.ts +3 -7
- package/dist/types/components/rightsManagementPnap.d.ts +3 -7
- package/dist/types/components/rightsManagementPnp.d.ts +3 -7
- package/dist/types/components/rightsManagementPolicyArbiter.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyEnforcementProcessor.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyExecutionAction.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyInformationSource.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyNegotiator.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyObligationEnforcer.d.ts +12 -0
- package/dist/types/components/rightsManagementPolicyRequester.d.ts +12 -0
- package/dist/types/components/rightsManagementPxp.d.ts +3 -7
- package/dist/types/components/synchronisedStorage.d.ts +3 -7
- package/dist/types/components/taskScheduler.d.ts +3 -7
- package/dist/types/components/telemetry.d.ts +4 -12
- package/dist/types/components/tenant.d.ts +3 -7
- package/dist/types/components/trust.d.ts +12 -0
- package/dist/types/components/trustGenerator.d.ts +12 -0
- package/dist/types/components/trustVerifier.d.ts +12 -0
- package/dist/types/components/vault.d.ts +2 -7
- package/dist/types/components/verifiableStorage.d.ts +4 -12
- package/dist/types/components/wallet.d.ts +2 -7
- package/dist/types/index.d.ts +38 -11
- package/dist/types/models/IEngineConfig.d.ts +57 -12
- package/dist/types/models/config/backgroundTaskComponentConfig.d.ts +9 -0
- package/dist/types/models/config/blobStorageConnectorConfig.d.ts +4 -1
- package/dist/types/models/config/contextIdHandlerComponentConfig.d.ts +11 -0
- package/dist/types/models/config/federatedCatalogueFilterComponentConfig.d.ts +9 -0
- package/dist/types/models/config/rightsManagementPdpComponentConfig.d.ts +1 -4
- package/dist/types/models/config/rightsManagementPepComponentConfig.d.ts +1 -4
- package/dist/types/models/config/rightsManagementPipComponentConfig.d.ts +1 -4
- package/dist/types/models/config/rightsManagementPnpComponentConfig.d.ts +1 -5
- package/dist/types/models/config/rightsManagementPolicyArbiterComponentConfig.d.ts +12 -0
- package/dist/types/models/config/rightsManagementPolicyEnforcementProcessorComponentConfig.d.ts +12 -0
- package/dist/types/models/config/rightsManagementPolicyExecutionActionComponentConfig.d.ts +9 -0
- package/dist/types/models/config/rightsManagementPolicyInformationSourceComponentConfig.d.ts +12 -0
- package/dist/types/models/config/rightsManagementPolicyNegotiatorComponentConfig.d.ts +9 -0
- package/dist/types/models/config/rightsManagementPolicyObligationEnforcerComponentConfig.d.ts +9 -0
- package/dist/types/models/config/rightsManagementPolicyRequesterComponentConfig.d.ts +9 -0
- package/dist/types/models/config/rightsManagementPxpComponentConfig.d.ts +1 -4
- package/dist/types/models/config/trustComponentConfig.d.ts +9 -0
- package/dist/types/models/config/trustGeneratorComponentConfig.d.ts +9 -0
- package/dist/types/models/config/trustVerifierComponentConfig.d.ts +9 -0
- package/dist/types/models/types/backgroundTaskComponentType.d.ts +13 -0
- package/dist/types/models/types/contextIdHandlerComponentType.d.ts +17 -0
- package/dist/types/models/types/federatedCatalogueFilterComponentType.d.ts +13 -0
- package/dist/types/models/types/rightsManagementPolicyArbiterComponentType.d.ts +17 -0
- package/dist/types/models/types/rightsManagementPolicyEnforcementProcessorComponentType.d.ts +17 -0
- package/dist/types/models/types/rightsManagementPolicyExecutionActionComponentType.d.ts +13 -0
- package/dist/types/models/types/rightsManagementPolicyInformationSourceComponentType.d.ts +17 -0
- package/dist/types/models/types/rightsManagementPolicyNegotiatorComponentType.d.ts +13 -0
- package/dist/types/models/types/rightsManagementPolicyObligationEnforcerComponentType.d.ts +13 -0
- package/dist/types/models/types/rightsManagementPolicyRequesterComponentType.d.ts +13 -0
- package/dist/types/models/types/trustComponentType.d.ts +13 -0
- package/dist/types/models/types/trustGeneratorComponentType.d.ts +13 -0
- package/dist/types/models/types/trustVerifierComponentType.d.ts +13 -0
- package/dist/types/utils/engineTypeHelper.d.ts +11 -0
- package/docs/changelog.md +330 -0
- package/docs/reference/classes/EngineTypeHelper.md +53 -0
- package/docs/reference/functions/initialiseAttestationComponent.md +2 -2
- package/docs/reference/functions/initialiseAttestationConnector.md +3 -3
- package/docs/reference/functions/initialiseAuditableItemGraphComponent.md +2 -2
- package/docs/reference/functions/initialiseAuditableItemStreamComponent.md +2 -2
- package/docs/reference/functions/initialiseBackgroundTaskComponent.md +31 -0
- package/docs/reference/functions/initialiseBlobStorageComponent.md +2 -2
- package/docs/reference/functions/initialiseBlobStorageConnector.md +2 -2
- package/docs/reference/functions/initialiseContextIdHandlerComponent.md +31 -0
- package/docs/reference/functions/initialiseDataConverterConnector.md +2 -2
- package/docs/reference/functions/initialiseDataExtractorConnector.md +2 -2
- package/docs/reference/functions/initialiseDataProcessingComponent.md +2 -2
- package/docs/reference/functions/initialiseDataSpaceConnectorComponent.md +2 -2
- package/docs/reference/functions/initialiseDocumentManagementComponent.md +2 -2
- package/docs/reference/functions/initialiseEntityStorageComponent.md +2 -2
- package/docs/reference/functions/initialiseEventBusComponent.md +2 -2
- package/docs/reference/functions/initialiseEventBusConnector.md +2 -2
- package/docs/reference/functions/initialiseFaucetConnector.md +2 -2
- package/docs/reference/functions/initialiseFederatedCatalogueComponent.md +2 -2
- package/docs/reference/functions/initialiseFederatedCatalogueFilterComponent.md +31 -0
- package/docs/reference/functions/initialiseIdentityComponent.md +2 -2
- package/docs/reference/functions/initialiseIdentityConnector.md +2 -2
- package/docs/reference/functions/initialiseIdentityProfileComponent.md +2 -2
- package/docs/reference/functions/initialiseIdentityProfileConnector.md +2 -2
- package/docs/reference/functions/initialiseIdentityResolverComponent.md +2 -2
- package/docs/reference/functions/initialiseIdentityResolverConnector.md +2 -2
- package/docs/reference/functions/initialiseImmutableProofComponent.md +2 -2
- package/docs/reference/functions/initialiseLoggingComponent.md +2 -2
- package/docs/reference/functions/initialiseLoggingConnector.md +2 -2
- package/docs/reference/functions/initialiseMessagingAdminComponent.md +2 -2
- package/docs/reference/functions/initialiseMessagingComponent.md +2 -2
- package/docs/reference/functions/initialiseMessagingEmailConnector.md +2 -2
- package/docs/reference/functions/initialiseMessagingPushNotificationConnector.md +2 -2
- package/docs/reference/functions/initialiseMessagingSmsConnector.md +2 -2
- package/docs/reference/functions/initialiseNftComponent.md +2 -2
- package/docs/reference/functions/initialiseNftConnector.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPapComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPdpComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPepComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPipComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPmpComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPnapComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPnpComponent.md +2 -2
- package/docs/reference/functions/initialiseRightsManagementPolicyArbiterComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyEnforcementProcessorComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyExecutionActionComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyInformationSourceComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyNegotiatorComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyObligationEnforcerComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPolicyRequesterComponent.md +31 -0
- package/docs/reference/functions/initialiseRightsManagementPxpComponent.md +2 -2
- package/docs/reference/functions/initialiseSynchronisedStorageComponent.md +2 -2
- package/docs/reference/functions/initialiseTaskSchedulerComponent.md +2 -2
- package/docs/reference/functions/initialiseTelemetryComponent.md +2 -2
- package/docs/reference/functions/initialiseTelemetryConnector.md +2 -2
- package/docs/reference/functions/initialiseTenantAdminComponent.md +2 -2
- package/docs/reference/functions/initialiseTrustComponent.md +31 -0
- package/docs/reference/functions/initialiseTrustGeneratorComponent.md +31 -0
- package/docs/reference/functions/initialiseTrustVerifierComponent.md +31 -0
- package/docs/reference/functions/initialiseVaultConnector.md +2 -2
- package/docs/reference/functions/initialiseVerifiableStorageComponent.md +2 -2
- package/docs/reference/functions/initialiseVerifiableStorageConnector.md +2 -2
- package/docs/reference/functions/initialiseWalletConnector.md +2 -2
- package/docs/reference/index.md +52 -16
- package/docs/reference/interfaces/IEngineConfig.md +66 -12
- package/docs/reference/type-aliases/BackgroundTaskComponentConfig.md +17 -0
- package/docs/reference/type-aliases/BackgroundTaskComponentType.md +5 -0
- package/docs/reference/type-aliases/BlobStorageConnectorConfig.md +1 -1
- package/docs/reference/type-aliases/ContextIdHandlerComponentConfig.md +5 -0
- package/docs/reference/type-aliases/ContextIdHandlerComponentType.md +5 -0
- package/docs/reference/type-aliases/FederatedCatalogueFilterComponentConfig.md +17 -0
- package/docs/reference/type-aliases/FederatedCatalogueFilterComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPdpComponentConfig.md +1 -7
- package/docs/reference/type-aliases/RightsManagementPepComponentConfig.md +1 -7
- package/docs/reference/type-aliases/RightsManagementPipComponentConfig.md +1 -7
- package/docs/reference/type-aliases/RightsManagementPnpComponentConfig.md +1 -1
- package/docs/reference/type-aliases/RightsManagementPolicyArbiterComponentConfig.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyArbiterComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyEnforcementProcessorComponentConfig.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyEnforcementProcessorComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyExecutionActionComponentConfig.md +17 -0
- package/docs/reference/type-aliases/RightsManagementPolicyExecutionActionComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyInformationSourceComponentConfig.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyInformationSourceComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyNegotiatorComponentConfig.md +17 -0
- package/docs/reference/type-aliases/RightsManagementPolicyNegotiatorComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentConfig.md +17 -0
- package/docs/reference/type-aliases/RightsManagementPolicyObligationEnforcerComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPolicyRequesterComponentConfig.md +17 -0
- package/docs/reference/type-aliases/RightsManagementPolicyRequesterComponentType.md +5 -0
- package/docs/reference/type-aliases/RightsManagementPxpComponentConfig.md +1 -7
- package/docs/reference/type-aliases/TrustComponentConfig.md +17 -0
- package/docs/reference/type-aliases/TrustComponentType.md +5 -0
- package/docs/reference/type-aliases/TrustGeneratorComponentConfig.md +17 -0
- package/docs/reference/type-aliases/TrustGeneratorComponentType.md +5 -0
- package/docs/reference/type-aliases/TrustVerifierComponentConfig.md +17 -0
- package/docs/reference/type-aliases/TrustVerifierComponentType.md +5 -0
- package/docs/reference/variables/BackgroundTaskComponentType.md +13 -0
- package/docs/reference/variables/ContextIdHandlerComponentType.md +19 -0
- package/docs/reference/variables/FederatedCatalogueFilterComponentType.md +13 -0
- package/docs/reference/variables/RightsManagementPolicyArbiterComponentType.md +19 -0
- package/docs/reference/variables/RightsManagementPolicyEnforcementProcessorComponentType.md +19 -0
- package/docs/reference/variables/RightsManagementPolicyExecutionActionComponentType.md +13 -0
- package/docs/reference/variables/RightsManagementPolicyInformationSourceComponentType.md +19 -0
- package/docs/reference/variables/RightsManagementPolicyNegotiatorComponentType.md +13 -0
- package/docs/reference/variables/RightsManagementPolicyObligationEnforcerComponentType.md +13 -0
- package/docs/reference/variables/RightsManagementPolicyRequesterComponentType.md +13 -0
- package/docs/reference/variables/TrustComponentType.md +13 -0
- package/docs/reference/variables/TrustGeneratorComponentType.md +13 -0
- package/docs/reference/variables/TrustVerifierComponentType.md +13 -0
- package/package.json +10 -5
- package/dist/es/components/authenticationGenerator.js +0 -30
- package/dist/es/components/authenticationGenerator.js.map +0 -1
- package/dist/es/components/rightsManagementDap.js +0 -38
- package/dist/es/components/rightsManagementDap.js.map +0 -1
- package/dist/es/components/rightsManagementDarp.js +0 -29
- package/dist/es/components/rightsManagementDarp.js.map +0 -1
- package/dist/es/models/config/authenticationGeneratorComponentConfig.js +0 -2
- package/dist/es/models/config/authenticationGeneratorComponentConfig.js.map +0 -1
- package/dist/es/models/config/backgroundTaskConnectorConfig.js +0 -2
- package/dist/es/models/config/backgroundTaskConnectorConfig.js.map +0 -1
- package/dist/es/models/config/rightsManagementDapComponentConfig.js +0 -2
- package/dist/es/models/config/rightsManagementDapComponentConfig.js.map +0 -1
- package/dist/es/models/config/rightsManagementDarpComponentConfig.js +0 -2
- package/dist/es/models/config/rightsManagementDarpComponentConfig.js.map +0 -1
- package/dist/es/models/types/authenticationGeneratorComponentType.js +0 -13
- package/dist/es/models/types/authenticationGeneratorComponentType.js.map +0 -1
- package/dist/es/models/types/backgroundTaskConnectorType.js +0 -13
- package/dist/es/models/types/backgroundTaskConnectorType.js.map +0 -1
- package/dist/es/models/types/rightsManagementDapComponentType.js +0 -17
- package/dist/es/models/types/rightsManagementDapComponentType.js.map +0 -1
- package/dist/es/models/types/rightsManagementDarpComponentType.js.map +0 -1
- package/dist/types/components/authenticationGenerator.d.ts +0 -17
- package/dist/types/components/rightsManagementDap.d.ts +0 -16
- package/dist/types/components/rightsManagementDarp.d.ts +0 -16
- package/dist/types/models/config/authenticationGeneratorComponentConfig.d.ts +0 -9
- package/dist/types/models/config/backgroundTaskConnectorConfig.d.ts +0 -9
- package/dist/types/models/config/rightsManagementDapComponentConfig.d.ts +0 -16
- package/dist/types/models/config/rightsManagementDarpComponentConfig.d.ts +0 -12
- package/dist/types/models/types/authenticationGeneratorComponentType.d.ts +0 -13
- package/dist/types/models/types/backgroundTaskConnectorType.d.ts +0 -13
- package/dist/types/models/types/rightsManagementDapComponentType.d.ts +0 -17
- package/dist/types/models/types/rightsManagementDarpComponentType.d.ts +0 -13
- package/docs/reference/functions/initialiseAuthenticationGeneratorComponent.md +0 -31
- package/docs/reference/functions/initialiseBackgroundTaskConnector.md +0 -31
- package/docs/reference/functions/initialiseRightsManagementDapComponent.md +0 -31
- package/docs/reference/functions/initialiseRightsManagementDarpComponent.md +0 -31
- package/docs/reference/type-aliases/AuthenticationGeneratorComponentConfig.md +0 -17
- package/docs/reference/type-aliases/AuthenticationGeneratorComponentType.md +0 -5
- package/docs/reference/type-aliases/BackgroundTaskConnectorConfig.md +0 -17
- package/docs/reference/type-aliases/BackgroundTaskConnectorType.md +0 -5
- package/docs/reference/type-aliases/RightsManagementDapComponentConfig.md +0 -5
- package/docs/reference/type-aliases/RightsManagementDapComponentType.md +0 -5
- package/docs/reference/type-aliases/RightsManagementDarpComponentConfig.md +0 -23
- package/docs/reference/type-aliases/RightsManagementDarpComponentType.md +0 -5
- package/docs/reference/variables/AuthenticationGeneratorComponentType.md +0 -13
- package/docs/reference/variables/BackgroundTaskConnectorType.md +0 -13
- package/docs/reference/variables/RightsManagementDapComponentType.md +0 -19
- package/docs/reference/variables/RightsManagementDarpComponentType.md +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobStorage.js","sourceRoot":"","sources":["../../../src/components/blobStorage.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EACN,2BAA2B,EAG3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EACN,kBAAkB,EAClB,UAAU,IAAI,qBAAqB,EAEnC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAmB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAItE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAM1C,IAAI,SAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAC3D,SAAS,GAAG,IAAI,wBAAwB,CAAC;YACxC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;YACF,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC;IACnD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAClE,SAAS,GAAG,IAAI,wBAAwB,CAAC;YACxC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;YACF,GAAG,cAAc,CAAC,OAAO;YACzB,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM;gBAChC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC9D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC;oBAC1F,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS;aAC1C;SACD,CAAC,CAAC;QACH,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC;IACnD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpE,SAAS,GAAG,IAAI,0BAA0B,CAAC;YAC1C,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;SACF,CAAC,CAAC;QACH,YAAY,GAAG,0BAA0B,CAAC,SAAS,CAAC;IACrD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACnE,SAAS,GAAG,IAAI,sBAAsB,CAAC;YACtC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;YACF,GAAG,cAAc,CAAC,OAAO;YACzB,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM;gBAChC,UAAU,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;aACtG;SACD,CAAC,CAAC;QACH,YAAY,GAAG,sBAAsB,CAAC,SAAS,CAAC;IACjD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,SAAS,GAAG,IAAI,uBAAuB,CAAC;YACvC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;YACF,GAAG,cAAc,CAAC,OAAO;YACzB,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM;gBAChC,UAAU,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;aACtG;SACD,CAAC,CAAC;QACH,YAAY,GAAG,uBAAuB,CAAC,SAAS,CAAC;IAClD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,YAAY,EAAE,CAAC;QAC1E,SAAS,GAAG,IAAI,yBAAyB,CAAC;YACzC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACzF,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC;YACF,GAAG,cAAc,CAAC,OAAO;YACzB,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM;gBAChC,aAAa,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE;aAC5G;SACD,CAAC,CAAC;QACH,YAAY,GAAG,yBAAyB,CAAC,SAAS,CAAC;IACpD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,2BAA2B;KACpC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,UAAsC,EACtC,OAA0C,EAC1C,cAA0C;IAM1C,IAAI,SAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC9D,qBAAqB,EAAE,CAAC;QACxB,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,sBAAsB,sBAE9C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,kBAAkB,CAAC;YAClC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YAC1E,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,yBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,SAAS,GAAG,IAAI,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9D,YAAY,6BAAyC,CAAC;IACvD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport 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
|
|
22
|
-
let
|
|
23
|
-
let
|
|
22
|
+
export function initialiseDataConverterConnector(engineCore, context, instanceConfig) {
|
|
23
|
+
let createComponent;
|
|
24
|
+
let instanceTypeName;
|
|
24
25
|
if (instanceConfig.type === DataConverterConnectorType.Json) {
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
createComponent = (createConfig) => new JsonConverterConnector();
|
|
27
|
+
instanceTypeName = JsonConverterConnector.NAMESPACE;
|
|
27
28
|
}
|
|
28
29
|
else if (instanceConfig.type === DataConverterConnectorType.Xml) {
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
createComponent = (createConfig) => new XmlConverterConnector();
|
|
31
|
+
instanceTypeName = XmlConverterConnector.NAMESPACE;
|
|
31
32
|
}
|
|
32
33
|
return {
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
46
|
-
let
|
|
47
|
-
let
|
|
46
|
+
export function initialiseDataExtractorConnector(engineCore, context, instanceConfig) {
|
|
47
|
+
let createComponent;
|
|
48
|
+
let instanceTypeName;
|
|
48
49
|
if (instanceConfig.type === DataExtractorConnectorType.JsonPath) {
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
createComponent = (createConfig) => new JsonPathExtractorConnector();
|
|
51
|
+
instanceTypeName = JsonPathExtractorConnector.NAMESPACE;
|
|
51
52
|
}
|
|
52
53
|
return {
|
|
53
|
-
|
|
54
|
-
|
|
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
|
|
66
|
-
let
|
|
67
|
-
let
|
|
66
|
+
export function initialiseDataProcessingComponent(engineCore, context, instanceConfig) {
|
|
67
|
+
let createComponent;
|
|
68
|
+
let instanceTypeName;
|
|
68
69
|
if (instanceConfig.type === DataProcessingComponentType.Service) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
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
|
-
|
|
81
|
-
|
|
81
|
+
createComponent = (createConfig) => new DataProcessingRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
82
|
+
instanceTypeName = "data-processing-rest-client";
|
|
82
83
|
}
|
|
83
84
|
return {
|
|
84
|
-
|
|
85
|
-
|
|
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":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EACN,6BAA6B,EAC7B,6BAA6B,
|
|
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
|
|
18
|
-
let
|
|
19
|
-
let
|
|
18
|
+
export function initialiseDataSpaceConnectorComponent(engineCore, context, instanceConfig) {
|
|
19
|
+
let createComponent;
|
|
20
|
+
let instanceTypeName;
|
|
20
21
|
if (instanceConfig.type === DataSpaceConnectorComponentType.Service) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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
|
-
|
|
41
|
-
loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent")
|
|
42
|
-
|
|
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
|
-
|
|
48
|
-
|
|
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;
|
|
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
|
|
15
|
-
let
|
|
16
|
-
let
|
|
15
|
+
export function initialiseDocumentManagementComponent(engineCore, context, instanceConfig) {
|
|
16
|
+
let createComponent;
|
|
17
|
+
let instanceTypeName;
|
|
17
18
|
if (instanceConfig.type === DocumentManagementComponentType.Service) {
|
|
18
|
-
|
|
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
|
-
|
|
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
|
-
|
|
29
|
-
|
|
28
|
+
createComponent = (createConfig) => new DocumentManagementRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
|
|
29
|
+
instanceTypeName = "document-management-rest-client";
|
|
30
30
|
}
|
|
31
31
|
return {
|
|
32
|
-
|
|
33
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
|
197
|
-
let
|
|
198
|
-
let
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
215
|
-
pathPrefix: kebabName
|
|
216
|
-
|
|
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
|
-
|
|
222
|
-
|
|
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"]}
|