@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,136 @@
|
|
|
1
|
+
#include "isolate/environment.h"
|
|
2
|
+
#include "isolate/node_wrapper.h"
|
|
3
|
+
#include "isolate/platform_delegate.h"
|
|
4
|
+
#include "isolate/scheduler.h"
|
|
5
|
+
#include "isolate/util.h"
|
|
6
|
+
#include "lib/lockable.h"
|
|
7
|
+
#include "callback.h"
|
|
8
|
+
#include "context_handle.h"
|
|
9
|
+
#include "external_copy_handle.h"
|
|
10
|
+
#include "isolate_handle.h"
|
|
11
|
+
#include "lib_handle.h"
|
|
12
|
+
#include "native_module_handle.h"
|
|
13
|
+
#include "reference_handle.h"
|
|
14
|
+
#include "script_handle.h"
|
|
15
|
+
|
|
16
|
+
#include <memory>
|
|
17
|
+
#include <mutex>
|
|
18
|
+
|
|
19
|
+
using namespace v8;
|
|
20
|
+
|
|
21
|
+
namespace ivm {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The whole library is transferable so you can Inception the library into your isolates.
|
|
25
|
+
*/
|
|
26
|
+
class LibraryHandle : public TransferableHandle {
|
|
27
|
+
private:
|
|
28
|
+
class LibraryHandleTransferable : public Transferable {
|
|
29
|
+
public:
|
|
30
|
+
auto TransferIn() -> Local<Value> final {
|
|
31
|
+
return LibraryHandle::Get();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
public:
|
|
36
|
+
using DontFreezeInstance = void;
|
|
37
|
+
|
|
38
|
+
static auto Definition() -> Local<FunctionTemplate> {
|
|
39
|
+
return Inherit<TransferableHandle>(MakeClass(
|
|
40
|
+
"isolated_vm", nullptr,
|
|
41
|
+
"Callback", ClassHandle::GetFunctionTemplate<CallbackHandle>(),
|
|
42
|
+
"Context", ClassHandle::GetFunctionTemplate<ContextHandle>(),
|
|
43
|
+
"ExternalCopy", ClassHandle::GetFunctionTemplate<ExternalCopyHandle>(),
|
|
44
|
+
"Isolate", ClassHandle::GetFunctionTemplate<IsolateHandle>(),
|
|
45
|
+
"NativeModule", ClassHandle::GetFunctionTemplate<NativeModuleHandle>(),
|
|
46
|
+
"Reference", ClassHandle::GetFunctionTemplate<ReferenceHandle>(),
|
|
47
|
+
"Script", ClassHandle::GetFunctionTemplate<ScriptHandle>()
|
|
48
|
+
));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
auto TransferOut() -> std::unique_ptr<Transferable> final {
|
|
52
|
+
return std::make_unique<LibraryHandleTransferable>();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static auto Get() -> Local<Object> {
|
|
56
|
+
Local<Object> library = ClassHandle::NewInstance<LibraryHandle>().As<Object>();
|
|
57
|
+
auto context = Isolate::GetCurrent()->GetCurrentContext();
|
|
58
|
+
Unmaybe(library->Set(context, v8_symbol("lib"), ClassHandle::NewInstance<LibHandle>()));
|
|
59
|
+
|
|
60
|
+
// Freeze prototypes of all classes
|
|
61
|
+
auto prototype = HandleCast<Local<String>>("prototype");
|
|
62
|
+
auto freeze = [&](const char* name) {
|
|
63
|
+
auto fn = Unmaybe(library->Get(context, HandleCast<Local<String>>(name))).As<Function>();
|
|
64
|
+
auto proto = Unmaybe(fn->Get(context, prototype)).As<Object>();
|
|
65
|
+
proto->SetIntegrityLevel(context, IntegrityLevel::kFrozen);
|
|
66
|
+
};
|
|
67
|
+
freeze("Callback");
|
|
68
|
+
freeze("Context");
|
|
69
|
+
freeze("ExternalCopy");
|
|
70
|
+
freeze("Isolate");
|
|
71
|
+
freeze("NativeModule");
|
|
72
|
+
freeze("Reference");
|
|
73
|
+
freeze("Script");
|
|
74
|
+
|
|
75
|
+
// Also freeze this prototype
|
|
76
|
+
library->SetIntegrityLevel(context, IntegrityLevel::kFrozen);
|
|
77
|
+
library->GetPrototype().As<Object>()->SetIntegrityLevel(context, IntegrityLevel::kFrozen);
|
|
78
|
+
return library;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// Module entry point
|
|
83
|
+
std::atomic<bool> did_global_init{false};
|
|
84
|
+
// TODO(?): This is pointer / new is here so that these dtors don't get called when the module is
|
|
85
|
+
// being torn down. They end up invoking a bunch of v8 functions which fail because nodejs already
|
|
86
|
+
// shut down the platform.
|
|
87
|
+
struct IsolateHolderAndJoin {
|
|
88
|
+
std::shared_ptr<IsolateHolder> holder;
|
|
89
|
+
std::shared_ptr<IsolateDisposeWait> dispose_wait;
|
|
90
|
+
};
|
|
91
|
+
auto* default_isolates = new lockable_t<std::unordered_map<v8::Isolate*, IsolateHolderAndJoin>>;
|
|
92
|
+
extern "C"
|
|
93
|
+
void init(Local<Object> target) {
|
|
94
|
+
// Create default isolate env
|
|
95
|
+
Isolate* isolate = Isolate::GetCurrent();
|
|
96
|
+
Local<Context> context = isolate->GetCurrentContext();
|
|
97
|
+
// Maybe this would happen if you include the module from `vm`?
|
|
98
|
+
{
|
|
99
|
+
auto isolates = default_isolates->write();
|
|
100
|
+
assert(isolates->find(isolate) == isolates->end());
|
|
101
|
+
auto holder = IsolateEnvironment::New(isolate, context);
|
|
102
|
+
isolates->insert(std::make_pair(
|
|
103
|
+
isolate,
|
|
104
|
+
IsolateHolderAndJoin{holder, holder->GetIsolate()->GetDisposeWaitHandle()}
|
|
105
|
+
));
|
|
106
|
+
}
|
|
107
|
+
Unmaybe(target->Set(context, v8_symbol("ivm"), LibraryHandle::Get()));
|
|
108
|
+
|
|
109
|
+
node::AddEnvironmentCleanupHook(isolate, [](void* param) {
|
|
110
|
+
auto* isolate = static_cast<v8::Isolate*>(param);
|
|
111
|
+
auto it = default_isolates->read()->find(isolate);
|
|
112
|
+
it->second.holder->Release();
|
|
113
|
+
it->second.dispose_wait->Join();
|
|
114
|
+
default_isolates->write()->erase(isolate); // `it` might have changed, don't use it
|
|
115
|
+
}, isolate);
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
if (!did_global_init.exchange(true)) {
|
|
119
|
+
// These flags will override limits set through code. Since the main node isolate is already
|
|
120
|
+
// created we can reset these so they won't affect the isolates we make.
|
|
121
|
+
int argc = 4;
|
|
122
|
+
const char* flags[] = {
|
|
123
|
+
"--max-semi-space-size", "0",
|
|
124
|
+
"--max-old-space-size", "0"
|
|
125
|
+
};
|
|
126
|
+
V8::SetFlagsFromCommandLine(&argc, const_cast<char**>(flags), false);
|
|
127
|
+
|
|
128
|
+
PlatformDelegate::InitializeDelegate();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
} // namespace ivm
|
|
133
|
+
|
|
134
|
+
NODE_MODULE_INIT(/* exports, module, context */) {
|
|
135
|
+
ivm::init(exports);
|
|
136
|
+
}
|