@nocobase/plugin-workflow-javascript 2.1.0-beta.11 → 2.1.0-beta.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/externalVersion.js +4 -4
- package/dist/node_modules/isolated-vm/.clang-tidy +13 -0
- package/dist/node_modules/isolated-vm/.dockerignore +9 -0
- package/dist/node_modules/isolated-vm/Dockerfile.alpine +9 -0
- package/dist/node_modules/isolated-vm/Dockerfile.debian +12 -0
- package/dist/node_modules/isolated-vm/LICENSE +13 -0
- package/dist/node_modules/isolated-vm/binding.gyp +120 -0
- package/dist/node_modules/isolated-vm/include.js +3 -0
- package/dist/node_modules/isolated-vm/inspector-example.js +59 -0
- package/dist/node_modules/isolated-vm/isolated-vm.d.ts +820 -0
- package/dist/node_modules/isolated-vm/isolated-vm.js +1 -0
- package/dist/node_modules/isolated-vm/native-example/binding.gyp +23 -0
- package/dist/node_modules/isolated-vm/native-example/example.cc +61 -0
- package/dist/node_modules/isolated-vm/native-example/package.json +13 -0
- package/dist/node_modules/isolated-vm/native-example/usage.js +35 -0
- package/dist/node_modules/isolated-vm/out/isolated_vm.node +0 -0
- package/dist/node_modules/isolated-vm/package.json +1 -0
- package/dist/node_modules/isolated-vm/src/external_copy/error.h +33 -0
- package/dist/node_modules/isolated-vm/src/external_copy/external_copy.cc +509 -0
- package/dist/node_modules/isolated-vm/src/external_copy/external_copy.h +117 -0
- package/dist/node_modules/isolated-vm/src/external_copy/serializer.cc +85 -0
- package/dist/node_modules/isolated-vm/src/external_copy/serializer.h +136 -0
- package/dist/node_modules/isolated-vm/src/external_copy/serializer_nortti.cc +73 -0
- package/dist/node_modules/isolated-vm/src/external_copy/string.cc +124 -0
- package/dist/node_modules/isolated-vm/src/external_copy/string.h +28 -0
- package/dist/node_modules/isolated-vm/src/isolate/allocator.h +32 -0
- package/dist/node_modules/isolated-vm/src/isolate/allocator_nortti.cc +142 -0
- package/dist/node_modules/isolated-vm/src/isolate/class_handle.h +334 -0
- package/dist/node_modules/isolated-vm/src/isolate/cpu_profile_manager.cc +220 -0
- package/dist/node_modules/isolated-vm/src/isolate/cpu_profile_manager.h +100 -0
- package/dist/node_modules/isolated-vm/src/isolate/environment.cc +626 -0
- package/dist/node_modules/isolated-vm/src/isolate/environment.h +381 -0
- package/dist/node_modules/isolated-vm/src/isolate/executor.cc +198 -0
- package/dist/node_modules/isolated-vm/src/isolate/executor.h +183 -0
- package/dist/node_modules/isolated-vm/src/isolate/external.h +64 -0
- package/dist/node_modules/isolated-vm/src/isolate/functor_runners.h +97 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/array.h +145 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/callbacks.h +272 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/error.h +140 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/extract_params.h +145 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/handle_cast.h +257 -0
- package/dist/node_modules/isolated-vm/src/isolate/generic/read_option.h +47 -0
- package/dist/node_modules/isolated-vm/src/isolate/holder.cc +88 -0
- package/dist/node_modules/isolated-vm/src/isolate/holder.h +63 -0
- package/dist/node_modules/isolated-vm/src/isolate/inspector.cc +200 -0
- package/dist/node_modules/isolated-vm/src/isolate/inspector.h +70 -0
- package/dist/node_modules/isolated-vm/src/isolate/node_wrapper.h +15 -0
- package/dist/node_modules/isolated-vm/src/isolate/platform_delegate.cc +22 -0
- package/dist/node_modules/isolated-vm/src/isolate/platform_delegate.h +46 -0
- package/dist/node_modules/isolated-vm/src/isolate/remote_handle.h +164 -0
- package/dist/node_modules/isolated-vm/src/isolate/run_with_timeout.h +171 -0
- package/dist/node_modules/isolated-vm/src/isolate/runnable.h +29 -0
- package/dist/node_modules/isolated-vm/src/isolate/scheduler.cc +191 -0
- package/dist/node_modules/isolated-vm/src/isolate/scheduler.h +165 -0
- package/dist/node_modules/isolated-vm/src/isolate/specific.h +35 -0
- package/dist/node_modules/isolated-vm/src/isolate/stack_trace.cc +219 -0
- package/dist/node_modules/isolated-vm/src/isolate/stack_trace.h +24 -0
- package/dist/node_modules/isolated-vm/src/isolate/strings.h +127 -0
- package/dist/node_modules/isolated-vm/src/isolate/three_phase_task.cc +385 -0
- package/dist/node_modules/isolated-vm/src/isolate/three_phase_task.h +136 -0
- package/dist/node_modules/isolated-vm/src/isolate/transferable.h +15 -0
- package/dist/node_modules/isolated-vm/src/isolate/util.h +45 -0
- package/dist/node_modules/isolated-vm/src/isolate/v8_inspector_wrapper.h +12 -0
- package/dist/node_modules/isolated-vm/src/isolate/v8_version.h +12 -0
- package/dist/node_modules/isolated-vm/src/isolated_vm.h +71 -0
- package/dist/node_modules/isolated-vm/src/lib/covariant.h +50 -0
- package/dist/node_modules/isolated-vm/src/lib/lockable.h +178 -0
- package/dist/node_modules/isolated-vm/src/lib/suspend.h +106 -0
- package/dist/node_modules/isolated-vm/src/lib/thread_pool.cc +98 -0
- package/dist/node_modules/isolated-vm/src/lib/thread_pool.h +45 -0
- package/dist/node_modules/isolated-vm/src/lib/timer.cc +233 -0
- package/dist/node_modules/isolated-vm/src/lib/timer.h +36 -0
- package/dist/node_modules/isolated-vm/src/module/callback.cc +151 -0
- package/dist/node_modules/isolated-vm/src/module/callback.h +64 -0
- package/dist/node_modules/isolated-vm/src/module/context_handle.cc +241 -0
- package/dist/node_modules/isolated-vm/src/module/context_handle.h +35 -0
- package/dist/node_modules/isolated-vm/src/module/evaluation.cc +109 -0
- package/dist/node_modules/isolated-vm/src/module/evaluation.h +99 -0
- package/dist/node_modules/isolated-vm/src/module/external_copy_handle.cc +119 -0
- package/dist/node_modules/isolated-vm/src/module/external_copy_handle.h +64 -0
- package/dist/node_modules/isolated-vm/src/module/isolate.cc +136 -0
- package/dist/node_modules/isolated-vm/src/module/isolate_handle.cc +611 -0
- package/dist/node_modules/isolated-vm/src/module/isolate_handle.h +47 -0
- package/dist/node_modules/isolated-vm/src/module/lib_handle.cc +77 -0
- package/dist/node_modules/isolated-vm/src/module/lib_handle.h +28 -0
- package/dist/node_modules/isolated-vm/src/module/module_handle.cc +475 -0
- package/dist/node_modules/isolated-vm/src/module/module_handle.h +68 -0
- package/dist/node_modules/isolated-vm/src/module/native_module_handle.cc +104 -0
- package/dist/node_modules/isolated-vm/src/module/native_module_handle.h +49 -0
- package/dist/node_modules/isolated-vm/src/module/reference_handle.cc +636 -0
- package/dist/node_modules/isolated-vm/src/module/reference_handle.h +106 -0
- package/dist/node_modules/isolated-vm/src/module/script_handle.cc +107 -0
- package/dist/node_modules/isolated-vm/src/module/script_handle.h +37 -0
- package/dist/node_modules/isolated-vm/src/module/session_handle.cc +173 -0
- package/dist/node_modules/isolated-vm/src/module/session_handle.h +31 -0
- package/dist/node_modules/isolated-vm/src/module/transferable.cc +268 -0
- package/dist/node_modules/isolated-vm/src/module/transferable.h +42 -0
- package/dist/node_modules/isolated-vm/vendor/v8_inspector/nodejs_v18.0.0.h +360 -0
- package/dist/node_modules/isolated-vm/vendor/v8_inspector/nodejs_v18.3.0.h +376 -0
- package/dist/node_modules/isolated-vm/vendor/v8_inspector/nodejs_v20.0.0.h +397 -0
- package/dist/node_modules/isolated-vm/vendor/v8_inspector/nodejs_v22.0.0.h +419 -0
- package/dist/node_modules/winston-transport/package.json +1 -1
- package/dist/server/IsolatedVm.js +75 -0
- package/dist/server/ScriptInstruction.d.ts +6 -0
- package/dist/server/ScriptInstruction.js +11 -1
- package/dist/server/Vm.js +42 -27
- package/package.json +3 -2
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#include "native_module_handle.h"
|
|
2
|
+
#include "context_handle.h"
|
|
3
|
+
#include "reference_handle.h"
|
|
4
|
+
#include "isolate/environment.h"
|
|
5
|
+
#include "isolate/remote_handle.h"
|
|
6
|
+
#include "isolate/three_phase_task.h"
|
|
7
|
+
|
|
8
|
+
using namespace v8;
|
|
9
|
+
using std::shared_ptr;
|
|
10
|
+
using std::unique_ptr;
|
|
11
|
+
|
|
12
|
+
namespace ivm {
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* RAII wrapper around libuv dlopen
|
|
16
|
+
*/
|
|
17
|
+
NativeModule::NativeModule(const std::string& filename) : init(nullptr) {
|
|
18
|
+
if (!IsolateEnvironment::GetCurrent().IsDefault()) {
|
|
19
|
+
throw RuntimeGenericError("NativeModule may only be instantiated from default nodejs isolate");
|
|
20
|
+
}
|
|
21
|
+
if (uv_dlopen(filename.c_str(), &lib) != 0) {
|
|
22
|
+
throw RuntimeGenericError("Failed to load module");
|
|
23
|
+
}
|
|
24
|
+
if (uv_dlsym(&lib, "InitForContext", reinterpret_cast<void**>(&init)) != 0 || init == nullptr) {
|
|
25
|
+
uv_dlclose(&lib);
|
|
26
|
+
throw RuntimeGenericError("Module is not isolated-vm compatible");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
NativeModule::~NativeModule() {
|
|
31
|
+
uv_dlclose(&lib);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void NativeModule::InitForContext(Isolate* isolate, Local<Context> context, Local<Object> target) {
|
|
35
|
+
init(isolate, context, target);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Simple transferable logic so we can transfer native module handle between isolates
|
|
40
|
+
*/
|
|
41
|
+
NativeModuleHandle::NativeModuleTransferable::NativeModuleTransferable(shared_ptr<NativeModule> module) : module(std::move(module)) {}
|
|
42
|
+
|
|
43
|
+
auto NativeModuleHandle::NativeModuleTransferable::TransferIn() -> Local<Value> {
|
|
44
|
+
return ClassHandle::NewInstance<NativeModuleHandle>(module);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Native module JS API
|
|
49
|
+
*/
|
|
50
|
+
NativeModuleHandle::NativeModuleHandle(shared_ptr<NativeModule> module) : module(std::move(module)) {}
|
|
51
|
+
|
|
52
|
+
auto NativeModuleHandle::Definition() -> Local<FunctionTemplate> {
|
|
53
|
+
return Inherit<TransferableHandle>(MakeClass(
|
|
54
|
+
"NativeModule", ConstructorFunction<decltype(&New), &New>{},
|
|
55
|
+
"create", MemberFunction<decltype(&NativeModuleHandle::Create<1>), &NativeModuleHandle::Create<1>>{},
|
|
56
|
+
"createSync", MemberFunction<decltype(&NativeModuleHandle::Create<0>), &NativeModuleHandle::Create<0>>{}
|
|
57
|
+
));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
auto NativeModuleHandle::New(Local<String> value) -> unique_ptr<NativeModuleHandle> {
|
|
61
|
+
return std::make_unique<NativeModuleHandle>(
|
|
62
|
+
std::make_shared<NativeModule>(*String::Utf8Value{Isolate::GetCurrent(), value})
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
auto NativeModuleHandle::TransferOut() -> unique_ptr<Transferable> {
|
|
67
|
+
return std::make_unique<NativeModuleTransferable>(module);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
class CreateRunner : public ThreePhaseTask {
|
|
71
|
+
private:
|
|
72
|
+
RemoteHandle<Context> context;
|
|
73
|
+
shared_ptr<NativeModule> module;
|
|
74
|
+
unique_ptr<Transferable> result;
|
|
75
|
+
|
|
76
|
+
public:
|
|
77
|
+
CreateRunner(RemoteHandle<Context> context, shared_ptr<NativeModule> module) : context(std::move(context)), module(std::move(module)) {}
|
|
78
|
+
|
|
79
|
+
protected:
|
|
80
|
+
void Phase2() final {
|
|
81
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
82
|
+
Local<Context> context_handle = Deref(context);
|
|
83
|
+
Context::Scope context_scope(context_handle);
|
|
84
|
+
Local<Object> exports = Object::New(isolate);
|
|
85
|
+
module->InitForContext(isolate, context_handle, exports);
|
|
86
|
+
// Once a native module is imported into an isolate, that isolate holds a reference to the module forever
|
|
87
|
+
auto* ptr = module.get();
|
|
88
|
+
Executor::GetCurrentEnvironment()->native_modules.emplace(ptr, std::move(module));
|
|
89
|
+
result = std::make_unique<ReferenceHandleTransferable>(exports);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
auto Phase3() -> Local<Value> final {
|
|
93
|
+
return result->TransferIn();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
template <int async>
|
|
97
|
+
auto NativeModuleHandle::Create(class ContextHandle& context_handle) -> Local<Value> {
|
|
98
|
+
// TODO: This should probably throw from the promise, but ThreePhaseTask can't handle invalid
|
|
99
|
+
// isolate references for now.
|
|
100
|
+
auto context = context_handle.GetContext();
|
|
101
|
+
return ThreePhaseTask::Run<async, CreateRunner>(*context.GetIsolateHolder(), context, module);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
} // namespace ivm
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
#include <v8.h>
|
|
3
|
+
#include <uv.h>
|
|
4
|
+
|
|
5
|
+
#include <memory>
|
|
6
|
+
|
|
7
|
+
#include "transferable.h"
|
|
8
|
+
#include "context_handle.h"
|
|
9
|
+
#include "transferable.h"
|
|
10
|
+
|
|
11
|
+
namespace ivm {
|
|
12
|
+
|
|
13
|
+
class NativeModule {
|
|
14
|
+
private:
|
|
15
|
+
using init_t = void(*)(v8::Isolate *, v8::Local<v8::Context>, v8::Local<v8::Object>);
|
|
16
|
+
uv_lib_t lib;
|
|
17
|
+
init_t init;
|
|
18
|
+
|
|
19
|
+
public:
|
|
20
|
+
explicit NativeModule(const std::string& filename);
|
|
21
|
+
NativeModule(const NativeModule&) = delete;
|
|
22
|
+
auto operator= (const NativeModule&) -> NativeModule& = delete;
|
|
23
|
+
~NativeModule();
|
|
24
|
+
void InitForContext(v8::Isolate* isolate, v8::Local<v8::Context> context, v8::Local<v8::Object> target);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
class NativeModuleHandle : public TransferableHandle {
|
|
28
|
+
private:
|
|
29
|
+
class NativeModuleTransferable : public Transferable {
|
|
30
|
+
private:
|
|
31
|
+
std::shared_ptr<NativeModule> module;
|
|
32
|
+
public:
|
|
33
|
+
explicit NativeModuleTransferable(std::shared_ptr<NativeModule> module);
|
|
34
|
+
auto TransferIn() -> v8::Local<v8::Value> final;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
std::shared_ptr<NativeModule> module;
|
|
38
|
+
|
|
39
|
+
template <int async>
|
|
40
|
+
auto Create(ContextHandle& context_handle) -> v8::Local<v8::Value>;
|
|
41
|
+
|
|
42
|
+
public:
|
|
43
|
+
explicit NativeModuleHandle(std::shared_ptr<NativeModule> module);
|
|
44
|
+
static auto Definition() -> v8::Local<v8::FunctionTemplate>;
|
|
45
|
+
static auto New(v8::Local<v8::String> value) -> std::unique_ptr<NativeModuleHandle>;
|
|
46
|
+
auto TransferOut() -> std::unique_ptr<Transferable> final;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
} // namespace ivm
|