@decaf-ts/integrations 0.3.10 → 0.3.12
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/integrations.cjs +1649 -2
- package/dist/integrations.js +1885 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +99 -0
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +22 -3
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +481 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +19 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +23 -6
- package/lib/cjs/graph/engine/execution/index.cjs +5 -2
- package/lib/cjs/graph/engine/index.cjs +5 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +100 -17
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +6 -6
- package/lib/cjs/namespaces/models/group-membership.model.cjs +8 -8
- package/lib/cjs/namespaces/models/group.model.cjs +8 -8
- package/lib/cjs/namespaces/models/index.cjs +22 -22
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +7 -7
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +7 -7
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +8 -8
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +4 -4
- package/lib/cjs/namespaces/models/org-unit.model.cjs +13 -13
- package/lib/cjs/namespaces/models/permission.model.cjs +4 -4
- package/lib/cjs/namespaces/models/principal.model.cjs +8 -8
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +10 -10
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +9 -9
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +8 -8
- package/lib/cjs/namespaces/models/role-permission.model.cjs +6 -6
- package/lib/cjs/namespaces/models/role.model.cjs +8 -8
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +4 -4
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +6 -6
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +4 -4
- package/lib/cjs/namespaces/models/tenant.model.cjs +10 -10
- package/lib/cjs/namespaces/models/user.model.cjs +6 -6
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +23 -23
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +26 -26
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +19 -19
- package/lib/cjs/namespaces/services/group-membership.service.cjs +6 -6
- package/lib/cjs/namespaces/services/group.service.cjs +4 -4
- package/lib/cjs/namespaces/services/index.cjs +26 -26
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +4 -4
- package/lib/cjs/namespaces/services/org-unit.service.cjs +13 -13
- package/lib/cjs/namespaces/services/permission.service.cjs +4 -4
- package/lib/cjs/namespaces/services/principal.service.cjs +4 -4
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +4 -4
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +4 -4
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +7 -7
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -4
- package/lib/cjs/namespaces/services/role-permission.service.cjs +8 -8
- package/lib/cjs/namespaces/services/role.service.cjs +4 -4
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +4 -4
- package/lib/cjs/namespaces/services/system-management.service.cjs +14 -14
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +4 -4
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +4 -4
- package/lib/cjs/namespaces/services/tenant.service.cjs +4 -4
- package/lib/cjs/namespaces/services/user.service.cjs +4 -4
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/authService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +41 -52
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +47 -42
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -20
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +21 -48
- package/lib/cjs/nest/graph/GraphResultService.cjs +54 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +44 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +62 -0
- package/lib/cjs/nest/graph/index.cjs +5 -8
- package/lib/cjs/nest/graph/main.cjs +3 -3
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +94 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +21 -2
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +440 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +14 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +22 -5
- package/lib/esm/graph/engine/execution/index.js +4 -1
- package/lib/esm/graph/engine/index.js +4 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js +99 -16
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +3 -3
- package/lib/esm/namespaces/models/group-membership.model.js +4 -4
- package/lib/esm/namespaces/models/group.model.js +4 -4
- package/lib/esm/namespaces/models/index.js +21 -21
- package/lib/esm/namespaces/models/inheritance-block.model.js +3 -3
- package/lib/esm/namespaces/models/org-unit-closure.model.js +3 -3
- package/lib/esm/namespaces/models/org-unit-membership.model.js +4 -4
- package/lib/esm/namespaces/models/org-unit-profile.model.js +2 -2
- package/lib/esm/namespaces/models/org-unit.model.js +6 -6
- package/lib/esm/namespaces/models/permission.model.js +2 -2
- package/lib/esm/namespaces/models/principal.model.js +4 -4
- package/lib/esm/namespaces/models/protected-resource.model.js +5 -5
- package/lib/esm/namespaces/models/resource-grant.model.js +4 -4
- package/lib/esm/namespaces/models/role-assignment.model.js +4 -4
- package/lib/esm/namespaces/models/role-permission.model.js +3 -3
- package/lib/esm/namespaces/models/role.model.js +4 -4
- package/lib/esm/namespaces/models/storage-binding.model.js +2 -2
- package/lib/esm/namespaces/models/tenant-membership.model.js +3 -3
- package/lib/esm/namespaces/models/tenant-profile.model.js +2 -2
- package/lib/esm/namespaces/models/tenant.model.js +5 -5
- package/lib/esm/namespaces/models/user.model.js +3 -3
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +2 -2
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +13 -13
- package/lib/esm/namespaces/services/effective-permission.service.js +9 -9
- package/lib/esm/namespaces/services/group-membership.service.js +3 -3
- package/lib/esm/namespaces/services/group.service.js +2 -2
- package/lib/esm/namespaces/services/index.js +25 -25
- package/lib/esm/namespaces/services/inheritance-block.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-closure.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-membership.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit-profile.service.js +2 -2
- package/lib/esm/namespaces/services/org-unit.service.js +4 -4
- package/lib/esm/namespaces/services/permission.service.js +2 -2
- package/lib/esm/namespaces/services/principal.service.js +2 -2
- package/lib/esm/namespaces/services/protected-resource.service.js +2 -2
- package/lib/esm/namespaces/services/resource-grant.service.js +2 -2
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +3 -3
- package/lib/esm/namespaces/services/role-assignment.service.js +2 -2
- package/lib/esm/namespaces/services/role-permission.service.js +4 -4
- package/lib/esm/namespaces/services/role.service.js +2 -2
- package/lib/esm/namespaces/services/storage-binding.service.js +2 -2
- package/lib/esm/namespaces/services/system-management.service.js +7 -7
- package/lib/esm/namespaces/services/tenant-membership.service.js +2 -2
- package/lib/esm/namespaces/services/tenant-profile.service.js +2 -2
- package/lib/esm/namespaces/services/tenant.service.js +2 -2
- package/lib/esm/namespaces/services/user.service.js +2 -2
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/authService.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js +40 -51
- package/lib/esm/nest/graph/GraphExecutionModule.js +12 -40
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -19
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +21 -48
- package/lib/esm/nest/graph/GraphResultService.js +45 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +35 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +53 -0
- package/lib/esm/nest/graph/index.js +4 -7
- package/lib/esm/nest/graph/main.js +2 -2
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.cts +65 -0
- package/lib/types/graph/engine/execution/CodeGraphNodeExecutor.d.mts +65 -0
- package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.cts +23 -0
- package/lib/types/graph/engine/execution/CodeSandboxEvaluator.d.mts +23 -0
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.cts +6 -0
- package/lib/types/graph/engine/execution/GraphExecutionEngine.d.mts +6 -0
- package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.cts +63 -0
- package/lib/types/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.d.mts +63 -0
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.cts +19 -0
- package/lib/types/graph/engine/execution/LogGraphNodeExecutor.d.mts +19 -0
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.cts +3 -2
- package/lib/types/graph/engine/execution/SwitchGraphNodeExecutor.d.mts +3 -2
- package/lib/types/graph/engine/execution/index.d.cts +3 -0
- package/lib/types/graph/engine/execution/index.d.mts +3 -0
- package/lib/types/graph/engine/index.d.cts +3 -0
- package/lib/types/graph/engine/index.d.mts +3 -0
- package/lib/types/graph/shared/nodes/flow-control.d.cts +36 -9
- package/lib/types/graph/shared/nodes/flow-control.d.mts +36 -9
- package/lib/types/graph/shared/types.d.cts +6 -0
- package/lib/types/graph/shared/types.d.mts +6 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/nest/graph/GraphExecutionController.d.cts +11 -42
- package/lib/types/nest/graph/GraphExecutionController.d.mts +11 -42
- package/lib/types/nest/graph/GraphExecutionModule.d.cts +9 -29
- package/lib/types/nest/graph/GraphExecutionModule.d.mts +9 -29
- package/lib/types/nest/graph/GraphExecutionResultModel.d.cts +0 -34
- package/lib/types/nest/graph/GraphExecutionResultModel.d.mts +0 -34
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +16 -9
- package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +16 -9
- package/lib/types/nest/graph/GraphResultService.d.cts +8 -0
- package/lib/types/nest/graph/GraphResultService.d.mts +8 -0
- package/lib/types/nest/graph/GraphWorkflowModel.d.cts +7 -0
- package/lib/types/nest/graph/GraphWorkflowModel.d.mts +7 -0
- package/lib/types/nest/graph/GraphWorkflowService.d.cts +7 -0
- package/lib/types/nest/graph/GraphWorkflowService.d.mts +7 -0
- package/lib/types/nest/graph/index.d.cts +3 -6
- package/lib/types/nest/graph/index.d.mts +3 -6
- package/package.json +5 -1
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/constants.cjs.map +0 -1
- package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/types.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/constants.cjs.map +0 -1
- package/lib/cjs/graph/shared/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
- package/lib/cjs/graph/shared/types.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/authService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +0 -66
- package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
- package/lib/cjs/nest/graph/index.cjs.map +0 -1
- package/lib/cjs/nest/graph/main.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/graph/engine/constants.js.map +0 -1
- package/lib/esm/graph/engine/decorators.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/engine/errors/index.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/engine/events/index.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/index.js.map +0 -1
- package/lib/esm/graph/engine/index.js.map +0 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/index.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/engine/pinning/index.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/engine/planning/index.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/engine/registry/index.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/index.js.map +0 -1
- package/lib/esm/graph/engine/types.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/shared/constants.js.map +0 -1
- package/lib/esm/graph/shared/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
- package/lib/esm/graph/shared/nodes/base.js.map +0 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
- package/lib/esm/graph/shared/nodes/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
- package/lib/esm/graph/shared/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/authService.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionResultRepository.js +0 -60
- package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
- package/lib/esm/nest/graph/index.js.map +0 -1
- package/lib/esm/nest/graph/main.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/types/nest/graph/GraphExecutionResultRepository.d.cts +0 -38
- package/lib/types/nest/graph/GraphExecutionResultRepository.d.mts +0 -38
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/graph/execution/IsolatedVmCodeSandboxEvaluator
|
|
3
|
+
* @summary {@link CodeSandboxEvaluator} backed by `isolated-vm` (ALFRED-5 §7).
|
|
4
|
+
* @description Provides a fully isolated V8 sandbox for the Code Node
|
|
5
|
+
* (DECAF-32 §22.4) and code-based conditions. Uses `isolated-vm` for true
|
|
6
|
+
* heap isolation (unlike Node's `vm` module which shares the host heap),
|
|
7
|
+
* `acorn` + `acorn-walk` for AST-based static validation, and `typescript`
|
|
8
|
+
* for TS transpilation.
|
|
9
|
+
*
|
|
10
|
+
* Restrictions enforced (ALFRED-5 §7.10–7.12, DECAF-34 §7.5):
|
|
11
|
+
*
|
|
12
|
+
* - **No imports** — `import` declarations are rejected by AST validation.
|
|
13
|
+
* - **No requires** — `require` is in the blocked-identifier set and is not
|
|
14
|
+
* exposed in the sandbox context.
|
|
15
|
+
* - **No exports** — `export` declarations are rejected by AST validation.
|
|
16
|
+
* - **Pure functions only** — no system API access. Blocked identifiers
|
|
17
|
+
* include `process`, `global`, `globalThis`, `Function`, `eval`, `fetch`,
|
|
18
|
+
* `XMLHttpRequest`, `WebSocket`, `Worker`, `Deno`, `Bun`, `module`,
|
|
19
|
+
* `exports`. The sandbox context exposes only the data variables
|
|
20
|
+
* (`$input`, `$vars`, `$item`, `$index`, `$node`, `$output`).
|
|
21
|
+
* - **No `eval()` / `new Function()`** — rejected by AST validation.
|
|
22
|
+
*
|
|
23
|
+
* The user code is transpiled (TS → JS) if needed, statically validated,
|
|
24
|
+
* wrapped in a strict-mode async function that receives the data variables as
|
|
25
|
+
* parameters, compiled in an isolated V8 instance, and executed with a
|
|
26
|
+
* timeout and memory limit. The result is copied back to the host heap.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const evaluator = new IsolatedVmCodeSandboxEvaluator();
|
|
31
|
+
* const result = await evaluator.evaluate({
|
|
32
|
+
* code: "return $input.a + $input.b;",
|
|
33
|
+
* input: { a: 2, b: 3 },
|
|
34
|
+
* });
|
|
35
|
+
* // result === 5
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
import ivm from "isolated-vm";
|
|
39
|
+
import * as acorn from "acorn";
|
|
40
|
+
import * as walk from "acorn-walk";
|
|
41
|
+
import * as ts from "typescript";
|
|
42
|
+
import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
|
|
43
|
+
/**
|
|
44
|
+
* Default sandbox execution timeout in milliseconds.
|
|
45
|
+
*/
|
|
46
|
+
const DEFAULT_TIMEOUT_MS = 1000;
|
|
47
|
+
/**
|
|
48
|
+
* Default memory limit for the isolated V8 heap in MB.
|
|
49
|
+
*/
|
|
50
|
+
const DEFAULT_MEMORY_MB = 32;
|
|
51
|
+
/**
|
|
52
|
+
* Maximum code length (characters) accepted by the evaluator.
|
|
53
|
+
*/
|
|
54
|
+
const MAX_CODE_LENGTH = 100_000;
|
|
55
|
+
/**
|
|
56
|
+
* Identifiers that are forbidden in sandboxed code (ALFRED-5 §7.10).
|
|
57
|
+
*
|
|
58
|
+
* Any AST node of type `Identifier` whose `name` is in this set causes the
|
|
59
|
+
* validator to reject the code. This covers both free-standing references
|
|
60
|
+
* (`process.env`) and call targets (`require(...)`).
|
|
61
|
+
*/
|
|
62
|
+
const BLOCKED_IDENTIFIERS = new Set([
|
|
63
|
+
"process",
|
|
64
|
+
"require",
|
|
65
|
+
"module",
|
|
66
|
+
"exports",
|
|
67
|
+
"global",
|
|
68
|
+
"globalThis",
|
|
69
|
+
"Function",
|
|
70
|
+
"eval",
|
|
71
|
+
"fetch",
|
|
72
|
+
"XMLHttpRequest",
|
|
73
|
+
"WebSocket",
|
|
74
|
+
"Worker",
|
|
75
|
+
"Deno",
|
|
76
|
+
"Bun",
|
|
77
|
+
"__dispatch",
|
|
78
|
+
]);
|
|
79
|
+
/**
|
|
80
|
+
* Transpiles TypeScript code to JavaScript (ALFRED-5 §7.4).
|
|
81
|
+
*
|
|
82
|
+
* When the language is `'javascript'` the code is returned unchanged. For
|
|
83
|
+
* `'typescript'` the code is transpiled using the TypeScript compiler with
|
|
84
|
+
* module kind `None` (no import/export emitted) and target `ES2022`.
|
|
85
|
+
*
|
|
86
|
+
* @param code - The user-authored code.
|
|
87
|
+
* @param language - The code language (`'javascript'` or `'typescript'`).
|
|
88
|
+
* @returns Transpiled JavaScript code.
|
|
89
|
+
*/
|
|
90
|
+
function transpileTypeScript(code, language) {
|
|
91
|
+
if (language === "javascript")
|
|
92
|
+
return code;
|
|
93
|
+
const result = ts.transpileModule(code, {
|
|
94
|
+
compilerOptions: {
|
|
95
|
+
target: ts.ScriptTarget.ES2022,
|
|
96
|
+
module: ts.ModuleKind.None,
|
|
97
|
+
strict: true,
|
|
98
|
+
noEmitHelpers: true,
|
|
99
|
+
importHelpers: false,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
// Strip the "use strict"; directive that ts.transpileModule adds — the
|
|
103
|
+
// sandbox wrapper already enforces strict mode, and the directive breaks
|
|
104
|
+
// expression-mode wrapping (return (...)).
|
|
105
|
+
return result.outputText.replace(/^"use strict";\s*/, "");
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Statically validates user code using an AST walk (ALFRED-5 §7.11).
|
|
109
|
+
*
|
|
110
|
+
* Rejects:
|
|
111
|
+
* - `ImportDeclaration` — no imports allowed.
|
|
112
|
+
* - `ExportNamedDeclaration` / `ExportDefaultDeclaration` — no exports.
|
|
113
|
+
* - `Identifier` whose name is in {@link BLOCKED_IDENTIFIERS}.
|
|
114
|
+
* - `NewExpression` with callee `Function` — no `new Function()`.
|
|
115
|
+
* - `CallExpression` with callee `eval` — no `eval()`.
|
|
116
|
+
*
|
|
117
|
+
* @param code - JavaScript code to validate (after TS transpilation).
|
|
118
|
+
* @throws {GraphExecutionError} when a forbidden construct is found.
|
|
119
|
+
*/
|
|
120
|
+
function validateSafeCode(code) {
|
|
121
|
+
if (code.length > MAX_CODE_LENGTH) {
|
|
122
|
+
throw new GraphExecutionError(`Code exceeds the maximum length of ${MAX_CODE_LENGTH} characters`, "GRAPH_CODE_SANDBOX_CODE_TOO_LONG", { length: code.length });
|
|
123
|
+
}
|
|
124
|
+
let ast;
|
|
125
|
+
try {
|
|
126
|
+
// First, try parsing the code wrapped in a function with sourceType
|
|
127
|
+
// "script". This handles `return` statements (which are valid inside a
|
|
128
|
+
// function) and lets us detect blocked identifiers, eval(), and
|
|
129
|
+
// new Function() via the AST walk.
|
|
130
|
+
ast = acorn.parse(`async function __validate() {\n${code}\n}`, {
|
|
131
|
+
ecmaVersion: "latest",
|
|
132
|
+
sourceType: "script",
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// If the function-wrapped parse fails (e.g. because the code has
|
|
137
|
+
// top-level `import` or `export` declarations which are invalid inside
|
|
138
|
+
// a function), try parsing the raw code with sourceType "module" so
|
|
139
|
+
// import/export declarations are recognised as AST nodes.
|
|
140
|
+
try {
|
|
141
|
+
ast = acorn.parse(code, {
|
|
142
|
+
ecmaVersion: "latest",
|
|
143
|
+
sourceType: "module",
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
throw new GraphExecutionError(`Code failed to parse: ${err.message}`, "GRAPH_CODE_SANDBOX_PARSE_ERROR", { code, error: err.message });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
walk.full(ast, (node) => {
|
|
151
|
+
const n = node;
|
|
152
|
+
if (n["type"] === "ImportDeclaration") {
|
|
153
|
+
throw new GraphExecutionError("Imports are not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "import" });
|
|
154
|
+
}
|
|
155
|
+
if (n["type"] === "ExportNamedDeclaration" ||
|
|
156
|
+
n["type"] === "ExportDefaultDeclaration") {
|
|
157
|
+
throw new GraphExecutionError("Exports are not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "export" });
|
|
158
|
+
}
|
|
159
|
+
if (n["type"] === "Identifier" &&
|
|
160
|
+
typeof n["name"] === "string" &&
|
|
161
|
+
BLOCKED_IDENTIFIERS.has(n["name"])) {
|
|
162
|
+
throw new GraphExecutionError(`Identifier "${n["name"]}" is not allowed in Code nodes.`, "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: n["name"] });
|
|
163
|
+
}
|
|
164
|
+
if (n["type"] === "NewExpression" &&
|
|
165
|
+
n["callee"]?.["name"] === "Function") {
|
|
166
|
+
throw new GraphExecutionError("new Function() is not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "Function" });
|
|
167
|
+
}
|
|
168
|
+
if (n["type"] === "CallExpression" &&
|
|
169
|
+
n["callee"]?.["name"] === "eval") {
|
|
170
|
+
throw new GraphExecutionError("eval() is not allowed in Code nodes.", "GRAPH_CODE_SANDBOX_FORBIDDEN_TOKEN", { token: "eval" });
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Determines whether the given code contains a top-level `return` statement.
|
|
176
|
+
*
|
|
177
|
+
* When the code has no `return`, it is treated as a single expression and
|
|
178
|
+
* wrapped in `return (...)` so the user can write `($input.a + $input.b)`
|
|
179
|
+
* instead of `return $input.a + $input.b`.
|
|
180
|
+
*/
|
|
181
|
+
function hasReturnStatement(code) {
|
|
182
|
+
return /\breturn\b[\s;]/.test(code);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* `isolated-vm`-backed {@link CodeSandboxEvaluator} (ALFRED-5 §7.18).
|
|
186
|
+
*
|
|
187
|
+
* This evaluator provides a truly isolated V8 sandbox — the code runs in a
|
|
188
|
+
* separate isolate with its own heap, separate from the host process. The
|
|
189
|
+
* sandbox context exposes only the data variables (`$input`, `$vars`, `$item`,
|
|
190
|
+
* `$index`, `$node`, `$output`); no host globals are available.
|
|
191
|
+
*
|
|
192
|
+
* Execution pipeline:
|
|
193
|
+
* 1. **Transpile** — TypeScript code is transpiled to JavaScript via
|
|
194
|
+
* `typescript.transpileModule` (ALFRED-5 §7.4).
|
|
195
|
+
* 2. **Validate** — the JavaScript code is parsed with `acorn` and walked with
|
|
196
|
+
* `acorn-walk` to reject imports, exports, blocked identifiers, `eval()`,
|
|
197
|
+
* and `new Function()` (ALFRED-5 §7.11).
|
|
198
|
+
* 3. **Isolate** — a new `isolated-vm` `Isolate` is created with a memory
|
|
199
|
+
* limit. A context is created and the data variables are copied into the
|
|
200
|
+
* isolate's heap via `ExternalCopy`.
|
|
201
|
+
* 4. **Compile & run** — the wrapped code is compiled and executed with a
|
|
202
|
+
* timeout. The result is copied back to the host heap.
|
|
203
|
+
* 5. **Dispose** — the isolate is always disposed in a `finally` block.
|
|
204
|
+
*
|
|
205
|
+
* The user code is wrapped in a strict-mode async function:
|
|
206
|
+
*
|
|
207
|
+
* ```js
|
|
208
|
+
* "use strict";
|
|
209
|
+
* async function __userFunction($input, $vars, $item, $index, $node, $output) {
|
|
210
|
+
* <user code>
|
|
211
|
+
* }
|
|
212
|
+
* __userFunction($input, $vars, $item, $index, $node, $output);
|
|
213
|
+
* ```
|
|
214
|
+
*
|
|
215
|
+
* When the code has no `return` statement it is treated as a single expression
|
|
216
|
+
* and wrapped in `return (...)`.
|
|
217
|
+
*/
|
|
218
|
+
export class IsolatedVmCodeSandboxEvaluator {
|
|
219
|
+
/**
|
|
220
|
+
* @param defaultTimeoutMs - Default execution timeout in milliseconds.
|
|
221
|
+
* @param defaultMemoryMb - Default isolate memory limit in MB.
|
|
222
|
+
*/
|
|
223
|
+
constructor(defaultTimeoutMs = DEFAULT_TIMEOUT_MS, defaultMemoryMb = DEFAULT_MEMORY_MB) {
|
|
224
|
+
this.defaultTimeoutMs = defaultTimeoutMs;
|
|
225
|
+
this.defaultMemoryMb = defaultMemoryMb;
|
|
226
|
+
}
|
|
227
|
+
async evaluate(ctx) {
|
|
228
|
+
const code = ctx.code;
|
|
229
|
+
if (!code || typeof code !== "string" || code.trim().length === 0) {
|
|
230
|
+
throw new GraphExecutionError("Code sandbox received empty code", "GRAPH_CODE_SANDBOX_EMPTY_CODE");
|
|
231
|
+
}
|
|
232
|
+
const language = ctx.language ?? "javascript";
|
|
233
|
+
const jsCode = transpileTypeScript(code, language);
|
|
234
|
+
validateSafeCode(jsCode);
|
|
235
|
+
const expressionMode = !hasReturnStatement(jsCode);
|
|
236
|
+
const codeForMode = expressionMode
|
|
237
|
+
? jsCode.replace(/[\s;]+$/, "")
|
|
238
|
+
: jsCode;
|
|
239
|
+
const sandboxVars = {
|
|
240
|
+
$input: ctx.input ?? {},
|
|
241
|
+
$vars: ctx.vars ?? {},
|
|
242
|
+
$item: ctx.item,
|
|
243
|
+
$index: ctx.index,
|
|
244
|
+
$node: ctx.nodes ?? {},
|
|
245
|
+
$output: undefined,
|
|
246
|
+
};
|
|
247
|
+
const paramNames = Object.keys(sandboxVars);
|
|
248
|
+
// const paramValues = Object.values(sandboxVars);
|
|
249
|
+
// Build the wrapped script. The user code runs inside an async function
|
|
250
|
+
// with named parameters. The result is JSON-stringified inside the isolate
|
|
251
|
+
// so it can be transferred back as a plain string (isolated-vm cannot
|
|
252
|
+
// deep-copy arbitrary objects via `script.run()` with `promise: true`).
|
|
253
|
+
// The spec requires JSON-serializable output, so this is safe.
|
|
254
|
+
const userBody = expressionMode ? `return (${codeForMode});` : codeForMode;
|
|
255
|
+
const wrapped = `"use strict";\nasync function __userFunction(${paramNames.join(", ")}) {\n${userBody}\n}\n__userFunction(${paramNames.join(", ")}).then(function(__r) { return JSON.stringify({ v: __r }); });`;
|
|
256
|
+
const isolate = new ivm.Isolate({ memoryLimit: this.defaultMemoryMb });
|
|
257
|
+
const context = await isolate.createContext();
|
|
258
|
+
try {
|
|
259
|
+
const jail = context.global;
|
|
260
|
+
// Inject a `console` object into the isolate whose methods forward to
|
|
261
|
+
// the Context logger (bound to runId). The logger is called via
|
|
262
|
+
// `ivm.Reference` so the isolate can invoke host functions without
|
|
263
|
+
// leaking the host heap.
|
|
264
|
+
if (ctx.logger) {
|
|
265
|
+
await this.injectConsole(jail, ctx.logger, context);
|
|
266
|
+
}
|
|
267
|
+
for (const [name, value] of Object.entries(sandboxVars)) {
|
|
268
|
+
await jail.set(name, new ivm.ExternalCopy(value === undefined ? null : value).copyInto());
|
|
269
|
+
}
|
|
270
|
+
let script;
|
|
271
|
+
try {
|
|
272
|
+
script = await isolate.compileScript(wrapped, {
|
|
273
|
+
filename: "graph-code-node.js",
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
if (expressionMode) {
|
|
278
|
+
const fallbackBody = codeForMode;
|
|
279
|
+
const fallbackWrapped = `"use strict";\nasync function __userFunction(${paramNames.join(", ")}) {\n${fallbackBody}\n}\n__userFunction(${paramNames.join(", ")}).then(function(__r) { return JSON.stringify({ v: __r }); });`;
|
|
280
|
+
try {
|
|
281
|
+
script = await isolate.compileScript(fallbackWrapped, {
|
|
282
|
+
filename: "graph-code-node.js",
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
catch (fallbackErr) {
|
|
286
|
+
throw new GraphExecutionError(`Code failed to compile: ${fallbackErr.message}`, "GRAPH_CODE_SANDBOX_COMPILE_ERROR", { code: jsCode, error: fallbackErr.message });
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
throw new GraphExecutionError(`Code failed to compile: ${err.message}`, "GRAPH_CODE_SANDBOX_COMPILE_ERROR", { code: jsCode, error: err.message });
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
let rawResult;
|
|
294
|
+
try {
|
|
295
|
+
rawResult = await script.run(context, {
|
|
296
|
+
timeout: this.defaultTimeoutMs,
|
|
297
|
+
promise: true,
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
catch (err) {
|
|
301
|
+
const msg = err.message;
|
|
302
|
+
if (msg.includes("timed out") || msg.includes("timeout")) {
|
|
303
|
+
throw new GraphExecutionError(`Code execution timed out after ${this.defaultTimeoutMs} ms`, "GRAPH_CODE_SANDBOX_TIMEOUT", { timeoutMs: this.defaultTimeoutMs });
|
|
304
|
+
}
|
|
305
|
+
if (msg.includes("memory") || msg.includes("heap")) {
|
|
306
|
+
throw new GraphExecutionError(`Code exceeded the memory limit of ${this.defaultMemoryMb} MB`, "GRAPH_CODE_SANDBOX_MEMORY_LIMIT", { memoryMb: this.defaultMemoryMb });
|
|
307
|
+
}
|
|
308
|
+
throw new GraphExecutionError(`Code execution failed: ${msg}`, "GRAPH_CODE_SANDBOX_RUNTIME_ERROR", { code: jsCode, error: msg });
|
|
309
|
+
}
|
|
310
|
+
// The script returns a JSON string `{"v": <result>}`. Parse it back.
|
|
311
|
+
if (typeof rawResult !== "string") {
|
|
312
|
+
throw new GraphExecutionError("Code sandbox returned an unexpected non-string result", "GRAPH_CODE_SANDBOX_UNEXPECTED_RESULT", { result: rawResult });
|
|
313
|
+
}
|
|
314
|
+
return JSON.parse(rawResult).v;
|
|
315
|
+
}
|
|
316
|
+
finally {
|
|
317
|
+
context.release();
|
|
318
|
+
isolate.dispose();
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Injects a `console` object into the isolate whose methods forward to the
|
|
323
|
+
* Context logger (bound to `runId`).
|
|
324
|
+
*
|
|
325
|
+
* Every standard `console.*` method is supported:
|
|
326
|
+
* `log`, `info`, `warn`, `error`, `debug`, `trace`, `dir`, `dirxml`,
|
|
327
|
+
* `table`, `group`, `groupCollapsed`, `groupEnd`, `time`, `timeEnd`,
|
|
328
|
+
* `timeLog`, `assert`, `count`, `countReset`, `clear`.
|
|
329
|
+
*
|
|
330
|
+
* Arguments are serialised inside the isolate (via `JSON.stringify` with a
|
|
331
|
+
* safe fallback) before being passed across the isolate boundary, because
|
|
332
|
+
* `isolated-vm` cannot copy arbitrary host objects.
|
|
333
|
+
*
|
|
334
|
+
* @param jail - The isolate's global object.
|
|
335
|
+
* @param logger - The Context logger that receives the forwarded calls.
|
|
336
|
+
* @param context - The isolate context (for running the init script).
|
|
337
|
+
*/
|
|
338
|
+
async injectConsole(jail, logger, context) {
|
|
339
|
+
const dispatch = new ivm.Reference(function (level, argsJson) {
|
|
340
|
+
let parsed;
|
|
341
|
+
try {
|
|
342
|
+
parsed = JSON.parse(argsJson);
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
parsed = [argsJson];
|
|
346
|
+
}
|
|
347
|
+
const msg = parsed
|
|
348
|
+
.map((a) => (typeof a === "string" ? a : JSON.stringify(a)))
|
|
349
|
+
.join(" ");
|
|
350
|
+
const meta = parsed.length === 1 ? parsed[0] : parsed;
|
|
351
|
+
switch (level) {
|
|
352
|
+
case "log":
|
|
353
|
+
case "info":
|
|
354
|
+
logger.info(msg, meta);
|
|
355
|
+
break;
|
|
356
|
+
case "warn":
|
|
357
|
+
logger.warn(msg, meta);
|
|
358
|
+
break;
|
|
359
|
+
case "error":
|
|
360
|
+
logger.error(msg, meta);
|
|
361
|
+
break;
|
|
362
|
+
case "debug":
|
|
363
|
+
logger.debug(msg, meta);
|
|
364
|
+
break;
|
|
365
|
+
case "trace":
|
|
366
|
+
logger.trace(msg, meta);
|
|
367
|
+
break;
|
|
368
|
+
case "dir":
|
|
369
|
+
case "dirxml":
|
|
370
|
+
case "table":
|
|
371
|
+
logger.debug(msg, meta);
|
|
372
|
+
break;
|
|
373
|
+
case "group":
|
|
374
|
+
case "groupCollapsed":
|
|
375
|
+
logger.debug(`[group] ${msg}`, meta);
|
|
376
|
+
break;
|
|
377
|
+
case "groupEnd":
|
|
378
|
+
logger.debug("[groupEnd]", undefined);
|
|
379
|
+
break;
|
|
380
|
+
case "time":
|
|
381
|
+
case "timeEnd":
|
|
382
|
+
case "timeLog":
|
|
383
|
+
logger.debug(`[${level}] ${msg}`, meta);
|
|
384
|
+
break;
|
|
385
|
+
case "assert":
|
|
386
|
+
if (!parsed[0])
|
|
387
|
+
logger.error(`Assertion failed: ${msg}`, meta);
|
|
388
|
+
break;
|
|
389
|
+
case "count":
|
|
390
|
+
case "countReset":
|
|
391
|
+
logger.debug(`[${level}] ${msg}`, meta);
|
|
392
|
+
break;
|
|
393
|
+
case "clear":
|
|
394
|
+
break;
|
|
395
|
+
default:
|
|
396
|
+
logger.info(msg, meta);
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
await jail.set("__dispatch", dispatch);
|
|
400
|
+
context.evalSync(`
|
|
401
|
+
function __ser() {
|
|
402
|
+
var out = [];
|
|
403
|
+
for (var i = 0; i < arguments.length; i++) {
|
|
404
|
+
var a = arguments[i];
|
|
405
|
+
try { out.push(typeof a === 'object' ? JSON.parse(JSON.stringify(a)) : a); }
|
|
406
|
+
catch (e) { out.push(String(a)); }
|
|
407
|
+
}
|
|
408
|
+
return JSON.stringify(out);
|
|
409
|
+
}
|
|
410
|
+
function __call(level) {
|
|
411
|
+
return function() {
|
|
412
|
+
__dispatch.applySync(undefined, [level, __ser.apply(null, arguments)]);
|
|
413
|
+
};
|
|
414
|
+
}
|
|
415
|
+
globalThis.console = {
|
|
416
|
+
log: __call('log'),
|
|
417
|
+
info: __call('info'),
|
|
418
|
+
warn: __call('warn'),
|
|
419
|
+
error: __call('error'),
|
|
420
|
+
debug: __call('debug'),
|
|
421
|
+
trace: __call('trace'),
|
|
422
|
+
dir: __call('dir'),
|
|
423
|
+
dirxml: __call('dirxml'),
|
|
424
|
+
table: __call('table'),
|
|
425
|
+
group: __call('group'),
|
|
426
|
+
groupCollapsed: __call('groupCollapsed'),
|
|
427
|
+
groupEnd: __call('groupEnd'),
|
|
428
|
+
time: __call('time'),
|
|
429
|
+
timeEnd: __call('timeEnd'),
|
|
430
|
+
timeLog: __call('timeLog'),
|
|
431
|
+
assert: __call('assert'),
|
|
432
|
+
count: __call('count'),
|
|
433
|
+
countReset: __call('countReset'),
|
|
434
|
+
clear: __call('clear')
|
|
435
|
+
};
|
|
436
|
+
`);
|
|
437
|
+
dispatch.release();
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2dyYXBoL2VuZ2luZS9leGVjdXRpb24vSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFDSCxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJDQUFzQztBQUVwRTs7R0FFRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBRWhDOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFN0I7O0dBRUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFFaEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxtQkFBbUIsR0FBd0IsSUFBSSxHQUFHLENBQUM7SUFDdkQsU0FBUztJQUNULFNBQVM7SUFDVCxRQUFRO0lBQ1IsU0FBUztJQUNULFFBQVE7SUFDUixZQUFZO0lBQ1osVUFBVTtJQUNWLE1BQU07SUFDTixPQUFPO0lBQ1AsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsTUFBTTtJQUNOLEtBQUs7SUFDTCxZQUFZO0NBQ2IsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLElBQVksRUFDWixRQUFxQztJQUVyQyxJQUFJLFFBQVEsS0FBSyxZQUFZO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFM0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FB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QUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9DaEIsQ0FBQyxDQUFDO1FBRUgsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL0lzb2xhdGVkVm1Db2RlU2FuZGJveEV2YWx1YXRvclxuICogQHN1bW1hcnkge0BsaW5rIENvZGVTYW5kYm94RXZhbHVhdG9yfSBiYWNrZWQgYnkgYGlzb2xhdGVkLXZtYCAoQUxGUkVELTUgwqc3KS5cbiAqIEBkZXNjcmlwdGlvbiBQcm92aWRlcyBhIGZ1bGx5IGlzb2xhdGVkIFY4IHNhbmRib3ggZm9yIHRoZSBDb2RlIE5vZGVcbiAqIChERUNBRi0zMiDCpzIyLjQpIGFuZCBjb2RlLWJhc2VkIGNvbmRpdGlvbnMuIFVzZXMgYGlzb2xhdGVkLXZtYCBmb3IgdHJ1ZVxuICogaGVhcCBpc29sYXRpb24gKHVubGlrZSBOb2RlJ3MgYHZtYCBtb2R1bGUgd2hpY2ggc2hhcmVzIHRoZSBob3N0IGhlYXApLFxuICogYGFjb3JuYCArIGBhY29ybi13YWxrYCBmb3IgQVNULWJhc2VkIHN0YXRpYyB2YWxpZGF0aW9uLCBhbmQgYHR5cGVzY3JpcHRgXG4gKiBmb3IgVFMgdHJhbnNwaWxhdGlvbi5cbiAqXG4gKiBSZXN0cmljdGlvbnMgZW5mb3JjZWQgKEFMRlJFRC01IMKnNy4xMOKAkzcuMTIsIERFQ0FGLTM0IMKnNy41KTpcbiAqXG4gKiAtICoqTm8gaW1wb3J0cyoqIOKAlCBgaW1wb3J0YCBkZWNsYXJhdGlvbnMgYXJlIHJlamVjdGVkIGJ5IEFTVCB2YWxpZGF0aW9uLlxuICogLSAqKk5vIHJlcXVpcmVzKiog4oCUIGByZXF1aXJlYCBpcyBpbiB0aGUgYmxvY2tlZC1pZGVudGlmaWVyIHNldCBhbmQgaXMgbm90XG4gKiAgIGV4cG9zZWQgaW4gdGhlIHNhbmRib3ggY29udGV4dC5cbiAqIC0gKipObyBleHBvcnRzKiog4oCUIGBleHBvcnRgIGRlY2xhcmF0aW9ucyBhcmUgcmVqZWN0ZWQgYnkgQVNUIHZhbGlkYXRpb24uXG4gKiAtICoqUHVyZSBmdW5jdGlvbnMgb25seSoqIOKAlCBubyBzeXN0ZW0gQVBJIGFjY2Vzcy4gQmxvY2tlZCBpZGVudGlmaWVyc1xuICogICBpbmNsdWRlIGBwcm9jZXNzYCwgYGdsb2JhbGAsIGBnbG9iYWxUaGlzYCwgYEZ1bmN0aW9uYCwgYGV2YWxgLCBgZmV0Y2hgLFxuICogICBgWE1MSHR0cFJlcXVlc3RgLCBgV2ViU29ja2V0YCwgYFdvcmtlcmAsIGBEZW5vYCwgYEJ1bmAsIGBtb2R1bGVgLFxuICogICBgZXhwb3J0c2AuIFRoZSBzYW5kYm94IGNvbnRleHQgZXhwb3NlcyBvbmx5IHRoZSBkYXRhIHZhcmlhYmxlc1xuICogICAoYCRpbnB1dGAsIGAkdmFyc2AsIGAkaXRlbWAsIGAkaW5kZXhgLCBgJG5vZGVgLCBgJG91dHB1dGApLlxuICogLSAqKk5vIGBldmFsKClgIC8gYG5ldyBGdW5jdGlvbigpYCoqIOKAlCByZWplY3RlZCBieSBBU1QgdmFsaWRhdGlvbi5cbiAqXG4gKiBUaGUgdXNlciBjb2RlIGlzIHRyYW5zcGlsZWQgKFRTIOKGkiBKUykgaWYgbmVlZGVkLCBzdGF0aWNhbGx5IHZhbGlkYXRlZCxcbiAqIHdyYXBwZWQgaW4gYSBzdHJpY3QtbW9kZSBhc3luYyBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSBkYXRhIHZhcmlhYmxlcyBhc1xuICogcGFyYW1ldGVycywgY29tcGlsZWQgaW4gYW4gaXNvbGF0ZWQgVjggaW5zdGFuY2UsIGFuZCBleGVjdXRlZCB3aXRoIGFcbiAqIHRpbWVvdXQgYW5kIG1lbW9yeSBsaW1pdC4gVGhlIHJlc3VsdCBpcyBjb3BpZWQgYmFjayB0byB0aGUgaG9zdCBoZWFwLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgZXZhbHVhdG9yID0gbmV3IElzb2xhdGVkVm1Db2RlU2FuZGJveEV2YWx1YXRvcigpO1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdG9yLmV2YWx1YXRlKHtcbiAqICAgY29kZTogXCJyZXR1cm4gJGlucHV0LmEgKyAkaW5wdXQuYjtcIixcbiAqICAgaW5wdXQ6IHsgYTogMiwgYjogMyB9LFxuICogfSk7XG4gKiAvLyByZXN1bHQgPT09IDVcbiAqIGBgYFxuICovXG5pbXBvcnQgaXZtIGZyb20gXCJpc29sYXRlZC12bVwiO1xuaW1wb3J0ICogYXMgYWNvcm4gZnJvbSBcImFjb3JuXCI7XG5pbXBvcnQgKiBhcyB3YWxrIGZyb20gXCJhY29ybi13YWxrXCI7XG5pbXBvcnQgKiBhcyB0cyBmcm9tIFwidHlwZXNjcmlwdFwiO1xuaW1wb3J0IHR5cGUge1xuICBDb2RlU2FuZGJveEV2YWx1YXRvcixcbiAgQ29kZVNhbmRib3hDb250ZXh0LFxuICBTYW5kYm94TG9nZ2VyLFxufSBmcm9tIFwiLi9Db2RlU2FuZGJveEV2YWx1YXRvclwiO1xuaW1wb3J0IHsgR3JhcGhFeGVjdXRpb25FcnJvciB9IGZyb20gXCIuLi9lcnJvcnMvR3JhcGhFeGVjdXRpb25FcnJvclwiO1xuXG4vKipcbiAqIERlZmF1bHQgc2FuZGJveCBleGVjdXRpb24gdGltZW91dCBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDEwMDA7XG5cbi8qKlxuICogRGVmYXVsdCBtZW1vcnkgbGltaXQgZm9yIHRoZSBpc29sYXRlZCBWOCBoZWFwIGluIE1CLlxuICovXG5jb25zdCBERUZBVUxUX01FTU9SWV9NQiA9IDMyO1xuXG4vKipcbiAqIE1heGltdW0gY29kZSBsZW5ndGggKGNoYXJhY3RlcnMpIGFjY2VwdGVkIGJ5IHRoZSBldmFsdWF0b3IuXG4gKi9cbmNvbnN0IE1BWF9DT0RFX0xFTkdUSCA9IDEwMF8wMDA7XG5cbi8qKlxuICogSWRlbnRpZmllcnMgdGhhdCBhcmUgZm9yYmlkZGVuIGluIHNhbmRib3hlZCBjb2RlIChBTEZSRUQtNSDCpzcuMTApLlxuICpcbiAqIEFueSBBU1Qgbm9kZSBvZiB0eXBlIGBJZGVudGlmaWVyYCB3aG9zZSBgbmFtZWAgaXMgaW4gdGhpcyBzZXQgY2F1c2VzIHRoZVxuICogdmFsaWRhdG9yIHRvIHJlamVjdCB0aGUgY29kZS4gVGhpcyBjb3ZlcnMgYm90aCBmcmVlLXN0YW5kaW5nIHJlZmVyZW5jZXNcbiAqIChgcHJvY2Vzcy5lbnZgKSBhbmQgY2FsbCB0YXJnZXRzIChgcmVxdWlyZSguLi4pYCkuXG4gKi9cbmNvbnN0IEJMT0NLRURfSURFTlRJRklFUlM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgXCJwcm9jZXNzXCIsXG4gIFwicmVxdWlyZVwiLFxuICBcIm1vZHVsZVwiLFxuICBcImV4cG9ydHNcIixcbiAgXCJnbG9iYWxcIixcbiAgXCJnbG9iYWxUaGlzXCIsXG4gIFwiRnVuY3Rpb25cIixcbiAgXCJldmFsXCIsXG4gIFwiZmV0Y2hcIixcbiAgXCJYTUxIdHRwUmVxdWVzdFwiLFxuICBcIldlYlNvY2tldFwiLFxuICBcIldvcmtlclwiLFxuICBcIkRlbm9cIixcbiAgXCJCdW5cIixcbiAgXCJfX2Rpc3BhdGNoXCIsXG5dKTtcblxuLyoqXG4gKiBUcmFuc3BpbGVzIFR5cGVTY3JpcHQgY29kZSB0byBKYXZhU2NyaXB0IChBTEZSRUQtNSDCpzcuNCkuXG4gKlxuICogV2hlbiB0aGUgbGFuZ3VhZ2UgaXMgYCdqYXZhc2NyaXB0J2AgdGhlIGNvZGUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLiBGb3JcbiAqIGAndHlwZXNjcmlwdCdgIHRoZSBjb2RlIGlzIHRyYW5zcGlsZWQgdXNpbmcgdGhlIFR5cGVTY3JpcHQgY29tcGlsZXIgd2l0aFxuICogbW9kdWxlIGtpbmQgYE5vbmVgIChubyBpbXBvcnQvZXhwb3J0IGVtaXR0ZWQpIGFuZCB0YXJnZXQgYEVTMjAyMmAuXG4gKlxuICogQHBhcmFtIGNvZGUgLSBUaGUgdXNlci1hdXRob3JlZCBjb2RlLlxuICogQHBhcmFtIGxhbmd1YWdlIC0gVGhlIGNvZGUgbGFuZ3VhZ2UgKGAnamF2YXNjcmlwdCdgIG9yIGAndHlwZXNjcmlwdCdgKS5cbiAqIEByZXR1cm5zIFRyYW5zcGlsZWQgSmF2YVNjcmlwdCBjb2RlLlxuICovXG5mdW5jdGlvbiB0cmFuc3BpbGVUeXBlU2NyaXB0KFxuICBjb2RlOiBzdHJpbmcsXG4gIGxhbmd1YWdlOiBcImphdmFzY3JpcHRcIiB8IFwidHlwZXNjcmlwdFwiXG4pOiBzdHJpbmcge1xuICBpZiAobGFuZ3VhZ2UgPT09IFwiamF2YXNjcmlwdFwiKSByZXR1cm4gY29kZTtcblxuICBjb25zdCByZXN1bHQgPSB0cy50cmFuc3BpbGVNb2R1bGUoY29kZSwge1xuICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgdGFyZ2V0OiB0cy5TY3JpcHRUYXJnZXQuRVMyMDIyLFxuICAgICAgbW9kdWxlOiB0cy5Nb2R1bGVLaW5kLk5vbmUsXG4gICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICBub0VtaXRIZWxwZXJzOiB0cnVlLFxuICAgICAgaW1wb3J0SGVscGVyczogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gU3RyaXAgdGhlIFwidXNlIHN0cmljdFwiOyBkaXJlY3RpdmUgdGhhdCB0cy50cmFuc3BpbGVNb2R1bGUgYWRkcyDigJQgdGhlXG4gIC8vIHNhbmRib3ggd3JhcHBlciBhbHJlYWR5IGVuZm9yY2VzIHN0cmljdCBtb2RlLCBhbmQgdGhlIGRpcmVjdGl2ZSBicmVha3NcbiAgLy8gZXhwcmVzc2lvbi1tb2RlIHdyYXBwaW5nIChyZXR1cm4gKC4uLikpLlxuICByZXR1cm4gcmVzdWx0Lm91dHB1dFRleHQucmVwbGFjZSgvXlwidXNlIHN0cmljdFwiO1xccyovLCBcIlwiKTtcbn1cblxuLyoqXG4gKiBTdGF0aWNhbGx5IHZhbGlkYXRlcyB1c2VyIGNvZGUgdXNpbmcgYW4gQVNUIHdhbGsgKEFMRlJFRC01IMKnNy4xMSkuXG4gKlxuICogUmVqZWN0czpcbiAqIC0gYEltcG9ydERlY2xhcmF0aW9uYCDigJQgbm8gaW1wb3J0cyBhbGxvd2VkLlxuICogLSBgRXhwb3J0TmFtZWREZWNsYXJhdGlvbmAgLyBgRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uYCDigJQgbm8gZXhwb3J0cy5cbiAqIC0gYElkZW50aWZpZXJgIHdob3NlIG5hbWUgaXMgaW4ge0BsaW5rIEJMT0NLRURfSURFTlRJRklFUlN9LlxuICogLSBgTmV3RXhwcmVzc2lvbmAgd2l0aCBjYWxsZWUgYEZ1bmN0aW9uYCDigJQgbm8gYG5ldyBGdW5jdGlvbigpYC5cbiAqIC0gYENhbGxFeHByZXNzaW9uYCB3aXRoIGNhbGxlZSBgZXZhbGAg4oCUIG5vIGBldmFsKClgLlxuICpcbiAqIEBwYXJhbSBjb2RlIC0gSmF2YVNjcmlwdCBjb2RlIHRvIHZhbGlkYXRlIChhZnRlciBUUyB0cmFuc3BpbGF0aW9uKS5cbiAqIEB0aHJvd3Mge0dyYXBoRXhlY3V0aW9uRXJyb3J9IHdoZW4gYSBmb3JiaWRkZW4gY29uc3RydWN0IGlzIGZvdW5kLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVNhZmVDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoY29kZS5sZW5ndGggPiBNQVhfQ09ERV9MRU5HVEgpIHtcbiAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgIGBDb2RlIGV4Y2VlZHMgdGhlIG1heGltdW0gbGVuZ3RoIG9mICR7TUFYX0NPREVfTEVOR1RIfSBjaGFyYWN0ZXJzYCxcbiAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPREVfVE9PX0xPTkdcIixcbiAgICAgIHsgbGVuZ3RoOiBjb2RlLmxlbmd0aCB9XG4gICAgKTtcbiAgfVxuXG4gIGxldCBhc3Q6IGFjb3JuLkFueU5vZGU7XG4gIHRyeSB7XG4gICAgLy8gRmlyc3QsIHRyeSBwYXJzaW5nIHRoZSBjb2RlIHdyYXBwZWQgaW4gYSBmdW5jdGlvbiB3aXRoIHNvdXJjZVR5cGVcbiAgICAvLyBcInNjcmlwdFwiLiBUaGlzIGhhbmRsZXMgYHJldHVybmAgc3RhdGVtZW50cyAod2hpY2ggYXJlIHZhbGlkIGluc2lkZSBhXG4gICAgLy8gZnVuY3Rpb24pIGFuZCBsZXRzIHVzIGRldGVjdCBibG9ja2VkIGlkZW50aWZpZXJzLCBldmFsKCksIGFuZFxuICAgIC8vIG5ldyBGdW5jdGlvbigpIHZpYSB0aGUgQVNUIHdhbGsuXG4gICAgYXN0ID0gYWNvcm4ucGFyc2UoYGFzeW5jIGZ1bmN0aW9uIF9fdmFsaWRhdGUoKSB7XFxuJHtjb2RlfVxcbn1gLCB7XG4gICAgICBlY21hVmVyc2lvbjogXCJsYXRlc3RcIixcbiAgICAgIHNvdXJjZVR5cGU6IFwic2NyaXB0XCIsXG4gICAgfSkgYXMgYWNvcm4uQW55Tm9kZTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gSWYgdGhlIGZ1bmN0aW9uLXdyYXBwZWQgcGFyc2UgZmFpbHMgKGUuZy4gYmVjYXVzZSB0aGUgY29kZSBoYXNcbiAgICAvLyB0b3AtbGV2ZWwgYGltcG9ydGAgb3IgYGV4cG9ydGAgZGVjbGFyYXRpb25zIHdoaWNoIGFyZSBpbnZhbGlkIGluc2lkZVxuICAgIC8vIGEgZnVuY3Rpb24pLCB0cnkgcGFyc2luZyB0aGUgcmF3IGNvZGUgd2l0aCBzb3VyY2VUeXBlIFwibW9kdWxlXCIgc29cbiAgICAvLyBpbXBvcnQvZXhwb3J0IGRlY2xhcmF0aW9ucyBhcmUgcmVjb2duaXNlZCBhcyBBU1Qgbm9kZXMuXG4gICAgdHJ5IHtcbiAgICAgIGFzdCA9IGFjb3JuLnBhcnNlKGNvZGUsIHtcbiAgICAgICAgZWNtYVZlcnNpb246IFwibGF0ZXN0XCIsXG4gICAgICAgIHNvdXJjZVR5cGU6IFwibW9kdWxlXCIsXG4gICAgICB9KSBhcyBhY29ybi5BbnlOb2RlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIGBDb2RlIGZhaWxlZCB0byBwYXJzZTogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1BBUlNFX0VSUk9SXCIsXG4gICAgICAgIHsgY29kZSwgZXJyb3I6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB3YWxrLmZ1bGwoYXN0IGFzIG5ldmVyLCAobm9kZTogYWNvcm4uQW55Tm9kZSkgPT4ge1xuICAgIGNvbnN0IG4gPSBub2RlIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgICBpZiAobltcInR5cGVcIl0gPT09IFwiSW1wb3J0RGVjbGFyYXRpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiSW1wb3J0cyBhcmUgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5cIixcbiAgICAgICAgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRk9SQklEREVOX1RPS0VOXCIsXG4gICAgICAgIHsgdG9rZW46IFwiaW1wb3J0XCIgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuW1widHlwZVwiXSA9PT0gXCJFeHBvcnROYW1lZERlY2xhcmF0aW9uXCIgfHxcbiAgICAgIG5bXCJ0eXBlXCJdID09PSBcIkV4cG9ydERlZmF1bHREZWNsYXJhdGlvblwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJFeHBvcnRzIGFyZSBub3QgYWxsb3dlZCBpbiBDb2RlIG5vZGVzLlwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogXCJleHBvcnRcIiB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG5bXCJ0eXBlXCJdID09PSBcIklkZW50aWZpZXJcIiAmJlxuICAgICAgdHlwZW9mIG5bXCJuYW1lXCJdID09PSBcInN0cmluZ1wiICYmXG4gICAgICBCTE9DS0VEX0lERU5USUZJRVJTLmhhcyhuW1wibmFtZVwiXSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaEV4ZWN1dGlvbkVycm9yKFxuICAgICAgICBgSWRlbnRpZmllciBcIiR7bltcIm5hbWVcIl19XCIgaXMgbm90IGFsbG93ZWQgaW4gQ29kZSBub2Rlcy5gLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogbltcIm5hbWVcIl0gfVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBuW1widHlwZVwiXSA9PT0gXCJOZXdFeHByZXNzaW9uXCIgJiZcbiAgICAgIChuW1wiY2FsbGVlXCJdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KT8uW1wibmFtZVwiXSA9PT0gXCJGdW5jdGlvblwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJuZXcgRnVuY3Rpb24oKSBpcyBub3QgYWxsb3dlZCBpbiBDb2RlIG5vZGVzLlwiLFxuICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9GT1JCSURERU5fVE9LRU5cIixcbiAgICAgICAgeyB0b2tlbjogXCJGdW5jdGlvblwiIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbltcInR5cGVcIl0gPT09IFwiQ2FsbEV4cHJlc3Npb25cIiAmJlxuICAgICAgKG5bXCJjYWxsZWVcIl0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pPy5bXCJuYW1lXCJdID09PSBcImV2YWxcIlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiZXZhbCgpIGlzIG5vdCBhbGxvd2VkIGluIENvZGUgbm9kZXMuXCIsXG4gICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0ZPUkJJRERFTl9UT0tFTlwiLFxuICAgICAgICB7IHRva2VuOiBcImV2YWxcIiB9XG4gICAgICApO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBnaXZlbiBjb2RlIGNvbnRhaW5zIGEgdG9wLWxldmVsIGByZXR1cm5gIHN0YXRlbWVudC5cbiAqXG4gKiBXaGVuIHRoZSBjb2RlIGhhcyBubyBgcmV0dXJuYCwgaXQgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZSBleHByZXNzaW9uIGFuZFxuICogd3JhcHBlZCBpbiBgcmV0dXJuICguLi4pYCBzbyB0aGUgdXNlciBjYW4gd3JpdGUgYCgkaW5wdXQuYSArICRpbnB1dC5iKWBcbiAqIGluc3RlYWQgb2YgYHJldHVybiAkaW5wdXQuYSArICRpbnB1dC5iYC5cbiAqL1xuZnVuY3Rpb24gaGFzUmV0dXJuU3RhdGVtZW50KGNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gL1xcYnJldHVyblxcYltcXHM7XS8udGVzdChjb2RlKTtcbn1cblxuLyoqXG4gKiBgaXNvbGF0ZWQtdm1gLWJhY2tlZCB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9IChBTEZSRUQtNSDCpzcuMTgpLlxuICpcbiAqIFRoaXMgZXZhbHVhdG9yIHByb3ZpZGVzIGEgdHJ1bHkgaXNvbGF0ZWQgVjggc2FuZGJveCDigJQgdGhlIGNvZGUgcnVucyBpbiBhXG4gKiBzZXBhcmF0ZSBpc29sYXRlIHdpdGggaXRzIG93biBoZWFwLCBzZXBhcmF0ZSBmcm9tIHRoZSBob3N0IHByb2Nlc3MuIFRoZVxuICogc2FuZGJveCBjb250ZXh0IGV4cG9zZXMgb25seSB0aGUgZGF0YSB2YXJpYWJsZXMgKGAkaW5wdXRgLCBgJHZhcnNgLCBgJGl0ZW1gLFxuICogYCRpbmRleGAsIGAkbm9kZWAsIGAkb3V0cHV0YCk7IG5vIGhvc3QgZ2xvYmFscyBhcmUgYXZhaWxhYmxlLlxuICpcbiAqIEV4ZWN1dGlvbiBwaXBlbGluZTpcbiAqIDEuICoqVHJhbnNwaWxlKiog4oCUIFR5cGVTY3JpcHQgY29kZSBpcyB0cmFuc3BpbGVkIHRvIEphdmFTY3JpcHQgdmlhXG4gKiAgICBgdHlwZXNjcmlwdC50cmFuc3BpbGVNb2R1bGVgIChBTEZSRUQtNSDCpzcuNCkuXG4gKiAyLiAqKlZhbGlkYXRlKiog4oCUIHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgcGFyc2VkIHdpdGggYGFjb3JuYCBhbmQgd2Fsa2VkIHdpdGhcbiAqICAgIGBhY29ybi13YWxrYCB0byByZWplY3QgaW1wb3J0cywgZXhwb3J0cywgYmxvY2tlZCBpZGVudGlmaWVycywgYGV2YWwoKWAsXG4gKiAgICBhbmQgYG5ldyBGdW5jdGlvbigpYCAoQUxGUkVELTUgwqc3LjExKS5cbiAqIDMuICoqSXNvbGF0ZSoqIOKAlCBhIG5ldyBgaXNvbGF0ZWQtdm1gIGBJc29sYXRlYCBpcyBjcmVhdGVkIHdpdGggYSBtZW1vcnlcbiAqICAgIGxpbWl0LiBBIGNvbnRleHQgaXMgY3JlYXRlZCBhbmQgdGhlIGRhdGEgdmFyaWFibGVzIGFyZSBjb3BpZWQgaW50byB0aGVcbiAqICAgIGlzb2xhdGUncyBoZWFwIHZpYSBgRXh0ZXJuYWxDb3B5YC5cbiAqIDQuICoqQ29tcGlsZSAmIHJ1bioqIOKAlCB0aGUgd3JhcHBlZCBjb2RlIGlzIGNvbXBpbGVkIGFuZCBleGVjdXRlZCB3aXRoIGFcbiAqICAgIHRpbWVvdXQuIFRoZSByZXN1bHQgaXMgY29waWVkIGJhY2sgdG8gdGhlIGhvc3QgaGVhcC5cbiAqIDUuICoqRGlzcG9zZSoqIOKAlCB0aGUgaXNvbGF0ZSBpcyBhbHdheXMgZGlzcG9zZWQgaW4gYSBgZmluYWxseWAgYmxvY2suXG4gKlxuICogVGhlIHVzZXIgY29kZSBpcyB3cmFwcGVkIGluIGEgc3RyaWN0LW1vZGUgYXN5bmMgZnVuY3Rpb246XG4gKlxuICogYGBganNcbiAqIFwidXNlIHN0cmljdFwiO1xuICogYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJGlucHV0LCAkdmFycywgJGl0ZW0sICRpbmRleCwgJG5vZGUsICRvdXRwdXQpIHtcbiAqICAgPHVzZXIgY29kZT5cbiAqIH1cbiAqIF9fdXNlckZ1bmN0aW9uKCRpbnB1dCwgJHZhcnMsICRpdGVtLCAkaW5kZXgsICRub2RlLCAkb3V0cHV0KTtcbiAqIGBgYFxuICpcbiAqIFdoZW4gdGhlIGNvZGUgaGFzIG5vIGByZXR1cm5gIHN0YXRlbWVudCBpdCBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIGV4cHJlc3Npb25cbiAqIGFuZCB3cmFwcGVkIGluIGByZXR1cm4gKC4uLilgLlxuICovXG5leHBvcnQgY2xhc3MgSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yIGltcGxlbWVudHMgQ29kZVNhbmRib3hFdmFsdWF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRUaW1lb3V0TXM6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TWVtb3J5TWI6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIGRlZmF1bHRUaW1lb3V0TXMgLSBEZWZhdWx0IGV4ZWN1dGlvbiB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICogQHBhcmFtIGRlZmF1bHRNZW1vcnlNYiAtIERlZmF1bHQgaXNvbGF0ZSBtZW1vcnkgbGltaXQgaW4gTUIuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBkZWZhdWx0VGltZW91dE1zOiBudW1iZXIgPSBERUZBVUxUX1RJTUVPVVRfTVMsXG4gICAgZGVmYXVsdE1lbW9yeU1iOiBudW1iZXIgPSBERUZBVUxUX01FTU9SWV9NQlxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRUaW1lb3V0TXMgPSBkZWZhdWx0VGltZW91dE1zO1xuICAgIHRoaXMuZGVmYXVsdE1lbW9yeU1iID0gZGVmYXVsdE1lbW9yeU1iO1xuICB9XG5cbiAgYXN5bmMgZXZhbHVhdGUoY3R4OiBDb2RlU2FuZGJveENvbnRleHQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBjb2RlID0gY3R4LmNvZGU7XG4gICAgaWYgKCFjb2RlIHx8IHR5cGVvZiBjb2RlICE9PSBcInN0cmluZ1wiIHx8IGNvZGUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIFwiQ29kZSBzYW5kYm94IHJlY2VpdmVkIGVtcHR5IGNvZGVcIixcbiAgICAgICAgXCJHUkFQSF9DT0RFX1NBTkRCT1hfRU1QVFlfQ09ERVwiXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbmd1YWdlID0gY3R4Lmxhbmd1YWdlID8/IFwiamF2YXNjcmlwdFwiO1xuICAgIGNvbnN0IGpzQ29kZSA9IHRyYW5zcGlsZVR5cGVTY3JpcHQoY29kZSwgbGFuZ3VhZ2UpO1xuXG4gICAgdmFsaWRhdGVTYWZlQ29kZShqc0NvZGUpO1xuXG4gICAgY29uc3QgZXhwcmVzc2lvbk1vZGUgPSAhaGFzUmV0dXJuU3RhdGVtZW50KGpzQ29kZSk7XG4gICAgY29uc3QgY29kZUZvck1vZGUgPSBleHByZXNzaW9uTW9kZVxuICAgICAgPyBqc0NvZGUucmVwbGFjZSgvW1xccztdKyQvLCBcIlwiKVxuICAgICAgOiBqc0NvZGU7XG5cbiAgICBjb25zdCBzYW5kYm94VmFyczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICAkaW5wdXQ6IGN0eC5pbnB1dCA/PyB7fSxcbiAgICAgICR2YXJzOiBjdHgudmFycyA/PyB7fSxcbiAgICAgICRpdGVtOiBjdHguaXRlbSxcbiAgICAgICRpbmRleDogY3R4LmluZGV4LFxuICAgICAgJG5vZGU6IGN0eC5ub2RlcyA/PyB7fSxcbiAgICAgICRvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1OYW1lcyA9IE9iamVjdC5rZXlzKHNhbmRib3hWYXJzKTtcbiAgICAvLyBjb25zdCBwYXJhbVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoc2FuZGJveFZhcnMpO1xuXG4gICAgLy8gQnVpbGQgdGhlIHdyYXBwZWQgc2NyaXB0LiBUaGUgdXNlciBjb2RlIHJ1bnMgaW5zaWRlIGFuIGFzeW5jIGZ1bmN0aW9uXG4gICAgLy8gd2l0aCBuYW1lZCBwYXJhbWV0ZXJzLiBUaGUgcmVzdWx0IGlzIEpTT04tc3RyaW5naWZpZWQgaW5zaWRlIHRoZSBpc29sYXRlXG4gICAgLy8gc28gaXQgY2FuIGJlIHRyYW5zZmVycmVkIGJhY2sgYXMgYSBwbGFpbiBzdHJpbmcgKGlzb2xhdGVkLXZtIGNhbm5vdFxuICAgIC8vIGRlZXAtY29weSBhcmJpdHJhcnkgb2JqZWN0cyB2aWEgYHNjcmlwdC5ydW4oKWAgd2l0aCBgcHJvbWlzZTogdHJ1ZWApLlxuICAgIC8vIFRoZSBzcGVjIHJlcXVpcmVzIEpTT04tc2VyaWFsaXphYmxlIG91dHB1dCwgc28gdGhpcyBpcyBzYWZlLlxuICAgIGNvbnN0IHVzZXJCb2R5ID0gZXhwcmVzc2lvbk1vZGUgPyBgcmV0dXJuICgke2NvZGVGb3JNb2RlfSk7YCA6IGNvZGVGb3JNb2RlO1xuICAgIGNvbnN0IHdyYXBwZWQgPSBgXCJ1c2Ugc3RyaWN0XCI7XFxuYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pIHtcXG4ke3VzZXJCb2R5fVxcbn1cXG5fX3VzZXJGdW5jdGlvbigke3BhcmFtTmFtZXMuam9pbihcIiwgXCIpfSkudGhlbihmdW5jdGlvbihfX3IpIHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgdjogX19yIH0pOyB9KTtgO1xuXG4gICAgY29uc3QgaXNvbGF0ZSA9IG5ldyBpdm0uSXNvbGF0ZSh7IG1lbW9yeUxpbWl0OiB0aGlzLmRlZmF1bHRNZW1vcnlNYiB9KTtcbiAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgaXNvbGF0ZS5jcmVhdGVDb250ZXh0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgamFpbCA9IGNvbnRleHQuZ2xvYmFsO1xuXG4gICAgICAvLyBJbmplY3QgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvXG4gICAgICAvLyB0aGUgQ29udGV4dCBsb2dnZXIgKGJvdW5kIHRvIHJ1bklkKS4gVGhlIGxvZ2dlciBpcyBjYWxsZWQgdmlhXG4gICAgICAvLyBgaXZtLlJlZmVyZW5jZWAgc28gdGhlIGlzb2xhdGUgY2FuIGludm9rZSBob3N0IGZ1bmN0aW9ucyB3aXRob3V0XG4gICAgICAvLyBsZWFraW5nIHRoZSBob3N0IGhlYXAuXG4gICAgICBpZiAoY3R4LmxvZ2dlcikge1xuICAgICAgICBhd2FpdCB0aGlzLmluamVjdENvbnNvbGUoamFpbCwgY3R4LmxvZ2dlciwgY29udGV4dCk7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhzYW5kYm94VmFycykpIHtcbiAgICAgICAgYXdhaXQgamFpbC5zZXQoXG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBuZXcgaXZtLkV4dGVybmFsQ29weSh2YWx1ZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHZhbHVlKS5jb3B5SW50bygpXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzY3JpcHQ6IGl2bS5TY3JpcHQ7XG4gICAgICB0cnkge1xuICAgICAgICBzY3JpcHQgPSBhd2FpdCBpc29sYXRlLmNvbXBpbGVTY3JpcHQod3JhcHBlZCwge1xuICAgICAgICAgIGZpbGVuYW1lOiBcImdyYXBoLWNvZGUtbm9kZS5qc1wiLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoZXhwcmVzc2lvbk1vZGUpIHtcbiAgICAgICAgICBjb25zdCBmYWxsYmFja0JvZHkgPSBjb2RlRm9yTW9kZTtcbiAgICAgICAgICBjb25zdCBmYWxsYmFja1dyYXBwZWQgPSBgXCJ1c2Ugc3RyaWN0XCI7XFxuYXN5bmMgZnVuY3Rpb24gX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pIHtcXG4ke2ZhbGxiYWNrQm9keX1cXG59XFxuX191c2VyRnVuY3Rpb24oJHtwYXJhbU5hbWVzLmpvaW4oXCIsIFwiKX0pLnRoZW4oZnVuY3Rpb24oX19yKSB7IHJldHVybiBKU09OLnN0cmluZ2lmeSh7IHY6IF9fciB9KTsgfSk7YDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2NyaXB0ID0gYXdhaXQgaXNvbGF0ZS5jb21waWxlU2NyaXB0KGZhbGxiYWNrV3JhcHBlZCwge1xuICAgICAgICAgICAgICBmaWxlbmFtZTogXCJncmFwaC1jb2RlLW5vZGUuanNcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGZhbGxiYWNrRXJyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgICAgICAgYENvZGUgZmFpbGVkIHRvIGNvbXBpbGU6ICR7KGZhbGxiYWNrRXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX0NPTVBJTEVfRVJST1JcIixcbiAgICAgICAgICAgICAgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiAoZmFsbGJhY2tFcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQ29kZSBmYWlsZWQgdG8gY29tcGlsZTogJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfWAsXG4gICAgICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9DT01QSUxFX0VSUk9SXCIsXG4gICAgICAgICAgICB7IGNvZGU6IGpzQ29kZSwgZXJyb3I6IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IHJhd1Jlc3VsdDogdW5rbm93bjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJhd1Jlc3VsdCA9IGF3YWl0IHNjcmlwdC5ydW4oY29udGV4dCwge1xuICAgICAgICAgIHRpbWVvdXQ6IHRoaXMuZGVmYXVsdFRpbWVvdXRNcyxcbiAgICAgICAgICBwcm9taXNlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSAoZXJyIGFzIEVycm9yKS5tZXNzYWdlO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFwidGltZWQgb3V0XCIpIHx8IG1zZy5pbmNsdWRlcyhcInRpbWVvdXRcIikpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgICAgIGBDb2RlIGV4ZWN1dGlvbiB0aW1lZCBvdXQgYWZ0ZXIgJHt0aGlzLmRlZmF1bHRUaW1lb3V0TXN9IG1zYCxcbiAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1RJTUVPVVRcIixcbiAgICAgICAgICAgIHsgdGltZW91dE1zOiB0aGlzLmRlZmF1bHRUaW1lb3V0TXMgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIm1lbW9yeVwiKSB8fCBtc2cuaW5jbHVkZXMoXCJoZWFwXCIpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgICBgQ29kZSBleGNlZWRlZCB0aGUgbWVtb3J5IGxpbWl0IG9mICR7dGhpcy5kZWZhdWx0TWVtb3J5TWJ9IE1CYCxcbiAgICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX01FTU9SWV9MSU1JVFwiLFxuICAgICAgICAgICAgeyBtZW1vcnlNYjogdGhpcy5kZWZhdWx0TWVtb3J5TWIgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgYENvZGUgZXhlY3V0aW9uIGZhaWxlZDogJHttc2d9YCxcbiAgICAgICAgICBcIkdSQVBIX0NPREVfU0FOREJPWF9SVU5USU1FX0VSUk9SXCIsXG4gICAgICAgICAgeyBjb2RlOiBqc0NvZGUsIGVycm9yOiBtc2cgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBUaGUgc2NyaXB0IHJldHVybnMgYSBKU09OIHN0cmluZyBge1widlwiOiA8cmVzdWx0Pn1gLiBQYXJzZSBpdCBiYWNrLlxuICAgICAgaWYgKHR5cGVvZiByYXdSZXN1bHQgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgICAgXCJDb2RlIHNhbmRib3ggcmV0dXJuZWQgYW4gdW5leHBlY3RlZCBub24tc3RyaW5nIHJlc3VsdFwiLFxuICAgICAgICAgIFwiR1JBUEhfQ09ERV9TQU5EQk9YX1VORVhQRUNURURfUkVTVUxUXCIsXG4gICAgICAgICAgeyByZXN1bHQ6IHJhd1Jlc3VsdCB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXdSZXN1bHQpLnY7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNvbnRleHQucmVsZWFzZSgpO1xuICAgICAgaXNvbGF0ZS5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluamVjdHMgYSBgY29uc29sZWAgb2JqZWN0IGludG8gdGhlIGlzb2xhdGUgd2hvc2UgbWV0aG9kcyBmb3J3YXJkIHRvIHRoZVxuICAgKiBDb250ZXh0IGxvZ2dlciAoYm91bmQgdG8gYHJ1bklkYCkuXG4gICAqXG4gICAqIEV2ZXJ5IHN0YW5kYXJkIGBjb25zb2xlLipgIG1ldGhvZCBpcyBzdXBwb3J0ZWQ6XG4gICAqIGBsb2dgLCBgaW5mb2AsIGB3YXJuYCwgYGVycm9yYCwgYGRlYnVnYCwgYHRyYWNlYCwgYGRpcmAsIGBkaXJ4bWxgLFxuICAgKiBgdGFibGVgLCBgZ3JvdXBgLCBgZ3JvdXBDb2xsYXBzZWRgLCBgZ3JvdXBFbmRgLCBgdGltZWAsIGB0aW1lRW5kYCxcbiAgICogYHRpbWVMb2dgLCBgYXNzZXJ0YCwgYGNvdW50YCwgYGNvdW50UmVzZXRgLCBgY2xlYXJgLlxuICAgKlxuICAgKiBBcmd1bWVudHMgYXJlIHNlcmlhbGlzZWQgaW5zaWRlIHRoZSBpc29sYXRlICh2aWEgYEpTT04uc3RyaW5naWZ5YCB3aXRoIGFcbiAgICogc2FmZSBmYWxsYmFjaykgYmVmb3JlIGJlaW5nIHBhc3NlZCBhY3Jvc3MgdGhlIGlzb2xhdGUgYm91bmRhcnksIGJlY2F1c2VcbiAgICogYGlzb2xhdGVkLXZtYCBjYW5ub3QgY29weSBhcmJpdHJhcnkgaG9zdCBvYmplY3RzLlxuICAgKlxuICAgKiBAcGFyYW0gamFpbCAtIFRoZSBpc29sYXRlJ3MgZ2xvYmFsIG9iamVjdC5cbiAgICogQHBhcmFtIGxvZ2dlciAtIFRoZSBDb250ZXh0IGxvZ2dlciB0aGF0IHJlY2VpdmVzIHRoZSBmb3J3YXJkZWQgY2FsbHMuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGlzb2xhdGUgY29udGV4dCAoZm9yIHJ1bm5pbmcgdGhlIGluaXQgc2NyaXB0KS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5qZWN0Q29uc29sZShcbiAgICBqYWlsOiBpdm0uQ29udGV4dFtcImdsb2JhbFwiXSxcbiAgICBsb2dnZXI6IFNhbmRib3hMb2dnZXIsXG4gICAgY29udGV4dDogaXZtLkNvbnRleHRcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGlzcGF0Y2ggPSBuZXcgaXZtLlJlZmVyZW5jZShmdW5jdGlvbiAobGV2ZWw6IHN0cmluZywgYXJnc0pzb246IHN0cmluZykge1xuICAgICAgbGV0IHBhcnNlZDogdW5rbm93bltdO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcGFyc2VkID0gSlNPTi5wYXJzZShhcmdzSnNvbikgYXMgdW5rbm93bltdO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHBhcnNlZCA9IFthcmdzSnNvbl07XG4gICAgICB9XG4gICAgICBjb25zdCBtc2cgPSBwYXJzZWRcbiAgICAgICAgLm1hcCgoYSkgPT4gKHR5cGVvZiBhID09PSBcInN0cmluZ1wiID8gYSA6IEpTT04uc3RyaW5naWZ5KGEpKSlcbiAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgY29uc3QgbWV0YSA9IHBhcnNlZC5sZW5ndGggPT09IDEgPyBwYXJzZWRbMF0gOiBwYXJzZWQ7XG4gICAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICAgIGNhc2UgXCJsb2dcIjpcbiAgICAgICAgY2FzZSBcImluZm9cIjpcbiAgICAgICAgICBsb2dnZXIuaW5mbyhtc2csIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwid2FyblwiOlxuICAgICAgICAgIGxvZ2dlci53YXJuKG1zZywgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlcnJvclwiOlxuICAgICAgICAgIGxvZ2dlci5lcnJvcihtc2csIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGVidWdcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcobXNnLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRyYWNlXCI6XG4gICAgICAgICAgbG9nZ2VyLnRyYWNlKG1zZywgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkaXJcIjpcbiAgICAgICAgY2FzZSBcImRpcnhtbFwiOlxuICAgICAgICBjYXNlIFwidGFibGVcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcobXNnLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdyb3VwXCI6XG4gICAgICAgIGNhc2UgXCJncm91cENvbGxhcHNlZFwiOlxuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgW2dyb3VwXSAke21zZ31gLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImdyb3VwRW5kXCI6XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiW2dyb3VwRW5kXVwiLCB1bmRlZmluZWQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidGltZVwiOlxuICAgICAgICBjYXNlIFwidGltZUVuZFwiOlxuICAgICAgICBjYXNlIFwidGltZUxvZ1wiOlxuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgWyR7bGV2ZWx9XSAke21zZ31gLCBtZXRhKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImFzc2VydFwiOlxuICAgICAgICAgIGlmICghcGFyc2VkWzBdKSBsb2dnZXIuZXJyb3IoYEFzc2VydGlvbiBmYWlsZWQ6ICR7bXNnfWAsIG1ldGEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY291bnRcIjpcbiAgICAgICAgY2FzZSBcImNvdW50UmVzZXRcIjpcbiAgICAgICAgICBsb2dnZXIuZGVidWcoYFske2xldmVsfV0gJHttc2d9YCwgbWV0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjbGVhclwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGxvZ2dlci5pbmZvKG1zZywgbWV0YSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBhd2FpdCBqYWlsLnNldChcIl9fZGlzcGF0Y2hcIiwgZGlzcGF0Y2gpO1xuXG4gICAgY29udGV4dC5ldmFsU3luYyhgXG4gICAgICBmdW5jdGlvbiBfX3NlcigpIHtcbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBhID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgIHRyeSB7IG91dC5wdXNoKHR5cGVvZiBhID09PSAnb2JqZWN0JyA/IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYSkpIDogYSk7IH1cbiAgICAgICAgICBjYXRjaCAoZSkgeyBvdXQucHVzaChTdHJpbmcoYSkpOyB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG91dCk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfX2NhbGwobGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIF9fZGlzcGF0Y2guYXBwbHlTeW5jKHVuZGVmaW5lZCwgW2xldmVsLCBfX3Nlci5hcHBseShudWxsLCBhcmd1bWVudHMpXSk7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBnbG9iYWxUaGlzLmNvbnNvbGUgPSB7XG4gICAgICAgIGxvZzogX19jYWxsKCdsb2cnKSxcbiAgICAgICAgaW5mbzogX19jYWxsKCdpbmZvJyksXG4gICAgICAgIHdhcm46IF9fY2FsbCgnd2FybicpLFxuICAgICAgICBlcnJvcjogX19jYWxsKCdlcnJvcicpLFxuICAgICAgICBkZWJ1ZzogX19jYWxsKCdkZWJ1ZycpLFxuICAgICAgICB0cmFjZTogX19jYWxsKCd0cmFjZScpLFxuICAgICAgICBkaXI6IF9fY2FsbCgnZGlyJyksXG4gICAgICAgIGRpcnhtbDogX19jYWxsKCdkaXJ4bWwnKSxcbiAgICAgICAgdGFibGU6IF9fY2FsbCgndGFibGUnKSxcbiAgICAgICAgZ3JvdXA6IF9fY2FsbCgnZ3JvdXAnKSxcbiAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IF9fY2FsbCgnZ3JvdXBDb2xsYXBzZWQnKSxcbiAgICAgICAgZ3JvdXBFbmQ6IF9fY2FsbCgnZ3JvdXBFbmQnKSxcbiAgICAgICAgdGltZTogX19jYWxsKCd0aW1lJyksXG4gICAgICAgIHRpbWVFbmQ6IF9fY2FsbCgndGltZUVuZCcpLFxuICAgICAgICB0aW1lTG9nOiBfX2NhbGwoJ3RpbWVMb2cnKSxcbiAgICAgICAgYXNzZXJ0OiBfX2NhbGwoJ2Fzc2VydCcpLFxuICAgICAgICBjb3VudDogX19jYWxsKCdjb3VudCcpLFxuICAgICAgICBjb3VudFJlc2V0OiBfX2NhbGwoJ2NvdW50UmVzZXQnKSxcbiAgICAgICAgY2xlYXI6IF9fY2FsbCgnY2xlYXInKVxuICAgICAgfTtcbiAgICBgKTtcblxuICAgIGRpc3BhdGNoLnJlbGVhc2UoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executor for `core.flow.log` nodes.
|
|
3
|
+
*
|
|
4
|
+
* Reads the `value` input port, logs it through `context.log()`, and returns
|
|
5
|
+
* it unchanged on the `logged` output port.
|
|
6
|
+
*/
|
|
7
|
+
export class LogGraphNodeExecutor {
|
|
8
|
+
async execute(input, context) {
|
|
9
|
+
const value = input["value"];
|
|
10
|
+
await context.log("Log node", { value });
|
|
11
|
+
return { logged: value };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2V4ZWN1dGlvbi9Mb2dHcmFwaE5vZGVFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUEyQixFQUMzQixPQUE4QjtRQUU5QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL2V4ZWN1dGlvbi9Mb2dHcmFwaE5vZGVFeGVjdXRvclxuICogQHN1bW1hcnkgRXhlY3V0b3IgZm9yIHRoZSBMb2cgZmxvdy1jb250cm9sIG5vZGUuXG4gKiBAZGVzY3JpcHRpb24gTG9ncyB0aGUgaW5wdXQgdmFsdWUgdmlhIHRoZSBleGVjdXRpb24gY29udGV4dCdzIGxvZ2dlciBhbmRcbiAqIGZvcndhcmRzIGl0IHVuY2hhbmdlZCBvbiB0aGUgYGxvZ2dlZGAgb3V0cHV0IHBvcnQuIFVzZWZ1bCBmb3IgZGVidWdnaW5nLFxuICogYXVkaXQgdHJhaWxzLCBhbmQgZGlzY2FyZC9zaWRlLWVmZmVjdCBicmFuY2hlcyBpbiBhIHdvcmtmbG93LlxuICovXG5pbXBvcnQgdHlwZSB7IEdyYXBoTm9kZUV4ZWN1dG9yIH0gZnJvbSBcIi4vR3JhcGhOb2RlRXhlY3V0b3JcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogRXhlY3V0b3IgZm9yIGBjb3JlLmZsb3cubG9nYCBub2Rlcy5cbiAqXG4gKiBSZWFkcyB0aGUgYHZhbHVlYCBpbnB1dCBwb3J0LCBsb2dzIGl0IHRocm91Z2ggYGNvbnRleHQubG9nKClgLCBhbmQgcmV0dXJuc1xuICogaXQgdW5jaGFuZ2VkIG9uIHRoZSBgbG9nZ2VkYCBvdXRwdXQgcG9ydC5cbiAqL1xuZXhwb3J0IGNsYXNzIExvZ0dyYXBoTm9kZUV4ZWN1dG9yIGltcGxlbWVudHMgR3JhcGhOb2RlRXhlY3V0b3Ige1xuICBhc3luYyBleGVjdXRlKFxuICAgIGlucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxHcmFwaEV4ZWN1dGlvblZhbHVlcz4ge1xuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRbXCJ2YWx1ZVwiXTtcbiAgICBhd2FpdCBjb250ZXh0LmxvZyhcIkxvZyBub2RlXCIsIHsgdmFsdWUgfSk7XG4gICAgcmV0dXJuIHsgbG9nZ2VkOiB2YWx1ZSB9O1xuICB9XG59XG4iXX0=
|
|
@@ -2,18 +2,23 @@ import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
|
|
|
2
2
|
import { ConditionExpressionEvaluator } from "./../loops/ConditionExpressionEvaluator.js";
|
|
3
3
|
/**
|
|
4
4
|
* Reads the Switch metadata from the node definition's graph metadata.
|
|
5
|
+
*
|
|
6
|
+
* The metadata is stored under `graph.metadata.switch` (the location used by
|
|
7
|
+
* statically-declared `@node` workflows). When absent, falls back to an empty
|
|
8
|
+
* default with the `default` port enabled.
|
|
5
9
|
*/
|
|
6
10
|
function readSwitchMetadata(context) {
|
|
7
11
|
const meta = context.node.graph?.metadata;
|
|
8
12
|
if (!meta)
|
|
9
|
-
return { cases: [], defaultPort: "default" };
|
|
13
|
+
return { cases: [], defaultPort: "default", hasDefault: true };
|
|
10
14
|
const switchMeta = meta["switch"];
|
|
11
15
|
if (!switchMeta || !Array.isArray(switchMeta.cases)) {
|
|
12
|
-
return { cases: [], defaultPort: "default" };
|
|
16
|
+
return { cases: [], defaultPort: "default", hasDefault: true };
|
|
13
17
|
}
|
|
14
18
|
return {
|
|
15
19
|
cases: switchMeta.cases,
|
|
16
20
|
defaultPort: switchMeta.defaultPort ?? "default",
|
|
21
|
+
hasDefault: switchMeta.hasDefault !== false,
|
|
17
22
|
};
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
@@ -38,8 +43,9 @@ function isConditionExpression(cond) {
|
|
|
38
43
|
* Executor for `core.flow.switch` nodes.
|
|
39
44
|
*
|
|
40
45
|
* Evaluates each case's condition in order and routes the input to the
|
|
41
|
-
* first matching case's output port. When no case matches
|
|
42
|
-
* `default` output port.
|
|
46
|
+
* first matching case's output port. When no case matches:
|
|
47
|
+
* - If `hasDefault` is `true` (or omitted), routes to the `default` output port.
|
|
48
|
+
* - If `hasDefault` is `false`, returns an empty output (the input is dropped).
|
|
43
49
|
*
|
|
44
50
|
* Condition evaluation:
|
|
45
51
|
* - `ConditionExpression` — evaluated via {@link ConditionExpressionEvaluator}.
|
|
@@ -61,6 +67,10 @@ export class SwitchGraphNodeExecutor {
|
|
|
61
67
|
return { [switchCase.outputPort]: inputValue };
|
|
62
68
|
}
|
|
63
69
|
}
|
|
70
|
+
// No case matched — route to the default port when it is enabled.
|
|
71
|
+
if (meta.hasDefault === false) {
|
|
72
|
+
return {};
|
|
73
|
+
}
|
|
64
74
|
const defaultPort = meta.defaultPort ?? "default";
|
|
65
75
|
return { [defaultPort]: inputValue };
|
|
66
76
|
}
|
|
@@ -87,12 +97,19 @@ export class SwitchGraphNodeExecutor {
|
|
|
87
97
|
await context.log(`Evaluating code condition`, {
|
|
88
98
|
language: condition.language ?? "javascript",
|
|
89
99
|
});
|
|
100
|
+
const md = context.metadata;
|
|
90
101
|
const result = await evaluator.evaluate({
|
|
91
102
|
code: condition.code,
|
|
92
103
|
language: condition.language,
|
|
93
104
|
input,
|
|
105
|
+
vars: md?.vars ?? undefined,
|
|
106
|
+
item: md?.item,
|
|
107
|
+
index: md?.index,
|
|
108
|
+
nodes: md?.nodes ??
|
|
109
|
+
undefined,
|
|
110
|
+
logger: context.logger,
|
|
94
111
|
});
|
|
95
112
|
return !!result;
|
|
96
113
|
}
|
|
97
114
|
}
|
|
98
|
-
//# sourceMappingURL=SwitchGraphNodeExecutor.js.map
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dpdGNoR3JhcGhOb2RlRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2V4ZWN1dGlvbi9Td2l0Y2hHcmFwaE5vZGVFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDJDQUFzQztBQUNwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsbURBQThDO0FBR3JGOzs7Ozs7R0FNRztBQUNILFNBQVMsa0JBQWtCLENBQ3pCLE9BQThCO0lBRTlCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBRXBCLENBQUM7SUFDZCxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQW1DLENBQUM7SUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUNELE9BQU87UUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7UUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksU0FBUztRQUNoRCxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsS0FBSyxLQUFLO0tBQzVDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxJQUF5QjtJQUNoRCxPQUFPLENBQ0wsT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN4QixJQUFJLEtBQUss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QUMsUUFBK0MsQ0FBQztRQUVuRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtZQUM1QixLQUFLO1lBQ0wsSUFBSSxFQUFHLEVBQUUsRUFBRSxJQUE0QyxJQUFJLFNBQVM7WUFDcEUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUEyQjtZQUN0QyxLQUFLLEVBQ0YsRUFBRSxFQUFFLEtBQTZEO2dCQUNsRSxTQUFTO1lBQ1gsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUVIO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvZXhlY3V0aW9uL1N3aXRjaEdyYXBoTm9kZUV4ZWN1dG9yXG4gKiBAc3VtbWFyeSBFeGVjdXRvciBmb3IgdGhlIFN3aXRjaCBmbG93LWNvbnRyb2wgbm9kZSAoREVDQUYtMzIgwqcyMi4yLjIpLlxuICogQGRlc2NyaXB0aW9uIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gYWdhaW5zdCB0aGUgbm9kZSdzIGlucHV0IGFuZFxuICogcm91dGVzIHRoZSBpbnB1dCB0byB0aGUgZmlyc3QgbWF0Y2hpbmcgY2FzZSdzIG91dHB1dCBwb3J0LiBGYWxscyBiYWNrIHRvXG4gKiB0aGUgYGRlZmF1bHRgIG91dHB1dCB3aGVuIG5vIGNhc2UgbWF0Y2hlcy4gU3VwcG9ydHMgYm90aFxuICoge0BsaW5rIENvbmRpdGlvbkV4cHJlc3Npb259IChncmFwaGljYWwgbW9kZSkgYW5kIHtAbGluayBDb2RlQ29uZGl0aW9ufVxuICogKGNvZGUgbW9kZSB2aWEgdGhlIHBsdWdnYWJsZSB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9KS5cbiAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaE5vZGVFeGVjdXRvciB9IGZyb20gXCIuL0dyYXBoTm9kZUV4ZWN1dG9yXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBHcmFwaEV4ZWN1dGlvblZhbHVlcyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHR5cGUge1xuICBTd2l0Y2hDYXNlQ29uZGl0aW9uLFxuICBTd2l0Y2hOb2RlTWV0YWRhdGEsXG4gIENvbmRpdGlvbkV4cHJlc3Npb24sXG4gIENvZGVDb25kaXRpb24sXG59IGZyb20gXCIuLi8uLi9zaGFyZWQvdHlwZXNcIjtcbmltcG9ydCB7IEdyYXBoRXhlY3V0aW9uRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzL0dyYXBoRXhlY3V0aW9uRXJyb3JcIjtcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IgfSBmcm9tIFwiLi4vbG9vcHMvQ29uZGl0aW9uRXhwcmVzc2lvbkV2YWx1YXRvclwiO1xuaW1wb3J0IHR5cGUgeyBDb2RlU2FuZGJveEV2YWx1YXRvciB9IGZyb20gXCIuL0NvZGVTYW5kYm94RXZhbHVhdG9yXCI7XG5cbi8qKlxuICogUmVhZHMgdGhlIFN3aXRjaCBtZXRhZGF0YSBmcm9tIHRoZSBub2RlIGRlZmluaXRpb24ncyBncmFwaCBtZXRhZGF0YS5cbiAqXG4gKiBUaGUgbWV0YWRhdGEgaXMgc3RvcmVkIHVuZGVyIGBncmFwaC5tZXRhZGF0YS5zd2l0Y2hgICh0aGUgbG9jYXRpb24gdXNlZCBieVxuICogc3RhdGljYWxseS1kZWNsYXJlZCBgQG5vZGVgIHdvcmtmbG93cykuIFdoZW4gYWJzZW50LCBmYWxscyBiYWNrIHRvIGFuIGVtcHR5XG4gKiBkZWZhdWx0IHdpdGggdGhlIGBkZWZhdWx0YCBwb3J0IGVuYWJsZWQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRTd2l0Y2hNZXRhZGF0YShcbiAgY29udGV4dDogR3JhcGhFeGVjdXRpb25Db250ZXh0XG4pOiBTd2l0Y2hOb2RlTWV0YWRhdGEge1xuICBjb25zdCBtZXRhID0gY29udGV4dC5ub2RlLmdyYXBoPy5tZXRhZGF0YSBhc1xuICAgIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICB8IHVuZGVmaW5lZDtcbiAgaWYgKCFtZXRhKSByZXR1cm4geyBjYXNlczogW10sIGRlZmF1bHRQb3J0OiBcImRlZmF1bHRcIiwgaGFzRGVmYXVsdDogdHJ1ZSB9O1xuICBjb25zdCBzd2l0Y2hNZXRhID0gbWV0YVtcInN3aXRjaFwiXSBhcyBTd2l0Y2hOb2RlTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG4gIGlmICghc3dpdGNoTWV0YSB8fCAhQXJyYXkuaXNBcnJheShzd2l0Y2hNZXRhLmNhc2VzKSkge1xuICAgIHJldHVybiB7IGNhc2VzOiBbXSwgZGVmYXVsdFBvcnQ6IFwiZGVmYXVsdFwiLCBoYXNEZWZhdWx0OiB0cnVlIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBjYXNlczogc3dpdGNoTWV0YS5jYXNlcyxcbiAgICBkZWZhdWx0UG9ydDogc3dpdGNoTWV0YS5kZWZhdWx0UG9ydCA/PyBcImRlZmF1bHRcIixcbiAgICBoYXNEZWZhdWx0OiBzd2l0Y2hNZXRhLmhhc0RlZmF1bHQgIT09IGZhbHNlLFxuICB9O1xufVxuXG4vKipcbiAqIERldGVjdHMgd2hldGhlciBhIGNvbmRpdGlvbiBpcyBhIGBDb2RlQ29uZGl0aW9uYCAoaGFzIGB0eXBlOiBcImNvZGVcImApLlxuICovXG5mdW5jdGlvbiBpc0NvZGVDb25kaXRpb24oY29uZDogU3dpdGNoQ2FzZUNvbmRpdGlvbik6IGNvbmQgaXMgQ29kZUNvbmRpdGlvbiB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGNvbmQgPT09IFwib2JqZWN0XCIgJiZcbiAgICBjb25kICE9PSBudWxsICYmXG4gICAgXCJ0eXBlXCIgaW4gY29uZCAmJlxuICAgIGNvbmQudHlwZSA9PT0gXCJjb2RlXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBEZXRlY3RzIHdoZXRoZXIgYSBjb25kaXRpb24gaXMgYSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAgKGhhcyBgb3BgIGZpZWxkKS5cbiAqL1xuZnVuY3Rpb24gaXNDb25kaXRpb25FeHByZXNzaW9uKFxuICBjb25kOiBTd2l0Y2hDYXNlQ29uZGl0aW9uXG4pOiBjb25kIGlzIENvbmRpdGlvbkV4cHJlc3Npb24ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBjb25kID09PSBcIm9iamVjdFwiICYmXG4gICAgY29uZCAhPT0gbnVsbCAmJlxuICAgIFwib3BcIiBpbiBjb25kICYmXG4gICAgdHlwZW9mIGNvbmQub3AgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRvciBmb3IgYGNvcmUuZmxvdy5zd2l0Y2hgIG5vZGVzLlxuICpcbiAqIEV2YWx1YXRlcyBlYWNoIGNhc2UncyBjb25kaXRpb24gaW4gb3JkZXIgYW5kIHJvdXRlcyB0aGUgaW5wdXQgdG8gdGhlXG4gKiBmaXJzdCBtYXRjaGluZyBjYXNlJ3Mgb3V0cHV0IHBvcnQuIFdoZW4gbm8gY2FzZSBtYXRjaGVzOlxuICogLSBJZiBgaGFzRGVmYXVsdGAgaXMgYHRydWVgIChvciBvbWl0dGVkKSwgcm91dGVzIHRvIHRoZSBgZGVmYXVsdGAgb3V0cHV0IHBvcnQuXG4gKiAtIElmIGBoYXNEZWZhdWx0YCBpcyBgZmFsc2VgLCByZXR1cm5zIGFuIGVtcHR5IG91dHB1dCAodGhlIGlucHV0IGlzIGRyb3BwZWQpLlxuICpcbiAqIENvbmRpdGlvbiBldmFsdWF0aW9uOlxuICogLSBgQ29uZGl0aW9uRXhwcmVzc2lvbmAg4oCUIGV2YWx1YXRlZCB2aWEge0BsaW5rIENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3J9LlxuICogLSBgQ29kZUNvbmRpdGlvbmAg4oCUIGV2YWx1YXRlZCB2aWEgdGhlIHBsdWdnYWJsZSB7QGxpbmsgQ29kZVNhbmRib3hFdmFsdWF0b3J9XG4gKiAgIGZyb20gdGhlIGVuZ2luZSdzIGNvbmZpZy4gVGhyb3dzIGBHUkFQSF9DT0RFX1NBTkRCT1hfTk9UX0NPTkZJR1VSRURgXG4gKiAgIHdoZW4gbm8gZXZhbHVhdG9yIGlzIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTd2l0Y2hHcmFwaE5vZGVFeGVjdXRvciBpbXBsZW1lbnRzIEdyYXBoTm9kZUV4ZWN1dG9yIHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uRXZhbHVhdG9yID0gbmV3IENvbmRpdGlvbkV4cHJlc3Npb25FdmFsdWF0b3IoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVuZ2luZT86IHsgY29kZVNhbmRib3hFdmFsdWF0b3I/OiBDb2RlU2FuZGJveEV2YWx1YXRvciB9XG4gICkge31cblxuICBhc3luYyBleGVjdXRlKFxuICAgIGlucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxHcmFwaEV4ZWN1dGlvblZhbHVlcz4ge1xuICAgIGNvbnN0IG1ldGEgPSByZWFkU3dpdGNoTWV0YWRhdGEoY29udGV4dCk7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0W1widmFsdWVcIl0gPz8gaW5wdXQ7XG5cbiAgICBmb3IgKGNvbnN0IHN3aXRjaENhc2Ugb2YgbWV0YS5jYXNlcykge1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGF3YWl0IHRoaXMuZXZhbHVhdGVDb25kaXRpb24oXG4gICAgICAgIHN3aXRjaENhc2UuY29uZGl0aW9uLFxuICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB7IFtzd2l0Y2hDYXNlLm91dHB1dFBvcnRdOiBpbnB1dFZhbHVlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTm8gY2FzZSBtYXRjaGVkIOKAlCByb3V0ZSB0byB0aGUgZGVmYXVsdCBwb3J0IHdoZW4gaXQgaXMgZW5hYmxlZC5cbiAgICBpZiAobWV0YS5oYXNEZWZhdWx0ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UG9ydCA9IG1ldGEuZGVmYXVsdFBvcnQgPz8gXCJkZWZhdWx0XCI7XG4gICAgcmV0dXJuIHsgW2RlZmF1bHRQb3J0XTogaW5wdXRWYWx1ZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyBhIHNpbmdsZSBzd2l0Y2ggY2FzZSBjb25kaXRpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlQ29uZGl0aW9uKFxuICAgIGNvbmRpdGlvbjogU3dpdGNoQ2FzZUNvbmRpdGlvbixcbiAgICBpbnB1dFZhbHVlOiB1bmtub3duLFxuICAgIGZ1bGxJbnB1dDogR3JhcGhFeGVjdXRpb25WYWx1ZXMsXG4gICAgY29udGV4dDogR3JhcGhFeGVjdXRpb25Db250ZXh0XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmIChpc0NvZGVDb25kaXRpb24oY29uZGl0aW9uKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVDb2RlQ29uZGl0aW9uKGNvbmRpdGlvbiwgZnVsbElucHV0LCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoaXNDb25kaXRpb25FeHByZXNzaW9uKGNvbmRpdGlvbikpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoY29uZGl0aW9uLCBpbnB1dFZhbHVlKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgIFwiVW5rbm93biBzd2l0Y2ggY2FzZSBjb25kaXRpb24gdHlwZSDigJQgbXVzdCBiZSBDb25kaXRpb25FeHByZXNzaW9uIChvcCkgb3IgQ29kZUNvbmRpdGlvbiAodHlwZTogJ2NvZGUnKVwiLFxuICAgICAgXCJHUkFQSF9VTktOT1dOX1NXSVRDSF9DT05ESVRJT05cIixcbiAgICAgIHsgY29uZGl0aW9uIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlcyBhIGNvZGUgY29uZGl0aW9uIHZpYSB0aGUgcGx1Z2dhYmxlIHNhbmRib3ggZXZhbHVhdG9yLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBldmFsdWF0ZUNvZGVDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBDb2RlQ29uZGl0aW9uLFxuICAgIGlucHV0OiBHcmFwaEV4ZWN1dGlvblZhbHVlcyxcbiAgICBjb250ZXh0OiBHcmFwaEV4ZWN1dGlvbkNvbnRleHRcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZXZhbHVhdG9yID0gdGhpcy5lbmdpbmU/LmNvZGVTYW5kYm94RXZhbHVhdG9yO1xuICAgIGlmICghZXZhbHVhdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcbiAgICAgICAgXCJDb2RlIGNvbmRpdGlvbnMgcmVxdWlyZSBhIENvZGVTYW5kYm94RXZhbHVhdG9yIHRvIGJlIHJlZ2lzdGVyZWQgaW4gR3JhcGhFeGVjdXRpb25FbmdpbmVDb25maWcuY29kZVNhbmRib3hFdmFsdWF0b3JcIixcbiAgICAgICAgXCJHUkFQSF9DT0RFX1NBTkRCT1hfTk9UX0NPTkZJR1VSRURcIixcbiAgICAgICAgeyBjb2RlOiBjb25kaXRpb24uY29kZSB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGF3YWl0IGNvbnRleHQubG9nKGBFdmFsdWF0aW5nIGNvZGUgY29uZGl0aW9uYCwge1xuICAgICAgbGFuZ3VhZ2U6IGNvbmRpdGlvbi5sYW5ndWFnZSA/PyBcImphdmFzY3JpcHRcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IG1kID0gY29udGV4dC5tZXRhZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRvci5ldmFsdWF0ZSh7XG4gICAgICBjb2RlOiBjb25kaXRpb24uY29kZSxcbiAgICAgIGxhbmd1YWdlOiBjb25kaXRpb24ubGFuZ3VhZ2UsXG4gICAgICBpbnB1dCxcbiAgICAgIHZhcnM6IChtZD8udmFycyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCkgPz8gdW5kZWZpbmVkLFxuICAgICAgaXRlbTogbWQ/Lml0ZW0sXG4gICAgICBpbmRleDogbWQ/LmluZGV4IGFzIG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICAgIG5vZGVzOlxuICAgICAgICAobWQ/Lm5vZGVzIGFzIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB8IHVuZGVmaW5lZCkgPz9cbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgbG9nZ2VyOiBjb250ZXh0LmxvZ2dlciBhcyB1bmtub3duIGFzXG4gICAgICAgIHwgaW1wb3J0KFwiLi9Db2RlU2FuZGJveEV2YWx1YXRvclwiKS5TYW5kYm94TG9nZ2VyXG4gICAgICAgIHwgdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuICEhcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
@@ -10,4 +10,7 @@ export * from "./GraphExecutionFrame.js";
|
|
|
10
10
|
export * from "./GraphExecutionEngine.js";
|
|
11
11
|
export * from "./CodeSandboxEvaluator.js";
|
|
12
12
|
export * from "./SwitchGraphNodeExecutor.js";
|
|
13
|
-
|
|
13
|
+
export * from "./CodeGraphNodeExecutor.js";
|
|
14
|
+
export * from "./LogGraphNodeExecutor.js";
|
|
15
|
+
export * from "./IsolatedVmCodeSandboxEvaluator.js";
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZ3JhcGgvZW5naW5lL2V4ZWN1dGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsMkNBQXdDO0FBQ3hDLHVDQUFvQztBQUNwQywwQ0FBdUM7QUFDdkMseUNBQXNDO0FBQ3RDLDBDQUF1QztBQUN2QywwQ0FBdUM7QUFDdkMsNkNBQTBDO0FBQzFDLDJDQUF3QztBQUN4QywwQ0FBdUM7QUFDdkMsb0RBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9leGVjdXRpb25cbiAqIEBzdW1tYXJ5IEdyYXBoIGV4ZWN1dGlvbiBjb250ZXh0IGFuZCBleGVjdXRvciBpbnRlcmZhY2UuXG4gKiBAZGVzY3JpcHRpb24gUmUtZXhwb3J0cyB0aGUgZ3JhcGggZXhlY3V0aW9uIGNvbnRleHQgYW5kIG5vZGUgZXhlY3V0b3IgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvbkNvbnRleHRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTm9kZUV4ZWN1dG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblJlc3VsdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25GcmFtZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25FbmdpbmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0NvZGVTYW5kYm94RXZhbHVhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Td2l0Y2hHcmFwaE5vZGVFeGVjdXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vQ29kZUdyYXBoTm9kZUV4ZWN1dG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9Mb2dHcmFwaE5vZGVFeGVjdXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vSXNvbGF0ZWRWbUNvZGVTYW5kYm94RXZhbHVhdG9yXCI7XG4iXX0=
|