@kungfu-tech/libnode-win32-x64 22.22.3-kf.0 → 22.22.3-kf.1
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/node/include/acorn_version.h +6 -0
- package/dist/node/include/aliased_buffer-inl.h +244 -0
- package/dist/node/include/aliased_buffer.h +206 -0
- package/dist/node/include/aliased_struct-inl.h +54 -0
- package/dist/node/include/aliased_struct.h +63 -0
- package/dist/node/include/amaro_version.h +6 -0
- package/dist/node/include/async_context_frame.h +33 -0
- package/dist/node/include/async_wrap-inl.h +96 -0
- package/dist/node/include/async_wrap.h +243 -0
- package/dist/node/include/base_object-inl.h +335 -0
- package/dist/node/include/base_object.h +342 -0
- package/dist/node/include/base_object_types.h +74 -0
- package/dist/node/include/blob_serializer_deserializer-inl.h +385 -0
- package/dist/node/include/blob_serializer_deserializer.h +132 -0
- package/dist/node/include/callback_queue-inl.h +97 -0
- package/dist/node/include/callback_queue.h +79 -0
- package/dist/node/include/cares_wrap.h +447 -0
- package/dist/node/include/cjs_module_lexer_version.h +6 -0
- package/dist/node/include/cleanup_queue-inl.h +36 -0
- package/dist/node/include/cleanup_queue.h +79 -0
- package/dist/node/include/compile_cache.h +104 -0
- package/dist/node/include/connect_wrap.h +26 -0
- package/dist/node/include/connection_wrap.h +30 -0
- package/dist/node/include/cppgc/allocation.h +310 -0
- package/dist/node/include/cppgc/common.h +28 -0
- package/dist/node/include/cppgc/cross-thread-persistent.h +466 -0
- package/dist/node/include/cppgc/custom-space.h +97 -0
- package/dist/node/include/cppgc/default-platform.h +67 -0
- package/dist/node/include/cppgc/ephemeron-pair.h +30 -0
- package/dist/node/include/cppgc/explicit-management.h +100 -0
- package/dist/node/include/cppgc/garbage-collected.h +106 -0
- package/dist/node/include/cppgc/heap-consistency.h +309 -0
- package/dist/node/include/cppgc/heap-handle.h +48 -0
- package/dist/node/include/cppgc/heap-state.h +82 -0
- package/dist/node/include/cppgc/heap-statistics.h +120 -0
- package/dist/node/include/cppgc/heap.h +202 -0
- package/dist/node/include/cppgc/internal/api-constants.h +87 -0
- package/dist/node/include/cppgc/internal/atomic-entry-flag.h +48 -0
- package/dist/node/include/cppgc/internal/base-page-handle.h +45 -0
- package/dist/node/include/cppgc/internal/caged-heap-local-data.h +121 -0
- package/dist/node/include/cppgc/internal/caged-heap.h +68 -0
- package/dist/node/include/cppgc/internal/compiler-specific.h +38 -0
- package/dist/node/include/cppgc/internal/finalizer-trait.h +93 -0
- package/dist/node/include/cppgc/internal/gc-info.h +148 -0
- package/dist/node/include/cppgc/internal/logging.h +50 -0
- package/dist/node/include/cppgc/internal/member-storage.h +256 -0
- package/dist/node/include/cppgc/internal/name-trait.h +137 -0
- package/dist/node/include/cppgc/internal/persistent-node.h +214 -0
- package/dist/node/include/cppgc/internal/pointer-policies.h +243 -0
- package/dist/node/include/cppgc/internal/write-barrier.h +487 -0
- package/dist/node/include/cppgc/liveness-broker.h +78 -0
- package/dist/node/include/cppgc/macros.h +35 -0
- package/dist/node/include/cppgc/member.h +629 -0
- package/dist/node/include/cppgc/name-provider.h +65 -0
- package/dist/node/include/cppgc/object-size-trait.h +58 -0
- package/dist/node/include/cppgc/persistent.h +377 -0
- package/dist/node/include/cppgc/platform.h +163 -0
- package/dist/node/include/cppgc/prefinalizer.h +75 -0
- package/dist/node/include/cppgc/process-heap-statistics.h +36 -0
- package/dist/node/include/cppgc/sentinel-pointer.h +39 -0
- package/dist/node/include/cppgc/source-location.h +16 -0
- package/dist/node/include/cppgc/testing.h +106 -0
- package/dist/node/include/cppgc/trace-trait.h +128 -0
- package/dist/node/include/cppgc/type-traits.h +271 -0
- package/dist/node/include/cppgc/visitor.h +504 -0
- package/dist/node/include/crypto/crypto_aes.h +88 -0
- package/dist/node/include/crypto/crypto_bio.h +193 -0
- package/dist/node/include/crypto/crypto_cipher.h +293 -0
- package/dist/node/include/crypto/crypto_clienthello-inl.h +90 -0
- package/dist/node/include/crypto/crypto_clienthello.h +131 -0
- package/dist/node/include/crypto/crypto_common.h +64 -0
- package/dist/node/include/crypto/crypto_context.h +171 -0
- package/dist/node/include/crypto/crypto_dh.h +126 -0
- package/dist/node/include/crypto/crypto_dsa.h +52 -0
- package/dist/node/include/crypto/crypto_ec.h +164 -0
- package/dist/node/include/crypto/crypto_hash.h +91 -0
- package/dist/node/include/crypto/crypto_hkdf.h +61 -0
- package/dist/node/include/crypto/crypto_hmac.h +92 -0
- package/dist/node/include/crypto/crypto_keygen.h +299 -0
- package/dist/node/include/crypto/crypto_keys.h +392 -0
- package/dist/node/include/crypto/crypto_pbkdf2.h +74 -0
- package/dist/node/include/crypto/crypto_random.h +124 -0
- package/dist/node/include/crypto/crypto_rsa.h +136 -0
- package/dist/node/include/crypto/crypto_scrypt.h +85 -0
- package/dist/node/include/crypto/crypto_sig.h +165 -0
- package/dist/node/include/crypto/crypto_spkac.h +21 -0
- package/dist/node/include/crypto/crypto_timing.h +20 -0
- package/dist/node/include/crypto/crypto_tls.h +305 -0
- package/dist/node/include/crypto/crypto_util.h +725 -0
- package/dist/node/include/crypto/crypto_x509.h +140 -0
- package/dist/node/include/dataqueue/queue.h +306 -0
- package/dist/node/include/debug_utils-inl.h +278 -0
- package/dist/node/include/debug_utils.h +196 -0
- package/dist/node/include/diagnosticfilename-inl.h +33 -0
- package/dist/node/include/embedded_data.h +17 -0
- package/dist/node/include/encoding_binding.h +61 -0
- package/dist/node/include/env-inl.h +984 -0
- package/dist/node/include/env.h +1287 -0
- package/dist/node/include/env_properties.h +540 -0
- package/dist/node/include/handle_wrap.h +123 -0
- package/dist/node/include/histogram-inl.h +107 -0
- package/dist/node/include/histogram.h +279 -0
- package/dist/node/include/inspector/io_agent.h +30 -0
- package/dist/node/include/inspector/main_thread_interface.h +116 -0
- package/dist/node/include/inspector/network_agent.h +94 -0
- package/dist/node/include/inspector/network_inspector.h +45 -0
- package/dist/node/include/inspector/network_requests_buffer.h +195 -0
- package/dist/node/include/inspector/network_resource_manager.h +29 -0
- package/dist/node/include/inspector/node_json.h +24 -0
- package/dist/node/include/inspector/node_string.h +101 -0
- package/dist/node/include/inspector/protocol_helper.h +27 -0
- package/dist/node/include/inspector/runtime_agent.h +41 -0
- package/dist/node/include/inspector/target_agent.h +75 -0
- package/dist/node/include/inspector/tracing_agent.h +43 -0
- package/dist/node/include/inspector/worker_agent.h +40 -0
- package/dist/node/include/inspector/worker_inspector.h +124 -0
- package/dist/node/include/inspector_agent.h +165 -0
- package/dist/node/include/inspector_io.h +78 -0
- package/dist/node/include/inspector_profiler.h +149 -0
- package/dist/node/include/inspector_socket.h +60 -0
- package/dist/node/include/inspector_socket_server.h +110 -0
- package/dist/node/include/js_native_api.h +607 -0
- package/dist/node/include/js_native_api_types.h +226 -0
- package/dist/node/include/js_native_api_v8.h +485 -0
- package/dist/node/include/js_native_api_v8_internals.h +45 -0
- package/dist/node/include/js_stream.h +52 -0
- package/dist/node/include/json_utils.h +172 -0
- package/dist/node/include/large_pages/node_large_page.h +34 -0
- package/dist/node/include/libplatform/libplatform-export.h +29 -0
- package/dist/node/include/libplatform/libplatform.h +112 -0
- package/dist/node/include/libplatform/v8-tracing.h +333 -0
- package/dist/node/include/memory_tracker-inl.h +359 -0
- package/dist/node/include/memory_tracker.h +289 -0
- package/dist/node/include/module_wrap.h +216 -0
- package/dist/node/include/node.h +1593 -0
- package/dist/node/include/node_api.h +265 -0
- package/dist/node/include/node_api_internals.h +48 -0
- package/dist/node/include/node_api_types.h +56 -0
- package/dist/node/include/node_binding.h +161 -0
- package/dist/node/include/node_blob.h +159 -0
- package/dist/node/include/node_bob-inl.h +36 -0
- package/dist/node/include/node_bob.h +107 -0
- package/dist/node/include/node_buffer.h +92 -0
- package/dist/node/include/node_builtins.h +220 -0
- package/dist/node/include/node_config_file.h +46 -0
- package/dist/node/include/node_constants.h +82 -0
- package/dist/node/include/node_context_data.h +168 -0
- package/dist/node/include/node_contextify.h +204 -0
- package/dist/node/include/node_crypto.h +56 -0
- package/dist/node/include/node_debug.h +30 -0
- package/dist/node/include/node_dir.h +52 -0
- package/dist/node/include/node_dotenv.h +45 -0
- package/dist/node/include/node_errors.h +380 -0
- package/dist/node/include/node_exit_code.h +54 -0
- package/dist/node/include/node_external_reference.h +165 -0
- package/dist/node/include/node_file-inl.h +406 -0
- package/dist/node/include/node_file.h +537 -0
- package/dist/node/include/node_http2.h +1177 -0
- package/dist/node/include/node_http2_state.h +159 -0
- package/dist/node/include/node_http_common-inl.h +202 -0
- package/dist/node/include/node_http_common.h +535 -0
- package/dist/node/include/node_i18n.h +132 -0
- package/dist/node/include/node_internals.h +483 -0
- package/dist/node/include/node_main_instance.h +67 -0
- package/dist/node/include/node_mem-inl.h +113 -0
- package/dist/node/include/node_mem.h +45 -0
- package/dist/node/include/node_messaging.h +389 -0
- package/dist/node/include/node_metadata.h +164 -0
- package/dist/node/include/node_modules.h +91 -0
- package/dist/node/include/node_mutex.h +323 -0
- package/dist/node/include/node_object_wrap.h +132 -0
- package/dist/node/include/node_options-inl.h +490 -0
- package/dist/node/include/node_options.h +615 -0
- package/dist/node/include/node_perf.h +166 -0
- package/dist/node/include/node_perf_common.h +102 -0
- package/dist/node/include/node_platform.h +238 -0
- package/dist/node/include/node_process-inl.h +26 -0
- package/dist/node/include/node_process.h +112 -0
- package/dist/node/include/node_realm-inl.h +151 -0
- package/dist/node/include/node_realm.h +183 -0
- package/dist/node/include/node_report.h +43 -0
- package/dist/node/include/node_revert.h +82 -0
- package/dist/node/include/node_root_certs.h +3520 -0
- package/dist/node/include/node_sea.h +74 -0
- package/dist/node/include/node_shadow_realm.h +46 -0
- package/dist/node/include/node_snapshot_builder.h +57 -0
- package/dist/node/include/node_snapshotable.h +174 -0
- package/dist/node/include/node_sockaddr-inl.h +257 -0
- package/dist/node/include/node_sockaddr.h +394 -0
- package/dist/node/include/node_sqlite.h +270 -0
- package/dist/node/include/node_stat_watcher.h +73 -0
- package/dist/node/include/node_task_runner.h +92 -0
- package/dist/node/include/node_threadsafe_cow-inl.h +54 -0
- package/dist/node/include/node_threadsafe_cow.h +105 -0
- package/dist/node/include/node_union_bytes.h +81 -0
- package/dist/node/include/node_url.h +96 -0
- package/dist/node/include/node_v8.h +77 -0
- package/dist/node/include/node_v8_platform-inl.h +185 -0
- package/dist/node/include/node_version.h +110 -0
- package/dist/node/include/node_wasi.h +184 -0
- package/dist/node/include/node_wasm_web_api.h +55 -0
- package/dist/node/include/node_watchdog.h +154 -0
- package/dist/node/include/node_webstorage.h +60 -0
- package/dist/node/include/node_worker.h +158 -0
- package/dist/node/include/path.h +33 -0
- package/dist/node/include/permission/addon_permission.h +31 -0
- package/dist/node/include/permission/child_process_permission.h +31 -0
- package/dist/node/include/permission/fs_permission.h +167 -0
- package/dist/node/include/permission/inspector_permission.h +31 -0
- package/dist/node/include/permission/permission.h +138 -0
- package/dist/node/include/permission/permission_base.h +65 -0
- package/dist/node/include/permission/wasi_permission.h +31 -0
- package/dist/node/include/permission/worker_permission.h +31 -0
- package/dist/node/include/pipe_wrap.h +80 -0
- package/dist/node/include/quic/application.h +159 -0
- package/dist/node/include/quic/bindingdata.h +272 -0
- package/dist/node/include/quic/cid.h +127 -0
- package/dist/node/include/quic/data.h +148 -0
- package/dist/node/include/quic/defs.h +245 -0
- package/dist/node/include/quic/endpoint.h +458 -0
- package/dist/node/include/quic/http3.h +15 -0
- package/dist/node/include/quic/logstream.h +81 -0
- package/dist/node/include/quic/packet.h +152 -0
- package/dist/node/include/quic/preferredaddress.h +72 -0
- package/dist/node/include/quic/session.h +443 -0
- package/dist/node/include/quic/sessionticket.h +108 -0
- package/dist/node/include/quic/streams.h +232 -0
- package/dist/node/include/quic/tlscontext.h +227 -0
- package/dist/node/include/quic/tokens.h +256 -0
- package/dist/node/include/quic/transportparams.h +165 -0
- package/dist/node/include/req_wrap-inl.h +171 -0
- package/dist/node/include/req_wrap.h +77 -0
- package/dist/node/include/spawn_sync.h +243 -0
- package/dist/node/include/stream_base-inl.h +173 -0
- package/dist/node/include/stream_base.h +478 -0
- package/dist/node/include/stream_pipe.h +76 -0
- package/dist/node/include/stream_wrap.h +132 -0
- package/dist/node/include/string_bytes.h +113 -0
- package/dist/node/include/string_decoder-inl.h +31 -0
- package/dist/node/include/string_decoder.h +49 -0
- package/dist/node/include/tcp_wrap.h +105 -0
- package/dist/node/include/threadpoolwork-inl.h +70 -0
- package/dist/node/include/timer_wrap-inl.h +32 -0
- package/dist/node/include/timer_wrap.h +85 -0
- package/dist/node/include/timers.h +70 -0
- package/dist/node/include/tracing/agent.h +195 -0
- package/dist/node/include/tracing/node_trace_buffer.h +83 -0
- package/dist/node/include/tracing/node_trace_writer.h +75 -0
- package/dist/node/include/tracing/trace_event.h +722 -0
- package/dist/node/include/tracing/trace_event_common.h +1109 -0
- package/dist/node/include/tracing/traced_value.h +129 -0
- package/dist/node/include/tty_wrap.h +65 -0
- package/dist/node/include/udp_wrap.h +230 -0
- package/dist/node/include/undici_version.h +6 -0
- package/dist/node/include/util-inl.h +700 -0
- package/dist/node/include/util.h +1021 -0
- package/dist/node/include/uv/aix.h +32 -0
- package/dist/node/include/uv/bsd.h +34 -0
- package/dist/node/include/uv/darwin.h +61 -0
- package/dist/node/include/uv/errno.h +483 -0
- package/dist/node/include/uv/linux.h +34 -0
- package/dist/node/include/uv/os390.h +33 -0
- package/dist/node/include/uv/posix.h +31 -0
- package/dist/node/include/uv/sunos.h +44 -0
- package/dist/node/include/uv/threadpool.h +37 -0
- package/dist/node/include/uv/tree.h +521 -0
- package/dist/node/include/uv/unix.h +512 -0
- package/dist/node/include/uv/version.h +43 -0
- package/dist/node/include/uv/win.h +698 -0
- package/dist/node/include/uv.h +1990 -0
- package/dist/node/include/v8-array-buffer.h +525 -0
- package/dist/node/include/v8-callbacks.h +462 -0
- package/dist/node/include/v8-container.h +183 -0
- package/dist/node/include/v8-context.h +485 -0
- package/dist/node/include/v8-cppgc.h +245 -0
- package/dist/node/include/v8-data.h +80 -0
- package/dist/node/include/v8-date.h +48 -0
- package/dist/node/include/v8-debug.h +168 -0
- package/dist/node/include/v8-embedder-heap.h +82 -0
- package/dist/node/include/v8-embedder-state-scope.h +52 -0
- package/dist/node/include/v8-exception.h +223 -0
- package/dist/node/include/v8-extension.h +62 -0
- package/dist/node/include/v8-external.h +37 -0
- package/dist/node/include/v8-fast-api-calls.h +984 -0
- package/dist/node/include/v8-forward.h +82 -0
- package/dist/node/include/v8-function-callback.h +607 -0
- package/dist/node/include/v8-function.h +140 -0
- package/dist/node/include/v8-handle-base.h +137 -0
- package/dist/node/include/v8-initialization.h +289 -0
- package/dist/node/include/v8-inspector-protocol.h +13 -0
- package/dist/node/include/v8-inspector.h +419 -0
- package/dist/node/include/v8-internal.h +1397 -0
- package/dist/node/include/v8-isolate.h +1767 -0
- package/dist/node/include/v8-json.h +47 -0
- package/dist/node/include/v8-local-handle.h +758 -0
- package/dist/node/include/v8-locker.h +138 -0
- package/dist/node/include/v8-maybe.h +160 -0
- package/dist/node/include/v8-memory-span.h +198 -0
- package/dist/node/include/v8-message.h +233 -0
- package/dist/node/include/v8-metrics.h +264 -0
- package/dist/node/include/v8-microtask-queue.h +157 -0
- package/dist/node/include/v8-microtask.h +28 -0
- package/dist/node/include/v8-object.h +824 -0
- package/dist/node/include/v8-persistent-handle.h +582 -0
- package/dist/node/include/v8-platform.h +1358 -0
- package/dist/node/include/v8-primitive-object.h +118 -0
- package/dist/node/include/v8-primitive.h +877 -0
- package/dist/node/include/v8-profiler.h +1302 -0
- package/dist/node/include/v8-promise.h +174 -0
- package/dist/node/include/v8-proxy.h +50 -0
- package/dist/node/include/v8-regexp.h +106 -0
- package/dist/node/include/v8-script.h +904 -0
- package/dist/node/include/v8-snapshot.h +266 -0
- package/dist/node/include/v8-source-location.h +92 -0
- package/dist/node/include/v8-statistics.h +238 -0
- package/dist/node/include/v8-template.h +1297 -0
- package/dist/node/include/v8-traced-handle.h +432 -0
- package/dist/node/include/v8-typed-array.h +390 -0
- package/dist/node/include/v8-unwinder-state.h +31 -0
- package/dist/node/include/v8-unwinder.h +132 -0
- package/dist/node/include/v8-util.h +665 -0
- package/dist/node/include/v8-value-serializer-version.h +24 -0
- package/dist/node/include/v8-value-serializer.h +316 -0
- package/dist/node/include/v8-value.h +655 -0
- package/dist/node/include/v8-version-string.h +38 -0
- package/dist/node/include/v8-version.h +20 -0
- package/dist/node/include/v8-wasm-trap-handler-posix.h +31 -0
- package/dist/node/include/v8-wasm-trap-handler-win.h +28 -0
- package/dist/node/include/v8-wasm.h +201 -0
- package/dist/node/include/v8-weak-callback-info.h +80 -0
- package/dist/node/include/v8.h +88 -0
- package/dist/node/include/v8config.h +981 -0
- package/dist/node/include/zlib_version.h +6 -0
- package/dist/node/libnode.dll +0 -0
- package/dist/node/libnode.lib +0 -0
- package/dist/node/libnodebuildinfo.json +10 -0
- package/dist/node/link_node.lib +0 -0
- package/dist/node/link_node.node +0 -0
- package/libnode.release.json +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#ifndef SRC_NODE_BOB_INL_H_
|
|
2
|
+
#define SRC_NODE_BOB_INL_H_
|
|
3
|
+
|
|
4
|
+
#include "node_bob.h"
|
|
5
|
+
|
|
6
|
+
#include <functional>
|
|
7
|
+
|
|
8
|
+
namespace node {
|
|
9
|
+
namespace bob {
|
|
10
|
+
|
|
11
|
+
template <typename T>
|
|
12
|
+
int SourceImpl<T>::Pull(
|
|
13
|
+
Next<T> next,
|
|
14
|
+
int options,
|
|
15
|
+
T* data,
|
|
16
|
+
size_t count,
|
|
17
|
+
size_t max_count_hint) {
|
|
18
|
+
|
|
19
|
+
int status;
|
|
20
|
+
if (eos_) {
|
|
21
|
+
status = bob::Status::STATUS_EOS;
|
|
22
|
+
std::move(next)(status, nullptr, 0, [](size_t len) {});
|
|
23
|
+
return status;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
status = DoPull(std::move(next), options, data, count, max_count_hint);
|
|
27
|
+
|
|
28
|
+
if (status == bob::Status::STATUS_EOS) eos_ = true;
|
|
29
|
+
|
|
30
|
+
return status;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
} // namespace bob
|
|
34
|
+
} // namespace node
|
|
35
|
+
|
|
36
|
+
#endif // SRC_NODE_BOB_INL_H_
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#ifndef SRC_NODE_BOB_H_
|
|
2
|
+
#define SRC_NODE_BOB_H_
|
|
3
|
+
|
|
4
|
+
#include <functional>
|
|
5
|
+
|
|
6
|
+
namespace node {
|
|
7
|
+
namespace bob {
|
|
8
|
+
|
|
9
|
+
constexpr size_t kMaxCountHint = 16;
|
|
10
|
+
|
|
11
|
+
// Negative status codes indicate error conditions.
|
|
12
|
+
enum Status : int {
|
|
13
|
+
// Indicates that an attempt was made to pull after end.
|
|
14
|
+
STATUS_EOS = 0,
|
|
15
|
+
|
|
16
|
+
// Indicates that there is additional data available
|
|
17
|
+
// and the consumer may continue to pull.
|
|
18
|
+
STATUS_CONTINUE = 1,
|
|
19
|
+
|
|
20
|
+
// Indicates that there is no additional data available
|
|
21
|
+
// but the stream has not ended. The consumer should not
|
|
22
|
+
// continue to pull but may resume pulling later when
|
|
23
|
+
// data is available.
|
|
24
|
+
STATUS_BLOCK = 2,
|
|
25
|
+
|
|
26
|
+
// Indicates that there is no additional data available
|
|
27
|
+
// but the stream has not ended and the source will call
|
|
28
|
+
// next again later when data is available. STATUS_WAIT
|
|
29
|
+
// must not be used with the OPTIONS_SYNC option.
|
|
30
|
+
STATUS_WAIT = 3,
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
enum Options : int {
|
|
34
|
+
OPTIONS_NONE = 0,
|
|
35
|
+
|
|
36
|
+
// Indicates that the consumer is requesting the end
|
|
37
|
+
// of the stream.
|
|
38
|
+
OPTIONS_END = 1,
|
|
39
|
+
|
|
40
|
+
// Indicates that the consumer requires the source to
|
|
41
|
+
// invoke Next synchronously. If the source is
|
|
42
|
+
// unable to provide data immediately but the
|
|
43
|
+
// stream has not yet ended, it should call Next
|
|
44
|
+
// using STATUS_BLOCK. When not set, the source
|
|
45
|
+
// may call Next asynchronously.
|
|
46
|
+
OPTIONS_SYNC = 2
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// There are Sources and there are Consumers.
|
|
50
|
+
//
|
|
51
|
+
// Consumers get data by calling Source::Pull,
|
|
52
|
+
// optionally passing along a status and allocated
|
|
53
|
+
// buffer space for the source to fill, and a Next
|
|
54
|
+
// function the Source will call when data is
|
|
55
|
+
// available.
|
|
56
|
+
//
|
|
57
|
+
// The source calls Next to deliver the data. It can
|
|
58
|
+
// choose to either use the allocated buffer space
|
|
59
|
+
// provided by the consumer or it can allocate its own
|
|
60
|
+
// buffers and push those instead. If it allocates
|
|
61
|
+
// its own, it can send a Done function that the
|
|
62
|
+
// Sink will call when it is done consuming the data.
|
|
63
|
+
using Done = std::function<void(size_t)>;
|
|
64
|
+
template <typename T>
|
|
65
|
+
using Next = std::function<void(int, const T*, size_t count, Done done)>;
|
|
66
|
+
|
|
67
|
+
template <typename T>
|
|
68
|
+
class Source {
|
|
69
|
+
public:
|
|
70
|
+
virtual ~Source() = default;
|
|
71
|
+
virtual int Pull(
|
|
72
|
+
Next<T> next,
|
|
73
|
+
int options,
|
|
74
|
+
T* data,
|
|
75
|
+
size_t count,
|
|
76
|
+
size_t max_count_hint = kMaxCountHint) = 0;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
template <typename T>
|
|
81
|
+
class SourceImpl : public Source<T> {
|
|
82
|
+
public:
|
|
83
|
+
int Pull(
|
|
84
|
+
Next<T> next,
|
|
85
|
+
int options,
|
|
86
|
+
T* data,
|
|
87
|
+
size_t count,
|
|
88
|
+
size_t max_count_hint = kMaxCountHint) override;
|
|
89
|
+
|
|
90
|
+
bool is_eos() const { return eos_; }
|
|
91
|
+
|
|
92
|
+
protected:
|
|
93
|
+
virtual int DoPull(
|
|
94
|
+
Next<T> next,
|
|
95
|
+
int options,
|
|
96
|
+
T* data,
|
|
97
|
+
size_t count,
|
|
98
|
+
size_t max_count_hint) = 0;
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
bool eos_ = false;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
} // namespace bob
|
|
105
|
+
} // namespace node
|
|
106
|
+
|
|
107
|
+
#endif // SRC_NODE_BOB_H_
|
|
@@ -0,0 +1,92 @@
|
|
|
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_BUFFER_H_
|
|
23
|
+
#define SRC_NODE_BUFFER_H_
|
|
24
|
+
|
|
25
|
+
#include "node.h"
|
|
26
|
+
#include "v8.h"
|
|
27
|
+
|
|
28
|
+
namespace node {
|
|
29
|
+
|
|
30
|
+
namespace Buffer {
|
|
31
|
+
|
|
32
|
+
static const size_t kMaxLength = v8::Uint8Array::kMaxLength;
|
|
33
|
+
|
|
34
|
+
typedef void (*FreeCallback)(char* data, void* hint);
|
|
35
|
+
|
|
36
|
+
NODE_EXTERN bool HasInstance(v8::Local<v8::Value> val);
|
|
37
|
+
NODE_EXTERN bool HasInstance(v8::Local<v8::Object> val);
|
|
38
|
+
NODE_EXTERN char* Data(v8::Local<v8::Value> val);
|
|
39
|
+
NODE_EXTERN char* Data(v8::Local<v8::Object> val);
|
|
40
|
+
NODE_EXTERN size_t Length(v8::Local<v8::Value> val);
|
|
41
|
+
NODE_EXTERN size_t Length(v8::Local<v8::Object> val);
|
|
42
|
+
|
|
43
|
+
// public constructor - data is copied
|
|
44
|
+
NODE_EXTERN v8::MaybeLocal<v8::Object> Copy(v8::Isolate* isolate,
|
|
45
|
+
const char* data,
|
|
46
|
+
size_t len);
|
|
47
|
+
|
|
48
|
+
// public constructor
|
|
49
|
+
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
|
|
50
|
+
|
|
51
|
+
// public constructor from string
|
|
52
|
+
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
|
|
53
|
+
v8::Local<v8::String> string,
|
|
54
|
+
enum encoding enc = UTF8);
|
|
55
|
+
|
|
56
|
+
// public constructor - data is used, callback is passed data on object gc
|
|
57
|
+
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
|
|
58
|
+
char* data,
|
|
59
|
+
size_t length,
|
|
60
|
+
FreeCallback callback,
|
|
61
|
+
void* hint);
|
|
62
|
+
|
|
63
|
+
// public constructor - data is used.
|
|
64
|
+
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
|
|
65
|
+
char* data,
|
|
66
|
+
size_t len);
|
|
67
|
+
|
|
68
|
+
// Creates a Buffer instance over an existing ArrayBuffer.
|
|
69
|
+
NODE_EXTERN v8::MaybeLocal<v8::Uint8Array> New(v8::Isolate* isolate,
|
|
70
|
+
v8::Local<v8::ArrayBuffer> ab,
|
|
71
|
+
size_t byte_offset,
|
|
72
|
+
size_t length);
|
|
73
|
+
|
|
74
|
+
// This is verbose to be explicit with inline commenting
|
|
75
|
+
static inline bool IsWithinBounds(size_t off, size_t len, size_t max) {
|
|
76
|
+
// Asking to seek too far into the buffer
|
|
77
|
+
// check to avoid wrapping in subsequent subtraction
|
|
78
|
+
if (off > max)
|
|
79
|
+
return false;
|
|
80
|
+
|
|
81
|
+
// Asking for more than is left over in the buffer
|
|
82
|
+
if (max - off < len)
|
|
83
|
+
return false;
|
|
84
|
+
|
|
85
|
+
// Otherwise we're in bounds
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
} // namespace Buffer
|
|
90
|
+
} // namespace node
|
|
91
|
+
|
|
92
|
+
#endif // SRC_NODE_BUFFER_H_
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#ifndef SRC_NODE_BUILTINS_H_
|
|
2
|
+
#define SRC_NODE_BUILTINS_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <list>
|
|
7
|
+
#include <map>
|
|
8
|
+
#include <memory>
|
|
9
|
+
#include <optional>
|
|
10
|
+
#include <string>
|
|
11
|
+
#include <unordered_set>
|
|
12
|
+
#include <vector>
|
|
13
|
+
#include "node_external_reference.h"
|
|
14
|
+
#include "node_mutex.h"
|
|
15
|
+
#include "node_threadsafe_cow.h"
|
|
16
|
+
#include "node_union_bytes.h"
|
|
17
|
+
#include "v8.h"
|
|
18
|
+
|
|
19
|
+
// Forward declare test fixture for `friend` declaration.
|
|
20
|
+
class PerProcessTest;
|
|
21
|
+
|
|
22
|
+
namespace node {
|
|
23
|
+
class SnapshotBuilder;
|
|
24
|
+
class ExternalReferenceRegistry;
|
|
25
|
+
class Realm;
|
|
26
|
+
|
|
27
|
+
namespace builtins {
|
|
28
|
+
|
|
29
|
+
class BuiltinCodeCacheData {
|
|
30
|
+
public:
|
|
31
|
+
BuiltinCodeCacheData() : data(nullptr), length(0), owning_ptr(nullptr) {}
|
|
32
|
+
|
|
33
|
+
explicit BuiltinCodeCacheData(
|
|
34
|
+
std::shared_ptr<v8::ScriptCompiler::CachedData> cached_data)
|
|
35
|
+
: data(cached_data->data),
|
|
36
|
+
length(cached_data->length),
|
|
37
|
+
owning_ptr(cached_data) {}
|
|
38
|
+
|
|
39
|
+
explicit BuiltinCodeCacheData(
|
|
40
|
+
std::shared_ptr<std::vector<uint8_t>> cached_data)
|
|
41
|
+
: data(cached_data->data()),
|
|
42
|
+
length(cached_data->size()),
|
|
43
|
+
owning_ptr(cached_data) {}
|
|
44
|
+
|
|
45
|
+
BuiltinCodeCacheData(const uint8_t* data, size_t length)
|
|
46
|
+
: data(data), length(length), owning_ptr(nullptr) {}
|
|
47
|
+
|
|
48
|
+
const uint8_t* data;
|
|
49
|
+
size_t length;
|
|
50
|
+
|
|
51
|
+
// Returns a v8::ScriptCompiler::CachedData corresponding to this
|
|
52
|
+
// BuiltinCodeCacheData. The lifetime of the returned
|
|
53
|
+
// v8::ScriptCompiler::CachedData must not outlive that of the data.
|
|
54
|
+
std::unique_ptr<v8::ScriptCompiler::CachedData> AsCachedData() {
|
|
55
|
+
return std::make_unique<v8::ScriptCompiler::CachedData>(
|
|
56
|
+
data, length, v8::ScriptCompiler::CachedData::BufferNotOwned);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private:
|
|
60
|
+
// If not null, represents a pointer which owns data. Otherwise indicates
|
|
61
|
+
// that data has static lifetime.
|
|
62
|
+
std::shared_ptr<void> owning_ptr;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
struct CodeCacheInfo {
|
|
66
|
+
std::string id;
|
|
67
|
+
BuiltinCodeCacheData data;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
using BuiltinSourceMap = std::map<std::string, UnionBytes>;
|
|
71
|
+
using BuiltinCodeCacheMap =
|
|
72
|
+
std::unordered_map<std::string, BuiltinCodeCacheData>;
|
|
73
|
+
|
|
74
|
+
// Generated by tools/js2c.cc as node_javascript.cc
|
|
75
|
+
void RegisterExternalReferencesForInternalizedBuiltinCode(
|
|
76
|
+
ExternalReferenceRegistry* registry);
|
|
77
|
+
|
|
78
|
+
// Handles compilation and caching of built-in JavaScript modules and
|
|
79
|
+
// bootstrap scripts, whose source are bundled into the binary as static data.
|
|
80
|
+
class NODE_EXTERN_PRIVATE BuiltinLoader {
|
|
81
|
+
public:
|
|
82
|
+
BuiltinLoader();
|
|
83
|
+
BuiltinLoader(const BuiltinLoader&) = delete;
|
|
84
|
+
BuiltinLoader& operator=(const BuiltinLoader&) = delete;
|
|
85
|
+
|
|
86
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
87
|
+
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
|
88
|
+
v8::Local<v8::ObjectTemplate> target);
|
|
89
|
+
static void CreatePerContextProperties(v8::Local<v8::Object> target,
|
|
90
|
+
v8::Local<v8::Value> unused,
|
|
91
|
+
v8::Local<v8::Context> context,
|
|
92
|
+
void* priv);
|
|
93
|
+
|
|
94
|
+
// The parameters used to compile the scripts are detected based on
|
|
95
|
+
// the pattern of the id.
|
|
96
|
+
v8::MaybeLocal<v8::Function> LookupAndCompile(v8::Local<v8::Context> context,
|
|
97
|
+
const char* id,
|
|
98
|
+
Realm* optional_realm);
|
|
99
|
+
|
|
100
|
+
v8::MaybeLocal<v8::Function> LookupAndCompile(
|
|
101
|
+
v8::Local<v8::Context> context,
|
|
102
|
+
const char* id,
|
|
103
|
+
v8::LocalVector<v8::String>* parameters,
|
|
104
|
+
Realm* optional_realm);
|
|
105
|
+
|
|
106
|
+
v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
|
|
107
|
+
const char* id,
|
|
108
|
+
int argc,
|
|
109
|
+
v8::Local<v8::Value> argv[],
|
|
110
|
+
Realm* optional_realm);
|
|
111
|
+
|
|
112
|
+
v8::MaybeLocal<v8::Value> CompileAndCall(v8::Local<v8::Context> context,
|
|
113
|
+
const char* id,
|
|
114
|
+
Realm* realm);
|
|
115
|
+
|
|
116
|
+
// Returns config.gypi as a JSON string
|
|
117
|
+
v8::Local<v8::String> GetConfigString(v8::Isolate* isolate);
|
|
118
|
+
bool Exists(const char* id);
|
|
119
|
+
bool Add(const char* id, const UnionBytes& source);
|
|
120
|
+
|
|
121
|
+
bool CompileAllBuiltinsAndCopyCodeCache(
|
|
122
|
+
v8::Local<v8::Context> context,
|
|
123
|
+
const std::vector<std::string>& lazy_builtins,
|
|
124
|
+
std::vector<CodeCacheInfo>* out);
|
|
125
|
+
void RefreshCodeCache(const std::vector<CodeCacheInfo>& in);
|
|
126
|
+
|
|
127
|
+
void CopySourceAndCodeCacheReferenceFrom(const BuiltinLoader* other);
|
|
128
|
+
|
|
129
|
+
std::vector<std::string_view> GetBuiltinIds() const;
|
|
130
|
+
|
|
131
|
+
void SetEagerCompile() { should_eager_compile_ = true; }
|
|
132
|
+
|
|
133
|
+
private:
|
|
134
|
+
// Only allow access from friends.
|
|
135
|
+
friend class CodeCacheBuilder;
|
|
136
|
+
|
|
137
|
+
// Generated by tools/js2c.cc as node_javascript.cc
|
|
138
|
+
void LoadJavaScriptSource(); // Loads data into source_
|
|
139
|
+
UnionBytes GetConfig(); // Return data for config.gypi
|
|
140
|
+
|
|
141
|
+
struct BuiltinCategories {
|
|
142
|
+
std::set<std::string> can_be_required;
|
|
143
|
+
std::set<std::string> cannot_be_required;
|
|
144
|
+
};
|
|
145
|
+
// This method builds `BuiltinCategories` from scratch every time,
|
|
146
|
+
// and is therefore somewhat expensive, but also currently only being
|
|
147
|
+
// used for testing, so that should not be an issue.
|
|
148
|
+
BuiltinCategories GetBuiltinCategories() const;
|
|
149
|
+
|
|
150
|
+
const v8::ScriptCompiler::CachedData* GetCodeCache(const char* id) const;
|
|
151
|
+
enum class Result { kWithCache, kWithoutCache };
|
|
152
|
+
v8::MaybeLocal<v8::String> LoadBuiltinSource(v8::Isolate* isolate,
|
|
153
|
+
const char* id) const;
|
|
154
|
+
// If an exception is encountered (e.g. source code contains
|
|
155
|
+
// syntax error), the returned value is empty.
|
|
156
|
+
v8::MaybeLocal<v8::Function> LookupAndCompileInternal(
|
|
157
|
+
v8::Local<v8::Context> context,
|
|
158
|
+
const char* id,
|
|
159
|
+
v8::LocalVector<v8::String>* parameters,
|
|
160
|
+
Realm* optional_realm);
|
|
161
|
+
void SaveCodeCache(const char* id, v8::Local<v8::Function> fn);
|
|
162
|
+
|
|
163
|
+
static void RecordResult(const char* id,
|
|
164
|
+
BuiltinLoader::Result result,
|
|
165
|
+
Realm* realm);
|
|
166
|
+
static void GetBuiltinCategories(
|
|
167
|
+
v8::Local<v8::Name> property,
|
|
168
|
+
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
169
|
+
static void GetCacheUsage(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
170
|
+
// Passing ids of built-in source code into JS land as
|
|
171
|
+
// internalBinding('builtins').builtinIds
|
|
172
|
+
static void BuiltinIdsGetter(v8::Local<v8::Name> property,
|
|
173
|
+
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
174
|
+
// Passing config.gypi into JS land as internalBinding('builtins').config
|
|
175
|
+
static void ConfigStringGetter(
|
|
176
|
+
v8::Local<v8::Name> property,
|
|
177
|
+
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
178
|
+
// Compile a specific built-in as a function
|
|
179
|
+
static void CompileFunction(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
180
|
+
static void HasCachedBuiltins(
|
|
181
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
182
|
+
// For legacy process.binding('natives')
|
|
183
|
+
static void GetNatives(v8::Local<v8::Name> property,
|
|
184
|
+
const v8::PropertyCallbackInfo<v8::Value>& info);
|
|
185
|
+
|
|
186
|
+
void AddExternalizedBuiltin(const char* id, const char* filename);
|
|
187
|
+
|
|
188
|
+
ThreadsafeCopyOnWrite<BuiltinSourceMap> source_;
|
|
189
|
+
|
|
190
|
+
const UnionBytes config_;
|
|
191
|
+
|
|
192
|
+
// If any bulitins should be eagerly compiled i.e. with inner functions
|
|
193
|
+
// compiled too, either use should_eager_compile_ to compile all builtins
|
|
194
|
+
// eagerly, or use to_eager_compile_ to compile specific builtins eagerly.
|
|
195
|
+
// Currently we set should_eager_compile_ to true when compiling primordials,
|
|
196
|
+
// and use to_eager_compile_ to compile code cache that complements the
|
|
197
|
+
// snapshot, where builtins already loaded in the snapshot and a few extras
|
|
198
|
+
// are compiled eagerly (other less-essential built-ins are compiled lazily to
|
|
199
|
+
// avoid bloating the binary size). At runtime any additional compilation is
|
|
200
|
+
// done lazily.
|
|
201
|
+
bool should_eager_compile_ = false;
|
|
202
|
+
std::unordered_set<std::string> to_eager_compile_;
|
|
203
|
+
|
|
204
|
+
struct BuiltinCodeCache {
|
|
205
|
+
RwLock mutex;
|
|
206
|
+
BuiltinCodeCacheMap map;
|
|
207
|
+
bool has_code_cache = false;
|
|
208
|
+
};
|
|
209
|
+
std::shared_ptr<BuiltinCodeCache> code_cache_;
|
|
210
|
+
|
|
211
|
+
friend class ::PerProcessTest;
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
} // namespace builtins
|
|
215
|
+
|
|
216
|
+
} // namespace node
|
|
217
|
+
|
|
218
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
219
|
+
|
|
220
|
+
#endif // SRC_NODE_BUILTINS_H_
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#ifndef SRC_NODE_CONFIG_FILE_H_
|
|
2
|
+
#define SRC_NODE_CONFIG_FILE_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <map>
|
|
7
|
+
#include <string>
|
|
8
|
+
#include <variant>
|
|
9
|
+
#include "node_internals.h"
|
|
10
|
+
#include "simdjson.h"
|
|
11
|
+
#include "util-inl.h"
|
|
12
|
+
|
|
13
|
+
namespace node {
|
|
14
|
+
|
|
15
|
+
// When trying to parse the configuration file, we can have three possible
|
|
16
|
+
// results:
|
|
17
|
+
// - Valid: The file was successfully parsed and the content is valid.
|
|
18
|
+
// - FileError: There was an error reading the file.
|
|
19
|
+
// - InvalidContent: The file was read, but the content is invalid.
|
|
20
|
+
enum ParseResult { Valid, FileError, InvalidContent };
|
|
21
|
+
|
|
22
|
+
// ConfigReader is the class that parses the configuration JSON file.
|
|
23
|
+
// It reads the file provided by --experimental-config-file and
|
|
24
|
+
// extracts the flags.
|
|
25
|
+
class ConfigReader {
|
|
26
|
+
public:
|
|
27
|
+
ParseResult ParseConfig(const std::string_view& config_path);
|
|
28
|
+
|
|
29
|
+
std::optional<std::string_view> GetDataFromArgs(
|
|
30
|
+
const std::vector<std::string>& args);
|
|
31
|
+
|
|
32
|
+
std::string AssignNodeOptions();
|
|
33
|
+
|
|
34
|
+
size_t GetFlagsSize();
|
|
35
|
+
|
|
36
|
+
private:
|
|
37
|
+
ParseResult ParseNodeOptions(simdjson::ondemand::object* node_options_object);
|
|
38
|
+
|
|
39
|
+
std::vector<std::string> node_options_;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
} // namespace node
|
|
43
|
+
|
|
44
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
45
|
+
|
|
46
|
+
#endif // SRC_NODE_CONFIG_FILE_H_
|
|
@@ -0,0 +1,82 @@
|
|
|
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_CONSTANTS_H_
|
|
23
|
+
#define SRC_NODE_CONSTANTS_H_
|
|
24
|
+
|
|
25
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
+
|
|
27
|
+
#include "node.h"
|
|
28
|
+
#include "v8.h"
|
|
29
|
+
|
|
30
|
+
#define EXTENSIONLESS_FORMAT_JAVASCRIPT (0)
|
|
31
|
+
#define EXTENSIONLESS_FORMAT_WASM (1)
|
|
32
|
+
|
|
33
|
+
#if HAVE_OPENSSL
|
|
34
|
+
|
|
35
|
+
#ifndef RSA_PSS_SALTLEN_DIGEST
|
|
36
|
+
#define RSA_PSS_SALTLEN_DIGEST -1
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
#ifndef RSA_PSS_SALTLEN_MAX_SIGN
|
|
40
|
+
#define RSA_PSS_SALTLEN_MAX_SIGN -2
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#ifndef RSA_PSS_SALTLEN_AUTO
|
|
44
|
+
#define RSA_PSS_SALTLEN_AUTO -2
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
#if defined(NODE_OPENSSL_DEFAULT_CIPHER_LIST)
|
|
48
|
+
#define DEFAULT_CIPHER_LIST_CORE NODE_OPENSSL_DEFAULT_CIPHER_LIST
|
|
49
|
+
#else
|
|
50
|
+
// TLSv1.3 suites start with TLS_, and are the OpenSSL defaults, see:
|
|
51
|
+
// https://www.openssl.org/docs/man1.1.1/man3/SSL_CTX_set_ciphersuites.html
|
|
52
|
+
#define DEFAULT_CIPHER_LIST_CORE \
|
|
53
|
+
"TLS_AES_256_GCM_SHA384:" \
|
|
54
|
+
"TLS_CHACHA20_POLY1305_SHA256:" \
|
|
55
|
+
"TLS_AES_128_GCM_SHA256:" \
|
|
56
|
+
"ECDHE-RSA-AES128-GCM-SHA256:" \
|
|
57
|
+
"ECDHE-ECDSA-AES128-GCM-SHA256:" \
|
|
58
|
+
"ECDHE-RSA-AES256-GCM-SHA384:" \
|
|
59
|
+
"ECDHE-ECDSA-AES256-GCM-SHA384:" \
|
|
60
|
+
"DHE-RSA-AES128-GCM-SHA256:" \
|
|
61
|
+
"ECDHE-RSA-AES128-SHA256:" \
|
|
62
|
+
"DHE-RSA-AES128-SHA256:" \
|
|
63
|
+
"ECDHE-RSA-AES256-SHA384:" \
|
|
64
|
+
"DHE-RSA-AES256-SHA384:" \
|
|
65
|
+
"ECDHE-RSA-AES256-SHA256:" \
|
|
66
|
+
"DHE-RSA-AES256-SHA256:" \
|
|
67
|
+
"HIGH:" \
|
|
68
|
+
"!aNULL:" \
|
|
69
|
+
"!eNULL:" \
|
|
70
|
+
"!EXPORT:" \
|
|
71
|
+
"!DES:" \
|
|
72
|
+
"!RC4:" \
|
|
73
|
+
"!MD5:" \
|
|
74
|
+
"!PSK:" \
|
|
75
|
+
"!SRP:" \
|
|
76
|
+
"!CAMELLIA"
|
|
77
|
+
#endif // NODE_OPENSSL_DEFAULT_CIPHER_LIST
|
|
78
|
+
#endif // HAVE_OPENSSL
|
|
79
|
+
|
|
80
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
81
|
+
|
|
82
|
+
#endif // SRC_NODE_CONSTANTS_H_
|