diff --git a/Directory.Packages.props b/Directory.Packages.props
index 711b1cdf2..560465af2 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -44,7 +44,7 @@
-
+
diff --git a/src/modules/Elsa.JavaScript/Handlers/ConfigureEngineWithCommonTypes.cs b/src/modules/Elsa.JavaScript/Handlers/ConfigureEngineWithCommonTypes.cs
index 3443dcb60..3a695f5ec 100644
--- a/src/modules/Elsa.JavaScript/Handlers/ConfigureEngineWithCommonTypes.cs
+++ b/src/modules/Elsa.JavaScript/Handlers/ConfigureEngineWithCommonTypes.cs
@@ -19,6 +19,7 @@ public class ConfigureEngineWithCommonTypes : INotificationHandler();
engine.RegisterType();
engine.RegisterType();
+ engine.RegisterType();
return Task.CompletedTask;
}
diff --git a/src/modules/Elsa.JavaScript/Providers/InputFunctionsDefinitionProvider.cs b/src/modules/Elsa.JavaScript/Providers/InputFunctionsDefinitionProvider.cs
index 67f66978e..cee375298 100644
--- a/src/modules/Elsa.JavaScript/Providers/InputFunctionsDefinitionProvider.cs
+++ b/src/modules/Elsa.JavaScript/Providers/InputFunctionsDefinitionProvider.cs
@@ -2,6 +2,7 @@ using Elsa.JavaScript.Contracts;
using Elsa.JavaScript.TypeDefinitions.Abstractions;
using Elsa.JavaScript.TypeDefinitions.Models;
using Elsa.Workflows.Activities;
+using Elsa.Workflows.Management;
using Humanizer;
using JetBrains.Annotations;
@@ -9,8 +10,7 @@ namespace Elsa.JavaScript.Providers;
/// Produces s for common functions.
[UsedImplicitly]
-internal class InputFunctionsDefinitionProvider(ITypeAliasRegistry typeAliasRegistry, IWorkflowDefinitionService workflowDefinitionService)
- : FunctionDefinitionProvider
+internal class InputFunctionsDefinitionProvider(ITypeAliasRegistry typeAliasRegistry) : FunctionDefinitionProvider
{
protected override ValueTask> GetFunctionDefinitionsAsync(TypeDefinitionContext context)
{
diff --git a/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs b/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs
index 36a7ac604..cece9a3a2 100644
--- a/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs
+++ b/src/modules/Elsa.JavaScript/Services/JintJavaScriptEvaluator.cs
@@ -1,5 +1,7 @@
+using System.Diagnostics.CodeAnalysis;
using System.Security.Cryptography;
using System.Text;
+using Acornima.Ast;
using Elsa.Expressions.Helpers;
using Elsa.Expressions.Models;
using Elsa.JavaScript.Contracts;
@@ -8,7 +10,6 @@ using Elsa.JavaScript.Notifications;
using Elsa.JavaScript.ObjectConverters;
using Elsa.JavaScript.Options;
using Elsa.Mediator.Contracts;
-using Esprima.Ast;
using Jint;
using Jint.Runtime.Interop;
using Microsoft.Extensions.Caching.Memory;
@@ -46,18 +47,13 @@ public class JintJavaScriptEvaluator(IConfiguration configuration, INotification
options ??= new ExpressionEvaluatorOptions();
var engineOptions = new Jint.Options();
- ;
if (_jintOptions.AllowClrAccess)
engineOptions.AllowClr();
- // Wrap objects in ObjectWrapper instances and set their prototype to Array.prototype if they are array-like.
- engineOptions.SetWrapObjectHandler((engine, target, type) =>
- {
- ConfigureClrAccess(opts);
- ConfigureObjectWrapper(opts);
- ConfigureObjectConverters(opts);
- });
+ ConfigureClrAccess(engineOptions);
+ ConfigureObjectWrapper(engineOptions);
+ ConfigureObjectConverters(engineOptions);
engineOptions.Interop.ObjectConverters.Add(new ByteArrayConverter());
diff --git a/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonTypesDefinitionProvider.cs b/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonTypesDefinitionProvider.cs
index af218a03b..33df93bb5 100644
--- a/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonTypesDefinitionProvider.cs
+++ b/src/modules/Elsa.JavaScript/TypeDefinitions/Providers/CommonTypesDefinitionProvider.cs
@@ -12,8 +12,8 @@ internal class CommonTypeDefinitionProvider(ITypeDescriber typeDescriber) : Type
{
protected override IEnumerable GetTypeDefinitions(TypeDefinitionContext context)
{
- yield return _typeDescriber.DescribeType(typeof(Guid));
- yield return _typeDescriber.DescribeType(typeof(JsonObject));
- yield return _typeDescriber.DescribeType(typeof(Random));
+ yield return typeDescriber.DescribeType(typeof(Guid));
+ yield return typeDescriber.DescribeType(typeof(JsonObject));
+ yield return typeDescriber.DescribeType(typeof(Random));
}
}
\ No newline at end of file
diff --git a/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/List/Endpoint.cs b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/List/Endpoint.cs
index 42059bfc7..7d5423695 100644
--- a/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/List/Endpoint.cs
+++ b/src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/List/Endpoint.cs
@@ -1,13 +1,12 @@
using Elsa.Abstractions;
using Elsa.Workflows.Contracts;
-using Elsa.Workflows.Management.Activities.WorkflowDefinitionActivity;
-using Elsa.Workflows.Management.Contracts;
+using Elsa.Workflows.Management;
using JetBrains.Annotations;
namespace Elsa.Workflows.Api.Endpoints.ActivityDescriptors.List;
[PublicAPI]
-internal class List(IActivityRegistry registry, IActivityRegistryPopulator registryPopulator, WorkflowDefinitionActivityProvider workflowDefinitionActivityProvider) : ElsaEndpointWithoutRequest
+internal class List(IActivityRegistry registry, IActivityRegistryPopulator registryPopulator) : ElsaEndpointWithoutRequest
{
public override void Configure()
{
diff --git a/src/modules/Elsa.Workflows.Runtime/Services/TaskReporter.cs b/src/modules/Elsa.Workflows.Runtime/Services/TaskReporter.cs
index 90ae08266..ac7f07cf7 100644
--- a/src/modules/Elsa.Workflows.Runtime/Services/TaskReporter.cs
+++ b/src/modules/Elsa.Workflows.Runtime/Services/TaskReporter.cs
@@ -1,25 +1,36 @@
+using Elsa.Workflows.Contracts;
+using Elsa.Workflows.Helpers;
using Elsa.Workflows.Runtime.Activities;
+using Elsa.Workflows.Runtime.Options;
using Elsa.Workflows.Runtime.Stimuli;
namespace Elsa.Workflows.Runtime;
///
-public class TaskReporter(IStimulusSender stimulusSender) : ITaskReporter
+public class TaskReporter(IBookmarkQueue stimulusSender, IStimulusHasher stimulusHasher) : ITaskReporter
{
+ private static readonly string ActivityTypeName = ActivityTypeNameHelper.GenerateTypeName();
+
///
public async Task ReportCompletionAsync(string taskId, object? result = default, CancellationToken cancellationToken = default)
{
- var bookmarkPayload = new RunTaskStimulus(taskId, default!);
+ var stimulus = new RunTaskStimulus(taskId, default!);
var input = new Dictionary
{
[RunTask.InputKey] = result!
};
- var sender = new StimulusMetadata
+ var bookmarkQueueItem = new NewBookmarkQueueItem
{
- Input = input,
+ ActivityTypeName = ActivityTypeName,
+ StimulusHash = stimulusHasher.Hash(ActivityTypeName, stimulus),
+ Options = new ResumeBookmarkOptions
+ {
+ Input = input
+ }
};
- await stimulusSender.SendAsync(bookmarkPayload, sender, cancellationToken: cancellationToken);
+
+ await stimulusSender.EnqueueAsync(bookmarkQueueItem, cancellationToken);
}
}
\ No newline at end of file