@encharm/cws 4.5.1 → 4.5.3
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/README.md +3 -5
- package/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node115.node.dSYM/Contents/Info.plist +20 -0
- package/dist/bindings/cws_darwin_arm64_node115.node.dSYM/Contents/Resources/DWARF/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node115.node.dSYM/Contents/Resources/Relocations/aarch64/cws_darwin_arm64_node115.node.yml +931 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node.dSYM/Contents/Info.plist +20 -0
- package/dist/bindings/cws_darwin_arm64_node127.node.dSYM/Contents/Resources/DWARF/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node.dSYM/Contents/Resources/Relocations/aarch64/cws_darwin_arm64_node127.node.yml +931 -0
- package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
- package/dist/bindings/cws_linux_x64_node137.node +0 -0
- package/dist/bindings/cws_win32_x64_node137.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +6 -1
- package/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/24/agent.h +195 -0
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -0
- package/src/headers/24/aliased_struct-inl.h +54 -0
- package/src/headers/24/aliased_struct.h +63 -0
- package/src/headers/24/amaro_version.h +6 -0
- package/src/headers/24/application.h +165 -0
- package/src/headers/24/async_context_frame.h +33 -0
- package/src/headers/24/async_wrap-inl.h +96 -0
- package/src/headers/24/async_wrap.h +244 -0
- package/src/headers/24/base_object-inl.h +330 -0
- package/src/headers/24/base_object.h +338 -0
- package/src/headers/24/base_object_types.h +74 -0
- package/src/headers/24/bindingdata.h +272 -0
- package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/24/blob_serializer_deserializer.h +132 -0
- package/src/headers/24/callback_queue-inl.h +97 -0
- package/src/headers/24/callback_queue.h +79 -0
- package/src/headers/24/cares_wrap.h +447 -0
- package/src/headers/24/child_process_permission.h +31 -0
- package/src/headers/24/cid.h +127 -0
- package/src/headers/24/cjs_module_lexer_version.h +6 -0
- package/src/headers/24/cleanup_queue-inl.h +36 -0
- package/src/headers/24/cleanup_queue.h +79 -0
- package/src/headers/24/compile_cache.h +113 -0
- package/src/headers/24/connect_wrap.h +26 -0
- package/src/headers/24/connection_wrap.h +30 -0
- package/src/headers/24/cppgc_helpers-inl.h +65 -0
- package/src/headers/24/cppgc_helpers.h +162 -0
- package/src/headers/24/crypto/crypto_aes.h +97 -0
- package/src/headers/24/crypto/crypto_argon2.h +86 -0
- package/src/headers/24/crypto/crypto_bio.h +193 -0
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/24/crypto/crypto_cipher.h +281 -0
- package/src/headers/24/crypto/crypto_clienthello-inl.h +90 -0
- package/src/headers/24/crypto/crypto_clienthello.h +131 -0
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/24/crypto/crypto_context.h +171 -0
- package/src/headers/24/crypto/crypto_dh.h +126 -0
- package/src/headers/24/crypto/crypto_dsa.h +50 -0
- package/src/headers/24/crypto/crypto_ec.h +163 -0
- package/src/headers/24/crypto/crypto_hash.h +89 -0
- package/src/headers/24/crypto/crypto_hkdf.h +61 -0
- package/src/headers/24/crypto/crypto_hmac.h +92 -0
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/24/crypto/crypto_keygen.h +290 -0
- package/src/headers/24/crypto/crypto_keys.h +392 -0
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/24/crypto/crypto_pbkdf2.h +74 -0
- package/src/headers/24/crypto/crypto_random.h +124 -0
- package/src/headers/24/crypto/crypto_rsa.h +136 -0
- package/src/headers/24/crypto/crypto_scrypt.h +85 -0
- package/src/headers/24/crypto/crypto_sig.h +156 -0
- package/src/headers/24/crypto/crypto_spkac.h +21 -0
- package/src/headers/24/crypto/crypto_timing.h +20 -0
- package/src/headers/24/crypto/crypto_tls.h +309 -0
- package/src/headers/24/crypto/crypto_util.h +598 -0
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/24/debug_utils-inl.h +232 -0
- package/src/headers/24/debug_utils.h +193 -0
- package/src/headers/24/defs.h +254 -0
- package/src/headers/24/diagnosticfilename-inl.h +33 -0
- package/src/headers/24/embedded_data.h +17 -0
- package/src/headers/24/encoding_binding.h +60 -0
- package/src/headers/24/endpoint.h +421 -0
- package/src/headers/24/env-inl.h +935 -0
- package/src/headers/24/env.h +1257 -0
- package/src/headers/24/env_properties.h +561 -0
- package/src/headers/24/fs_permission.h +167 -0
- package/src/headers/24/handle_wrap.h +123 -0
- package/src/headers/24/histogram-inl.h +107 -0
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/24/inspector_agent.h +165 -0
- package/src/headers/24/inspector_io.h +78 -0
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/24/inspector_profiler.h +149 -0
- package/src/headers/24/inspector_socket.h +60 -0
- package/src/headers/24/inspector_socket_server.h +110 -0
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/24/js_native_api.h +615 -0
- package/src/headers/24/js_native_api_types.h +211 -0
- package/src/headers/24/js_native_api_v8.h +485 -0
- package/src/headers/24/js_native_api_v8_internals.h +45 -0
- package/src/headers/24/js_stream.h +52 -0
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/24/json_utils.h +172 -0
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/24/memory_tracker-inl.h +454 -0
- package/src/headers/24/memory_tracker.h +333 -0
- package/src/headers/24/module_wrap.h +229 -0
- package/src/headers/24/ncrypto.h +1625 -0
- package/src/headers/24/network_agent.h +118 -0
- package/src/headers/24/network_inspector.h +45 -0
- package/src/headers/24/network_resource_manager.h +29 -0
- package/src/headers/24/node.h +1620 -0
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/24/node_api_types.h +52 -0
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/24/node_blob.h +159 -0
- package/src/headers/24/node_bob-inl.h +36 -0
- package/src/headers/24/node_bob.h +107 -0
- package/src/headers/24/node_buffer.h +92 -0
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/24/node_constants.h +82 -0
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/24/node_crypto.h +62 -0
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dir.h +52 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/24/node_errors.h +391 -0
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/24/node_external_reference.h +167 -0
- package/src/headers/24/node_file-inl.h +412 -0
- package/src/headers/24/node_file.h +540 -0
- package/src/headers/24/node_http2.h +1175 -0
- package/src/headers/24/node_http2_state.h +159 -0
- package/src/headers/24/node_http_common-inl.h +198 -0
- package/src/headers/24/node_http_common.h +535 -0
- package/src/headers/24/node_i18n.h +132 -0
- package/src/headers/24/node_internals.h +476 -0
- package/src/headers/24/node_json.h +24 -0
- package/src/headers/24/node_large_page.h +34 -0
- package/src/headers/24/node_locks.h +180 -0
- package/src/headers/24/node_main_instance.h +67 -0
- package/src/headers/24/node_mem-inl.h +112 -0
- package/src/headers/24/node_mem.h +45 -0
- package/src/headers/24/node_messaging.h +389 -0
- package/src/headers/24/node_metadata.h +164 -0
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/24/node_mutex.h +323 -0
- package/src/headers/24/node_object_wrap.h +132 -0
- package/src/headers/24/node_options-inl.h +524 -0
- package/src/headers/24/node_options.h +682 -0
- package/src/headers/24/node_perf.h +166 -0
- package/src/headers/24/node_perf_common.h +102 -0
- package/src/headers/24/node_platform.h +286 -0
- package/src/headers/24/node_process-inl.h +26 -0
- package/src/headers/24/node_process.h +111 -0
- package/src/headers/24/node_realm-inl.h +153 -0
- package/src/headers/24/node_realm.h +236 -0
- package/src/headers/24/node_report.h +43 -0
- package/src/headers/24/node_revert.h +82 -0
- package/src/headers/24/node_root_certs.h +3546 -0
- package/src/headers/24/node_sea.h +74 -0
- package/src/headers/24/node_shadow_realm.h +46 -0
- package/src/headers/24/node_snapshot_builder.h +57 -0
- package/src/headers/24/node_snapshotable.h +174 -0
- package/src/headers/24/node_sockaddr-inl.h +257 -0
- package/src/headers/24/node_sockaddr.h +394 -0
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/24/node_stat_watcher.h +73 -0
- package/src/headers/24/node_string.h +101 -0
- package/src/headers/24/node_task_runner.h +92 -0
- package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/24/node_threadsafe_cow.h +105 -0
- package/src/headers/24/node_trace_buffer.h +83 -0
- package/src/headers/24/node_trace_writer.h +75 -0
- package/src/headers/24/node_union_bytes.h +81 -0
- package/src/headers/24/node_url.h +101 -0
- package/src/headers/24/node_url_pattern.h +118 -0
- package/src/headers/24/node_v8.h +77 -0
- package/src/headers/24/node_v8_platform-inl.h +185 -0
- package/src/headers/24/node_version.h +110 -0
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/24/node_watchdog.h +154 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/24/node_worker.h +159 -0
- package/src/headers/24/packet.h +155 -0
- package/src/headers/24/path.h +33 -0
- package/src/headers/24/permission/addon_permission.h +31 -0
- package/src/headers/24/permission/child_process_permission.h +31 -0
- package/src/headers/24/permission/fs_permission.h +167 -0
- package/src/headers/24/permission/inspector_permission.h +31 -0
- package/src/headers/24/permission/permission.h +100 -0
- package/src/headers/24/permission/permission_base.h +65 -0
- package/src/headers/24/permission/wasi_permission.h +31 -0
- package/src/headers/24/permission/worker_permission.h +31 -0
- package/src/headers/24/permission.h +100 -0
- package/src/headers/24/permission_base.h +65 -0
- package/src/headers/24/pipe_wrap.h +80 -0
- package/src/headers/24/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/24/req_wrap-inl.h +176 -0
- package/src/headers/24/req_wrap.h +79 -0
- package/src/headers/24/runtime_agent.h +41 -0
- package/src/headers/24/session.h +528 -0
- package/src/headers/24/sessionticket.h +108 -0
- package/src/headers/24/spawn_sync.h +243 -0
- package/src/headers/24/stream_base-inl.h +173 -0
- package/src/headers/24/stream_base.h +478 -0
- package/src/headers/24/stream_pipe.h +76 -0
- package/src/headers/24/stream_wrap.h +132 -0
- package/src/headers/24/streams.h +370 -0
- package/src/headers/24/string_bytes.h +109 -0
- package/src/headers/24/string_decoder-inl.h +31 -0
- package/src/headers/24/string_decoder.h +49 -0
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/24/tcp_wrap.h +105 -0
- package/src/headers/24/threadpoolwork-inl.h +70 -0
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/24/timer_wrap.h +87 -0
- package/src/headers/24/timers.h +75 -0
- package/src/headers/24/tlscontext.h +228 -0
- package/src/headers/24/tokens.h +256 -0
- package/src/headers/24/trace_event.h +722 -0
- package/src/headers/24/trace_event_common.h +1109 -0
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing/agent.h +195 -0
- package/src/headers/24/tracing/trace_event.h +722 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/24/tty_wrap.h +65 -0
- package/src/headers/24/udp_wrap.h +230 -0
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/24/util-inl.h +711 -0
- package/src/headers/24/util.h +1016 -0
- package/src/headers/24/v8-external-memory-accounter.h +60 -0
- package/src/headers/24/v8-fast-api-calls.h +819 -0
- package/src/headers/24/v8-inspector.h +426 -0
- package/src/headers/24/wasi_permission.h +31 -0
- package/src/headers/24/worker_agent.h +40 -0
- package/src/headers/24/worker_inspector.h +124 -0
- package/src/headers/24/worker_permission.h +31 -0
- package/src/headers/24/zlib_version.h +6 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
#ifndef SRC_NODE_URL_H_
|
|
2
|
+
#define SRC_NODE_URL_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <cinttypes>
|
|
7
|
+
#include "ada.h"
|
|
8
|
+
#include "aliased_buffer.h"
|
|
9
|
+
#include "node.h"
|
|
10
|
+
#include "node_snapshotable.h"
|
|
11
|
+
#include "util.h"
|
|
12
|
+
#include "v8-fast-api-calls.h"
|
|
13
|
+
#include "v8.h"
|
|
14
|
+
|
|
15
|
+
#include <optional>
|
|
16
|
+
#include <string>
|
|
17
|
+
|
|
18
|
+
namespace node {
|
|
19
|
+
class ExternalReferenceRegistry;
|
|
20
|
+
|
|
21
|
+
namespace url {
|
|
22
|
+
|
|
23
|
+
enum url_update_action {
|
|
24
|
+
kProtocol = 0,
|
|
25
|
+
kHost = 1,
|
|
26
|
+
kHostname = 2,
|
|
27
|
+
kPort = 3,
|
|
28
|
+
kUsername = 4,
|
|
29
|
+
kPassword = 5,
|
|
30
|
+
kPathname = 6,
|
|
31
|
+
kSearch = 7,
|
|
32
|
+
kHash = 8,
|
|
33
|
+
kHref = 9,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
class BindingData : public SnapshotableObject {
|
|
37
|
+
public:
|
|
38
|
+
BindingData(Realm* realm, v8::Local<v8::Object> obj);
|
|
39
|
+
|
|
40
|
+
using InternalFieldInfo = InternalFieldInfoBase;
|
|
41
|
+
|
|
42
|
+
SERIALIZABLE_OBJECT_METHODS()
|
|
43
|
+
SET_BINDING_ID(url_binding_data)
|
|
44
|
+
|
|
45
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
46
|
+
SET_SELF_SIZE(BindingData)
|
|
47
|
+
SET_MEMORY_INFO_NAME(BindingData)
|
|
48
|
+
|
|
49
|
+
static void DomainToASCII(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
50
|
+
static void DomainToUnicode(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
51
|
+
|
|
52
|
+
static void CanParse(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
53
|
+
static bool FastCanParse(v8::Local<v8::Value> receiver,
|
|
54
|
+
v8::Local<v8::Value> input,
|
|
55
|
+
// NOLINTNEXTLINE(runtime/references) This is V8 api.
|
|
56
|
+
v8::FastApiCallbackOptions& options);
|
|
57
|
+
static bool FastCanParseWithBase(
|
|
58
|
+
v8::Local<v8::Value> receiver,
|
|
59
|
+
v8::Local<v8::Value> input,
|
|
60
|
+
v8::Local<v8::Value> base,
|
|
61
|
+
// NOLINTNEXTLINE(runtime/references) This is V8 api.
|
|
62
|
+
v8::FastApiCallbackOptions& options);
|
|
63
|
+
|
|
64
|
+
static void Format(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
65
|
+
static void GetOrigin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
66
|
+
static void Parse(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
67
|
+
static void PathToFileURL(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
68
|
+
static void Update(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
69
|
+
|
|
70
|
+
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
|
71
|
+
v8::Local<v8::ObjectTemplate> ctor);
|
|
72
|
+
static void CreatePerContextProperties(v8::Local<v8::Object> target,
|
|
73
|
+
v8::Local<v8::Value> unused,
|
|
74
|
+
v8::Local<v8::Context> context,
|
|
75
|
+
void* priv);
|
|
76
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
77
|
+
|
|
78
|
+
private:
|
|
79
|
+
static constexpr size_t kURLComponentsLength = 9;
|
|
80
|
+
AliasedUint32Array url_components_buffer_;
|
|
81
|
+
|
|
82
|
+
void UpdateComponents(const ada::url_components& components,
|
|
83
|
+
const ada::scheme::type type);
|
|
84
|
+
|
|
85
|
+
static v8::CFunction fast_can_parse_methods_[];
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
void ThrowInvalidURL(Environment* env,
|
|
89
|
+
std::string_view input,
|
|
90
|
+
std::optional<std::string> base);
|
|
91
|
+
std::string FromFilePath(std::string_view file_path);
|
|
92
|
+
std::optional<std::string> FileURLToPath(Environment* env,
|
|
93
|
+
const ada::url_aggregator& file_url);
|
|
94
|
+
|
|
95
|
+
} // namespace url
|
|
96
|
+
|
|
97
|
+
} // namespace node
|
|
98
|
+
|
|
99
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
100
|
+
|
|
101
|
+
#endif // SRC_NODE_URL_H_
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#ifndef SRC_NODE_URL_PATTERN_H_
|
|
2
|
+
#define SRC_NODE_URL_PATTERN_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "ada.h"
|
|
7
|
+
#include "base_object.h"
|
|
8
|
+
#include "util.h"
|
|
9
|
+
|
|
10
|
+
#include <v8.h>
|
|
11
|
+
|
|
12
|
+
#include <optional>
|
|
13
|
+
#include <string_view>
|
|
14
|
+
|
|
15
|
+
namespace node::url_pattern {
|
|
16
|
+
|
|
17
|
+
#define URL_PATTERN_COMPONENTS(V) \
|
|
18
|
+
V(Protocol, protocol) \
|
|
19
|
+
V(Username, username) \
|
|
20
|
+
V(Password, password) \
|
|
21
|
+
V(Hostname, hostname) \
|
|
22
|
+
V(Port, port) \
|
|
23
|
+
V(Pathname, pathname) \
|
|
24
|
+
V(Search, search) \
|
|
25
|
+
V(Hash, hash)
|
|
26
|
+
|
|
27
|
+
// By default, ada::url_pattern doesn't ship with any regex library.
|
|
28
|
+
// Ada has a std::regex implementation, but it is considered unsafe and does
|
|
29
|
+
// not have a fully compliant ecmascript syntax support. Therefore, Ada
|
|
30
|
+
// supports passing custom regex provider that conforms to the following
|
|
31
|
+
// class and function structure. For more information, please look into
|
|
32
|
+
// url_pattern_regex.h inside github.com/ada-url/ada.
|
|
33
|
+
class URLPatternRegexProvider {
|
|
34
|
+
public:
|
|
35
|
+
using regex_type = v8::Global<v8::RegExp>;
|
|
36
|
+
static std::optional<regex_type> create_instance(std::string_view pattern,
|
|
37
|
+
bool ignore_case);
|
|
38
|
+
static std::optional<std::vector<std::optional<std::string>>> regex_search(
|
|
39
|
+
std::string_view input, const regex_type& pattern);
|
|
40
|
+
static bool regex_match(std::string_view input, const regex_type& pattern);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
class URLPattern : public BaseObject {
|
|
44
|
+
public:
|
|
45
|
+
URLPattern(Environment* env,
|
|
46
|
+
v8::Local<v8::Object> object,
|
|
47
|
+
ada::url_pattern<URLPatternRegexProvider>&& url_pattern);
|
|
48
|
+
|
|
49
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
50
|
+
|
|
51
|
+
// V8 APIs
|
|
52
|
+
// - Functions
|
|
53
|
+
static void Exec(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
54
|
+
static void Test(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
55
|
+
// - Component Getters
|
|
56
|
+
#define URL_PATTERN_COMPONENT_GETTERS(name, _) \
|
|
57
|
+
static void name(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
58
|
+
URL_PATTERN_COMPONENTS(URL_PATTERN_COMPONENT_GETTERS)
|
|
59
|
+
#undef URL_PATTERN_COMPONENT_GETTERS
|
|
60
|
+
// - Has Regexp Groups
|
|
61
|
+
static void HasRegexpGroups(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
62
|
+
|
|
63
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
64
|
+
SET_MEMORY_INFO_NAME(URLPattern)
|
|
65
|
+
SET_SELF_SIZE(URLPattern)
|
|
66
|
+
|
|
67
|
+
class URLPatternInit {
|
|
68
|
+
public:
|
|
69
|
+
static std::optional<ada::url_pattern_init> FromJsObject(
|
|
70
|
+
Environment* env, v8::Local<v8::Object> obj);
|
|
71
|
+
static v8::MaybeLocal<v8::Value> ToJsObject(
|
|
72
|
+
Environment* env, const ada::url_pattern_init& init);
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
class URLPatternOptions {
|
|
76
|
+
public:
|
|
77
|
+
static std::optional<ada::url_pattern_options> FromJsObject(
|
|
78
|
+
Environment* env, v8::Local<v8::Object> obj);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
class URLPatternResult {
|
|
82
|
+
public:
|
|
83
|
+
static v8::MaybeLocal<v8::Value> ToJSValue(
|
|
84
|
+
Environment* env, const ada::url_pattern_result& result);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
class URLPatternComponentResult {
|
|
88
|
+
public:
|
|
89
|
+
static v8::MaybeLocal<v8::Object> ToJSObject(
|
|
90
|
+
Environment* env, const ada::url_pattern_component_result& result);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
private:
|
|
94
|
+
ada::url_pattern<URLPatternRegexProvider> url_pattern_;
|
|
95
|
+
// Getter methods
|
|
96
|
+
#define URL_PATTERN_COMPONENT_GETTERS(name, _) v8::MaybeLocal<v8::Value> name();
|
|
97
|
+
URL_PATTERN_COMPONENTS(URL_PATTERN_COMPONENT_GETTERS)
|
|
98
|
+
#undef URL_PATTERN_COMPONENT_GETTERS
|
|
99
|
+
bool HasRegExpGroups() const;
|
|
100
|
+
// Public API
|
|
101
|
+
v8::MaybeLocal<v8::Value> Exec(
|
|
102
|
+
Environment* env,
|
|
103
|
+
const ada::url_pattern_input& input,
|
|
104
|
+
std::optional<std::string_view>& baseURL); // NOLINT (runtime/references)
|
|
105
|
+
bool Test(
|
|
106
|
+
Environment* env,
|
|
107
|
+
const ada::url_pattern_input& input,
|
|
108
|
+
std::optional<std::string_view>& baseURL); // NOLINT (runtime/references)
|
|
109
|
+
|
|
110
|
+
#define URL_PATTERN_CACHED_VALUES(_, name) v8::Global<v8::Value> name;
|
|
111
|
+
URL_PATTERN_COMPONENTS(URL_PATTERN_CACHED_VALUES)
|
|
112
|
+
#undef URL_PATTERN_CACHED_VALUES
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
} // namespace node::url_pattern
|
|
116
|
+
|
|
117
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
118
|
+
#endif // SRC_NODE_URL_PATTERN_H_
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#ifndef SRC_NODE_V8_H_
|
|
2
|
+
#define SRC_NODE_V8_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <sstream>
|
|
7
|
+
#include "aliased_buffer.h"
|
|
8
|
+
#include "base_object.h"
|
|
9
|
+
#include "json_utils.h"
|
|
10
|
+
#include "node_snapshotable.h"
|
|
11
|
+
#include "util.h"
|
|
12
|
+
#include "v8.h"
|
|
13
|
+
|
|
14
|
+
namespace node {
|
|
15
|
+
class Environment;
|
|
16
|
+
struct InternalFieldInfoBase;
|
|
17
|
+
|
|
18
|
+
namespace v8_utils {
|
|
19
|
+
class BindingData : public SnapshotableObject {
|
|
20
|
+
public:
|
|
21
|
+
struct InternalFieldInfo : public node::InternalFieldInfoBase {
|
|
22
|
+
AliasedBufferIndex heap_statistics_buffer;
|
|
23
|
+
AliasedBufferIndex heap_space_statistics_buffer;
|
|
24
|
+
AliasedBufferIndex heap_code_statistics_buffer;
|
|
25
|
+
};
|
|
26
|
+
BindingData(Realm* realm,
|
|
27
|
+
v8::Local<v8::Object> obj,
|
|
28
|
+
InternalFieldInfo* info = nullptr);
|
|
29
|
+
|
|
30
|
+
SERIALIZABLE_OBJECT_METHODS()
|
|
31
|
+
SET_BINDING_ID(v8_binding_data)
|
|
32
|
+
|
|
33
|
+
AliasedFloat64Array heap_statistics_buffer;
|
|
34
|
+
AliasedFloat64Array heap_space_statistics_buffer;
|
|
35
|
+
AliasedFloat64Array heap_code_statistics_buffer;
|
|
36
|
+
|
|
37
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
38
|
+
SET_SELF_SIZE(BindingData)
|
|
39
|
+
SET_MEMORY_INFO_NAME(BindingData)
|
|
40
|
+
|
|
41
|
+
private:
|
|
42
|
+
InternalFieldInfo* internal_field_info_ = nullptr;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
class GCProfiler : public BaseObject {
|
|
46
|
+
public:
|
|
47
|
+
enum class GCProfilerState { kInitialized, kStarted, kStopped };
|
|
48
|
+
GCProfiler(Environment* env, v8::Local<v8::Object> object);
|
|
49
|
+
inline ~GCProfiler() override;
|
|
50
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
51
|
+
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
52
|
+
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
53
|
+
|
|
54
|
+
JSONWriter* writer();
|
|
55
|
+
|
|
56
|
+
std::ostringstream* out_stream();
|
|
57
|
+
|
|
58
|
+
SET_NO_MEMORY_INFO()
|
|
59
|
+
SET_MEMORY_INFO_NAME(GCProfiler)
|
|
60
|
+
SET_SELF_SIZE(GCProfiler)
|
|
61
|
+
|
|
62
|
+
uint64_t start_time;
|
|
63
|
+
uint8_t current_gc_type;
|
|
64
|
+
GCProfilerState state;
|
|
65
|
+
|
|
66
|
+
private:
|
|
67
|
+
std::ostringstream out_stream_;
|
|
68
|
+
JSONWriter writer_;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
} // namespace v8_utils
|
|
72
|
+
|
|
73
|
+
} // namespace node
|
|
74
|
+
|
|
75
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
76
|
+
|
|
77
|
+
#endif // SRC_NODE_V8_H_
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
#ifndef SRC_NODE_V8_PLATFORM_INL_H_
|
|
2
|
+
#define SRC_NODE_V8_PLATFORM_INL_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <memory>
|
|
7
|
+
#include <string_view>
|
|
8
|
+
|
|
9
|
+
#include "env-inl.h"
|
|
10
|
+
#include "node.h"
|
|
11
|
+
#include "node_metadata.h"
|
|
12
|
+
#include "node_platform.h"
|
|
13
|
+
#include "node_options.h"
|
|
14
|
+
#include "tracing/node_trace_writer.h"
|
|
15
|
+
#include "tracing/trace_event.h"
|
|
16
|
+
#include "tracing/traced_value.h"
|
|
17
|
+
#include "util.h"
|
|
18
|
+
|
|
19
|
+
namespace node {
|
|
20
|
+
|
|
21
|
+
// Ensures that __metadata trace events are only emitted
|
|
22
|
+
// when tracing is enabled.
|
|
23
|
+
class NodeTraceStateObserver
|
|
24
|
+
: public v8::TracingController::TraceStateObserver {
|
|
25
|
+
public:
|
|
26
|
+
inline void OnTraceEnabled() override {
|
|
27
|
+
std::string title = GetProcessTitle("");
|
|
28
|
+
if (!title.empty()) {
|
|
29
|
+
// Only emit the metadata event if the title can be retrieved
|
|
30
|
+
// successfully. Ignore it otherwise.
|
|
31
|
+
TRACE_EVENT_METADATA1(
|
|
32
|
+
"__metadata", "process_name", "name", TRACE_STR_COPY(title.c_str()));
|
|
33
|
+
}
|
|
34
|
+
TRACE_EVENT_METADATA1("__metadata",
|
|
35
|
+
"version",
|
|
36
|
+
"node",
|
|
37
|
+
per_process::metadata.versions.node.c_str());
|
|
38
|
+
TRACE_EVENT_METADATA1(
|
|
39
|
+
"__metadata", "thread_name", "name", "JavaScriptMainThread");
|
|
40
|
+
|
|
41
|
+
tracing::ProcessMeta trace_process;
|
|
42
|
+
TRACE_EVENT_METADATA1("__metadata",
|
|
43
|
+
"node",
|
|
44
|
+
"process",
|
|
45
|
+
tracing::CastTracedValue(trace_process));
|
|
46
|
+
// This only runs the first time tracing is enabled
|
|
47
|
+
controller_->RemoveTraceStateObserver(this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
inline void OnTraceDisabled() override {
|
|
51
|
+
// Do nothing here. This should never be called because the
|
|
52
|
+
// observer removes itself when OnTraceEnabled() is called.
|
|
53
|
+
UNREACHABLE();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
explicit NodeTraceStateObserver(v8::TracingController* controller)
|
|
57
|
+
: controller_(controller) {}
|
|
58
|
+
~NodeTraceStateObserver() override = default;
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
v8::TracingController* controller_;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
struct V8Platform {
|
|
65
|
+
bool initialized_ = false;
|
|
66
|
+
|
|
67
|
+
#if NODE_USE_V8_PLATFORM
|
|
68
|
+
inline void Initialize(int thread_pool_size) {
|
|
69
|
+
CHECK(!initialized_);
|
|
70
|
+
initialized_ = true;
|
|
71
|
+
tracing_agent_ = std::make_unique<tracing::Agent>();
|
|
72
|
+
node::tracing::TraceEventHelper::SetAgent(tracing_agent_.get());
|
|
73
|
+
node::tracing::TracingController* controller =
|
|
74
|
+
tracing_agent_->GetTracingController();
|
|
75
|
+
trace_state_observer_ =
|
|
76
|
+
std::make_unique<NodeTraceStateObserver>(controller);
|
|
77
|
+
controller->AddTraceStateObserver(trace_state_observer_.get());
|
|
78
|
+
tracing_file_writer_ = tracing_agent_->DefaultHandle();
|
|
79
|
+
// Only start the tracing agent if we enabled any tracing categories.
|
|
80
|
+
if (!per_process::cli_options->trace_event_categories.empty()) {
|
|
81
|
+
StartTracingAgent();
|
|
82
|
+
}
|
|
83
|
+
// Tracing must be initialized before platform threads are created.
|
|
84
|
+
platform_ = new NodePlatform(thread_pool_size, controller);
|
|
85
|
+
v8::V8::InitializePlatform(platform_);
|
|
86
|
+
}
|
|
87
|
+
// Make sure V8Platform don not call into Libuv threadpool,
|
|
88
|
+
// see DefaultProcessExitHandlerInternal in environment.cc
|
|
89
|
+
inline void Dispose() {
|
|
90
|
+
if (!initialized_)
|
|
91
|
+
return;
|
|
92
|
+
initialized_ = false;
|
|
93
|
+
node::tracing::TraceEventHelper::SetAgent(nullptr);
|
|
94
|
+
StopTracingAgent();
|
|
95
|
+
platform_->Shutdown();
|
|
96
|
+
delete platform_;
|
|
97
|
+
platform_ = nullptr;
|
|
98
|
+
// Destroy tracing after the platform (and platform threads) have been
|
|
99
|
+
// stopped.
|
|
100
|
+
tracing_agent_.reset(nullptr);
|
|
101
|
+
// The observer remove itself in OnTraceEnabled
|
|
102
|
+
trace_state_observer_.reset(nullptr);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
inline void DrainVMTasks(v8::Isolate* isolate) {
|
|
106
|
+
platform_->DrainTasks(isolate);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
inline void StartTracingAgent() {
|
|
110
|
+
constexpr auto convert_to_set =
|
|
111
|
+
[](auto& categories) -> std::set<std::string> {
|
|
112
|
+
std::set<std::string> out;
|
|
113
|
+
for (const auto& s : categories) {
|
|
114
|
+
out.emplace(std::string(s.data(), s.size()));
|
|
115
|
+
}
|
|
116
|
+
return out;
|
|
117
|
+
};
|
|
118
|
+
// Attach a new NodeTraceWriter only if this function hasn't been called
|
|
119
|
+
// before.
|
|
120
|
+
if (tracing_file_writer_.IsDefaultHandle()) {
|
|
121
|
+
using std::operator""sv;
|
|
122
|
+
auto categories = std::views::split(
|
|
123
|
+
per_process::cli_options->trace_event_categories, ","sv);
|
|
124
|
+
|
|
125
|
+
tracing_file_writer_ = tracing_agent_->AddClient(
|
|
126
|
+
convert_to_set(categories),
|
|
127
|
+
std::unique_ptr<tracing::AsyncTraceWriter>(
|
|
128
|
+
new tracing::NodeTraceWriter(
|
|
129
|
+
per_process::cli_options->trace_event_file_pattern)),
|
|
130
|
+
tracing::Agent::kUseDefaultCategories);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
inline void StopTracingAgent() { tracing_file_writer_.reset(); }
|
|
135
|
+
|
|
136
|
+
inline tracing::AgentWriterHandle* GetTracingAgentWriter() {
|
|
137
|
+
return &tracing_file_writer_;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
inline NodePlatform* Platform() { return platform_; }
|
|
141
|
+
|
|
142
|
+
std::unique_ptr<NodeTraceStateObserver> trace_state_observer_;
|
|
143
|
+
std::unique_ptr<tracing::Agent> tracing_agent_;
|
|
144
|
+
tracing::AgentWriterHandle tracing_file_writer_;
|
|
145
|
+
NodePlatform* platform_;
|
|
146
|
+
#else // !NODE_USE_V8_PLATFORM
|
|
147
|
+
inline void Initialize(int thread_pool_size) {}
|
|
148
|
+
inline void Dispose() {}
|
|
149
|
+
inline void DrainVMTasks(v8::Isolate* isolate) {}
|
|
150
|
+
inline void StartTracingAgent() {
|
|
151
|
+
if (!per_process::cli_options->trace_event_categories.empty()) {
|
|
152
|
+
fprintf(stderr,
|
|
153
|
+
"Node compiled with NODE_USE_V8_PLATFORM=0, "
|
|
154
|
+
"so event tracing is not available.\n");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
inline void StopTracingAgent() {}
|
|
158
|
+
|
|
159
|
+
inline tracing::AgentWriterHandle* GetTracingAgentWriter() { return nullptr; }
|
|
160
|
+
|
|
161
|
+
inline NodePlatform* Platform() { return nullptr; }
|
|
162
|
+
#endif // !NODE_USE_V8_PLATFORM
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
namespace per_process {
|
|
166
|
+
extern struct V8Platform v8_platform;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
inline void StartTracingAgent() {
|
|
170
|
+
return per_process::v8_platform.StartTracingAgent();
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
inline tracing::AgentWriterHandle* GetTracingAgentWriter() {
|
|
174
|
+
return per_process::v8_platform.GetTracingAgentWriter();
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
inline void DisposePlatform() {
|
|
178
|
+
per_process::v8_platform.Dispose();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
} // namespace node
|
|
182
|
+
|
|
183
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
184
|
+
|
|
185
|
+
#endif // SRC_NODE_V8_PLATFORM_INL_H_
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
+
//
|
|
3
|
+
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
+
// copy of this software and associated documentation files (the
|
|
5
|
+
// "Software"), to deal in the Software without restriction, including
|
|
6
|
+
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
+
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
// following conditions:
|
|
10
|
+
//
|
|
11
|
+
// The above copyright notice and this permission notice shall be included
|
|
12
|
+
// in all copies or substantial portions of the Software.
|
|
13
|
+
//
|
|
14
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
+
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
+
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
+
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
+
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
+
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
+
|
|
22
|
+
#ifndef SRC_NODE_VERSION_H_
|
|
23
|
+
#define SRC_NODE_VERSION_H_
|
|
24
|
+
|
|
25
|
+
#define NODE_MAJOR_VERSION 24
|
|
26
|
+
#define NODE_MINOR_VERSION 7
|
|
27
|
+
#define NODE_PATCH_VERSION 0
|
|
28
|
+
|
|
29
|
+
#define NODE_VERSION_IS_LTS 0
|
|
30
|
+
#define NODE_VERSION_LTS_CODENAME ""
|
|
31
|
+
|
|
32
|
+
#define NODE_VERSION_IS_RELEASE 1
|
|
33
|
+
|
|
34
|
+
#ifndef NODE_STRINGIFY
|
|
35
|
+
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
|
|
36
|
+
#define NODE_STRINGIFY_HELPER(n) #n
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
#ifndef NODE_RELEASE
|
|
40
|
+
#define NODE_RELEASE "node"
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#ifndef NODE_TAG
|
|
44
|
+
# if NODE_VERSION_IS_RELEASE
|
|
45
|
+
# define NODE_TAG ""
|
|
46
|
+
# else
|
|
47
|
+
# define NODE_TAG "-pre"
|
|
48
|
+
# endif
|
|
49
|
+
#else
|
|
50
|
+
// NODE_TAG is passed without quotes when rc.exe is run from msbuild
|
|
51
|
+
# define NODE_EXE_VERSION NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \
|
|
52
|
+
NODE_STRINGIFY(NODE_MINOR_VERSION) "." \
|
|
53
|
+
NODE_STRINGIFY(NODE_PATCH_VERSION) \
|
|
54
|
+
NODE_STRINGIFY(NODE_TAG)
|
|
55
|
+
#endif
|
|
56
|
+
|
|
57
|
+
# define NODE_VERSION_STRING NODE_STRINGIFY(NODE_MAJOR_VERSION) "." \
|
|
58
|
+
NODE_STRINGIFY(NODE_MINOR_VERSION) "." \
|
|
59
|
+
NODE_STRINGIFY(NODE_PATCH_VERSION) \
|
|
60
|
+
NODE_TAG
|
|
61
|
+
#ifndef NODE_EXE_VERSION
|
|
62
|
+
# define NODE_EXE_VERSION NODE_VERSION_STRING
|
|
63
|
+
#endif
|
|
64
|
+
|
|
65
|
+
#define NODE_VERSION "v" NODE_VERSION_STRING
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
#define NODE_VERSION_AT_LEAST(major, minor, patch) \
|
|
69
|
+
(( (major) < NODE_MAJOR_VERSION) \
|
|
70
|
+
|| ((major) == NODE_MAJOR_VERSION && (minor) < NODE_MINOR_VERSION) \
|
|
71
|
+
|| ((major) == NODE_MAJOR_VERSION && \
|
|
72
|
+
(minor) == NODE_MINOR_VERSION && (patch) <= NODE_PATCH_VERSION))
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Node.js will refuse to load modules that weren't compiled against its own
|
|
76
|
+
* module ABI number, exposed as the process.versions.modules property.
|
|
77
|
+
*
|
|
78
|
+
* Node.js will refuse to load modules with a non-matching ABI version. The
|
|
79
|
+
* version number here should be changed whenever an ABI-incompatible API change
|
|
80
|
+
* is made in the C++ side, including in V8 or other dependencies.
|
|
81
|
+
*
|
|
82
|
+
* Node.js will not change the module version during a Major release line
|
|
83
|
+
* We will, at times update the version of V8 shipped in the release line
|
|
84
|
+
* if it can be made ABI compatible with the previous version.
|
|
85
|
+
*
|
|
86
|
+
* Embedders building Node.js can define NODE_EMBEDDER_MODULE_VERSION to
|
|
87
|
+
* override the default value of NODE_MODULE_VERSION.
|
|
88
|
+
*
|
|
89
|
+
* The registry of used NODE_MODULE_VERSION numbers is located at
|
|
90
|
+
* https://github.com/nodejs/node/blob/HEAD/doc/abi_version_registry.json
|
|
91
|
+
* Extenders, embedders and other consumers of Node.js that require ABI
|
|
92
|
+
* version matching should open a pull request to reserve a number in this
|
|
93
|
+
* registry.
|
|
94
|
+
*/
|
|
95
|
+
#if defined(NODE_EMBEDDER_MODULE_VERSION)
|
|
96
|
+
#define NODE_MODULE_VERSION NODE_EMBEDDER_MODULE_VERSION
|
|
97
|
+
#else
|
|
98
|
+
#define NODE_MODULE_VERSION 137
|
|
99
|
+
#endif
|
|
100
|
+
|
|
101
|
+
// The NAPI_VERSION supported by the runtime. This is the inclusive range of
|
|
102
|
+
// versions which the Node.js binary being built supports.
|
|
103
|
+
#define NODE_API_SUPPORTED_VERSION_MAX 10
|
|
104
|
+
#define NODE_API_SUPPORTED_VERSION_MIN 1
|
|
105
|
+
|
|
106
|
+
// Node API modules use NAPI_VERSION 8 by default if it is not explicitly
|
|
107
|
+
// specified. It must be always 8.
|
|
108
|
+
#define NODE_API_DEFAULT_MODULE_API_VERSION 8
|
|
109
|
+
|
|
110
|
+
#endif // SRC_NODE_VERSION_H_
|