@encharm/cws 4.4.1 → 4.5.2
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/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node137.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +13 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{18 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/22/js_native_api.h +619 -0
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/22/js_native_api_v8.h +485 -0
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{16 → 22}/node_version.h +21 -9
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/{16/tracing → 24}/agent.h +1 -1
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -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/{14 → 24}/async_wrap-inl.h +8 -6
- package/src/headers/{16 → 24}/async_wrap.h +86 -88
- package/src/headers/{16 → 24}/base_object-inl.h +75 -119
- package/src/headers/{16 → 24}/base_object.h +84 -40
- 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/{18 → 24}/callback_queue.h +1 -0
- package/src/headers/{18 → 24}/cares_wrap.h +68 -144
- 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/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/{16 → 24}/crypto/crypto_bio.h +8 -9
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
- package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
- package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
- package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
- package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
- package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
- package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
- package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
- package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
- package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
- package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
- package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
- package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
- package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
- package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
- package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
- package/src/headers/{16 → 24}/debug_utils.h +31 -22
- package/src/headers/24/defs.h +254 -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/{16 → 24}/env-inl.h +198 -540
- 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/{16 → 24}/handle_wrap.h +4 -2
- package/src/headers/{16 → 24}/histogram-inl.h +34 -15
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/{18 → 24}/inspector_agent.h +23 -2
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/{18 → 24}/js_native_api.h +74 -30
- package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
- package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
- package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/{18 → 24}/json_utils.h +19 -8
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
- package/src/headers/{16 → 24}/memory_tracker.h +58 -9
- 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/{16 → 24}/node.h +560 -72
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/{16 → 24}/node_api_types.h +13 -11
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/{16 → 24}/node_blob.h +46 -78
- package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
- package/src/headers/{16 → 24}/node_bob.h +2 -6
- package/src/headers/{14 → 24}/node_buffer.h +1 -1
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/{14 → 24}/node_constants.h +3 -5
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/{18 → 24}/node_crypto.h +7 -2
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/{16 → 24}/node_errors.h +146 -32
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/{18 → 24}/node_external_reference.h +44 -22
- package/src/headers/{16 → 24}/node_file-inl.h +156 -50
- package/src/headers/{18 → 24}/node_file.h +129 -15
- package/src/headers/{16 → 24}/node_http2.h +53 -18
- package/src/headers/{14 → 24}/node_http2_state.h +35 -25
- package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
- package/src/headers/{16 → 24}/node_http_common.h +63 -59
- package/src/headers/{18 → 24}/node_i18n.h +5 -18
- package/src/headers/{16 → 24}/node_internals.h +131 -76
- 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/{14 → 24}/node_main_instance.h +15 -44
- package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
- package/src/headers/{16 → 24}/node_messaging.h +27 -11
- package/src/headers/{16 → 24}/node_metadata.h +44 -2
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/{16 → 24}/node_options-inl.h +93 -46
- package/src/headers/{16 → 24}/node_options.h +251 -63
- package/src/headers/{16 → 24}/node_perf.h +6 -25
- package/src/headers/{16 → 24}/node_perf_common.h +23 -10
- package/src/headers/24/node_platform.h +286 -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/{18 → 24}/node_report.h +13 -17
- package/src/headers/{18 → 24}/node_revert.h +3 -3
- package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
- 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/{16 → 24}/node_sockaddr-inl.h +11 -20
- package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
- 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_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/{18 → 24}/node_v8_platform-inl.h +22 -31
- package/src/headers/{18 → 24}/node_version.h +18 -6
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/{18 → 24}/node_watchdog.h +2 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/{16 → 24}/node_worker.h +24 -10
- 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/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
- package/src/headers/{16 → 24}/req_wrap.h +3 -1
- 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/{18 → 24}/spawn_sync.h +9 -8
- package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
- package/src/headers/{16 → 24}/stream_base.h +43 -19
- package/src/headers/{16 → 24}/stream_pipe.h +7 -4
- package/src/headers/{18 → 24}/stream_wrap.h +2 -3
- package/src/headers/24/streams.h +370 -0
- package/src/headers/{16 → 24}/string_bytes.h +8 -21
- package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
- package/src/headers/{18 → 24}/string_decoder.h +0 -1
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
- package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/{16 → 24}/timer_wrap.h +7 -4
- 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/{14/tracing → 24}/trace_event.h +7 -5
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/{16 → 24}/tty_wrap.h +0 -1
- package/src/headers/{18 → 24}/udp_wrap.h +8 -5
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/{16 → 24}/util-inl.h +267 -131
- package/src/headers/{16 → 24}/util.h +338 -146
- 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
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
- /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
- /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
- /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
- /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{16 → 24}/inspector_io.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
- /package/src/headers/{16 → 24}/js_stream.h +0 -0
- /package/src/headers/{16 → 24}/node_dir.h +0 -0
- /package/src/headers/{18 → 24}/node_mem.h +0 -0
- /package/src/headers/{18 → 24}/node_mutex.h +0 -0
- /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
- /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
- /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
- /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
|
@@ -24,9 +24,11 @@
|
|
|
24
24
|
|
|
25
25
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
26
|
|
|
27
|
+
#include "uv.h"
|
|
27
28
|
#include "v8.h"
|
|
28
29
|
|
|
29
30
|
#include "node.h"
|
|
31
|
+
#include "node_exit_code.h"
|
|
30
32
|
|
|
31
33
|
#include <climits>
|
|
32
34
|
#include <cstddef>
|
|
@@ -35,12 +37,15 @@
|
|
|
35
37
|
#include <cstring>
|
|
36
38
|
|
|
37
39
|
#include <array>
|
|
40
|
+
#include <bit>
|
|
41
|
+
#include <filesystem>
|
|
38
42
|
#include <limits>
|
|
39
43
|
#include <memory>
|
|
44
|
+
#include <optional>
|
|
45
|
+
#include <set>
|
|
40
46
|
#include <string>
|
|
41
47
|
#include <string_view>
|
|
42
48
|
#include <type_traits>
|
|
43
|
-
#include <set>
|
|
44
49
|
#include <unordered_map>
|
|
45
50
|
#include <utility>
|
|
46
51
|
#include <vector>
|
|
@@ -53,13 +58,12 @@
|
|
|
53
58
|
|
|
54
59
|
namespace node {
|
|
55
60
|
|
|
56
|
-
|
|
61
|
+
constexpr char kPathSeparator = std::filesystem::path::preferred_separator;
|
|
62
|
+
|
|
57
63
|
#ifdef _WIN32
|
|
58
|
-
constexpr char kPathSeparator = '\\';
|
|
59
64
|
/* MAX_PATH is in characters, not bytes. Make sure we have enough headroom. */
|
|
60
65
|
#define PATH_MAX_BYTES (MAX_PATH * 4)
|
|
61
66
|
#else
|
|
62
|
-
constexpr char kPathSeparator = '/';
|
|
63
67
|
#define PATH_MAX_BYTES (PATH_MAX)
|
|
64
68
|
#endif
|
|
65
69
|
|
|
@@ -112,47 +116,65 @@ struct AssertionInfo {
|
|
|
112
116
|
const char* message;
|
|
113
117
|
const char* function;
|
|
114
118
|
};
|
|
115
|
-
|
|
116
|
-
[[noreturn]]
|
|
117
|
-
void
|
|
119
|
+
|
|
120
|
+
// This indirectly calls backtrace so it can not be marked as [[noreturn]].
|
|
121
|
+
void NODE_EXTERN_PRIVATE Assert(const AssertionInfo& info);
|
|
122
|
+
void DumpNativeBacktrace(FILE* fp);
|
|
123
|
+
void DumpJavaScriptBacktrace(FILE* fp);
|
|
118
124
|
|
|
119
125
|
// Windows 8+ does not like abort() in Release mode
|
|
120
126
|
#ifdef _WIN32
|
|
121
|
-
#define ABORT_NO_BACKTRACE() _exit(
|
|
127
|
+
#define ABORT_NO_BACKTRACE() _exit(static_cast<int>(node::ExitCode::kAbort))
|
|
122
128
|
#else
|
|
123
129
|
#define ABORT_NO_BACKTRACE() abort()
|
|
124
130
|
#endif
|
|
125
131
|
|
|
126
|
-
|
|
132
|
+
// Caller of this macro must not be marked as [[noreturn]]. Printing of
|
|
133
|
+
// backtraces may not work correctly in [[noreturn]] functions because
|
|
134
|
+
// when generating code for them the compiler can choose not to
|
|
135
|
+
// maintain the frame pointers or link registers that are necessary for
|
|
136
|
+
// correct backtracing.
|
|
137
|
+
// `ABORT` must be a macro and not a [[noreturn]] function to make sure the
|
|
138
|
+
// backtrace is correct.
|
|
139
|
+
#define ABORT() \
|
|
140
|
+
do { \
|
|
141
|
+
node::DumpNativeBacktrace(stderr); \
|
|
142
|
+
node::DumpJavaScriptBacktrace(stderr); \
|
|
143
|
+
fflush(stderr); \
|
|
144
|
+
ABORT_NO_BACKTRACE(); \
|
|
145
|
+
} while (0)
|
|
127
146
|
|
|
128
|
-
#define ERROR_AND_ABORT(expr)
|
|
129
|
-
do {
|
|
130
|
-
/* Make sure that this struct does not end up in inline code, but */
|
|
131
|
-
/* rather in a read-only data section when modifying this code. */
|
|
132
|
-
static const node::AssertionInfo
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
node::Assert(
|
|
147
|
+
#define ERROR_AND_ABORT(expr) \
|
|
148
|
+
do { \
|
|
149
|
+
/* Make sure that this struct does not end up in inline code, but */ \
|
|
150
|
+
/* rather in a read-only data section when modifying this code. */ \
|
|
151
|
+
static const node::AssertionInfo error_and_abort_args = { \
|
|
152
|
+
__FILE__ ":" STRINGIFY(__LINE__), #expr, PRETTY_FUNCTION_NAME}; \
|
|
153
|
+
node::Assert(error_and_abort_args); \
|
|
154
|
+
/* `node::Assert` doesn't return. Add an [[noreturn]] abort() here to */ \
|
|
155
|
+
/* make the compiler happy about no return value in the caller */ \
|
|
156
|
+
/* function when calling ERROR_AND_ABORT. */ \
|
|
157
|
+
ABORT_NO_BACKTRACE(); \
|
|
136
158
|
} while (0)
|
|
137
159
|
|
|
138
160
|
#ifdef __GNUC__
|
|
139
|
-
#define LIKELY(expr) __builtin_expect(!!(expr), 1)
|
|
140
|
-
#define UNLIKELY(expr) __builtin_expect(!!(expr), 0)
|
|
141
161
|
#define PRETTY_FUNCTION_NAME __PRETTY_FUNCTION__
|
|
142
162
|
#else
|
|
143
|
-
#
|
|
144
|
-
#define
|
|
163
|
+
#if defined(_MSC_VER)
|
|
164
|
+
#define PRETTY_FUNCTION_NAME __FUNCSIG__
|
|
165
|
+
#else
|
|
145
166
|
#define PRETTY_FUNCTION_NAME ""
|
|
146
167
|
#endif
|
|
168
|
+
#endif
|
|
147
169
|
|
|
148
170
|
#define STRINGIFY_(x) #x
|
|
149
171
|
#define STRINGIFY(x) STRINGIFY_(x)
|
|
150
172
|
|
|
151
|
-
#define CHECK(expr)
|
|
152
|
-
do {
|
|
153
|
-
if (
|
|
154
|
-
ERROR_AND_ABORT(expr);
|
|
155
|
-
}
|
|
173
|
+
#define CHECK(expr) \
|
|
174
|
+
do { \
|
|
175
|
+
if (!(expr)) [[unlikely]] { \
|
|
176
|
+
ERROR_AND_ABORT(expr); \
|
|
177
|
+
} \
|
|
156
178
|
} while (0)
|
|
157
179
|
|
|
158
180
|
#define CHECK_EQ(a, b) CHECK((a) == (b))
|
|
@@ -193,7 +215,7 @@ void DumpBacktrace(FILE* fp);
|
|
|
193
215
|
#define UNREACHABLE(...) \
|
|
194
216
|
ERROR_AND_ABORT("Unreachable code reached" __VA_OPT__(": ") __VA_ARGS__)
|
|
195
217
|
|
|
196
|
-
//
|
|
218
|
+
// ECMA-262, 15th edition, 21.1.2.6. Number.MAX_SAFE_INTEGER (2^53-1)
|
|
197
219
|
constexpr int64_t kMaxSafeJsInteger = 9007199254740991;
|
|
198
220
|
|
|
199
221
|
inline bool IsSafeJsInt(v8::Local<v8::Value> v);
|
|
@@ -273,6 +295,37 @@ template <typename Inner, typename Outer>
|
|
|
273
295
|
constexpr ContainerOfHelper<Inner, Outer> ContainerOf(Inner Outer::*field,
|
|
274
296
|
Inner* pointer);
|
|
275
297
|
|
|
298
|
+
class KVStore {
|
|
299
|
+
public:
|
|
300
|
+
KVStore() = default;
|
|
301
|
+
virtual ~KVStore() = default;
|
|
302
|
+
KVStore(const KVStore&) = delete;
|
|
303
|
+
KVStore& operator=(const KVStore&) = delete;
|
|
304
|
+
KVStore(KVStore&&) = delete;
|
|
305
|
+
KVStore& operator=(KVStore&&) = delete;
|
|
306
|
+
|
|
307
|
+
virtual v8::MaybeLocal<v8::String> Get(v8::Isolate* isolate,
|
|
308
|
+
v8::Local<v8::String> key) const = 0;
|
|
309
|
+
virtual std::optional<std::string> Get(const char* key) const = 0;
|
|
310
|
+
virtual void Set(v8::Isolate* isolate,
|
|
311
|
+
v8::Local<v8::String> key,
|
|
312
|
+
v8::Local<v8::String> value) = 0;
|
|
313
|
+
virtual int32_t Query(v8::Isolate* isolate,
|
|
314
|
+
v8::Local<v8::String> key) const = 0;
|
|
315
|
+
virtual int32_t Query(const char* key) const = 0;
|
|
316
|
+
virtual void Delete(v8::Isolate* isolate, v8::Local<v8::String> key) = 0;
|
|
317
|
+
virtual v8::Local<v8::Array> Enumerate(v8::Isolate* isolate) const = 0;
|
|
318
|
+
|
|
319
|
+
virtual std::shared_ptr<KVStore> Clone(v8::Isolate* isolate) const;
|
|
320
|
+
virtual v8::Maybe<void> AssignFromObject(v8::Local<v8::Context> context,
|
|
321
|
+
v8::Local<v8::Object> entries);
|
|
322
|
+
v8::Maybe<void> AssignToObject(v8::Isolate* isolate,
|
|
323
|
+
v8::Local<v8::Context> context,
|
|
324
|
+
v8::Local<v8::Object> object);
|
|
325
|
+
|
|
326
|
+
static std::shared_ptr<KVStore> CreateMapKVStore();
|
|
327
|
+
};
|
|
328
|
+
|
|
276
329
|
// Convenience wrapper around v8::String::NewFromOneByte().
|
|
277
330
|
inline v8::Local<v8::String> OneByteString(v8::Isolate* isolate,
|
|
278
331
|
const char* data,
|
|
@@ -302,14 +355,6 @@ inline v8::Local<v8::String> FIXED_ONE_BYTE_STRING(
|
|
|
302
355
|
return OneByteString(isolate, arr.data(), N - 1);
|
|
303
356
|
}
|
|
304
357
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
// Swaps bytes in place. nbytes is the number of bytes to swap and must be a
|
|
308
|
-
// multiple of the word size (checked by function).
|
|
309
|
-
inline void SwapBytes16(char* data, size_t nbytes);
|
|
310
|
-
inline void SwapBytes32(char* data, size_t nbytes);
|
|
311
|
-
inline void SwapBytes64(char* data, size_t nbytes);
|
|
312
|
-
|
|
313
358
|
// tolower() is locale-sensitive. Use ToLower() instead.
|
|
314
359
|
inline char ToLower(char c);
|
|
315
360
|
inline std::string ToLower(const std::string& in);
|
|
@@ -380,19 +425,7 @@ class MaybeStackBuffer {
|
|
|
380
425
|
// This method can be called multiple times throughout the lifetime of the
|
|
381
426
|
// buffer, but once this has been called Invalidate() cannot be used.
|
|
382
427
|
// Content of the buffer in the range [0, length()) is preserved.
|
|
383
|
-
void AllocateSufficientStorage(size_t storage)
|
|
384
|
-
CHECK(!IsInvalidated());
|
|
385
|
-
if (storage > capacity()) {
|
|
386
|
-
bool was_allocated = IsAllocated();
|
|
387
|
-
T* allocated_ptr = was_allocated ? buf_ : nullptr;
|
|
388
|
-
buf_ = Realloc(allocated_ptr, storage);
|
|
389
|
-
capacity_ = storage;
|
|
390
|
-
if (!was_allocated && length_ > 0)
|
|
391
|
-
memcpy(buf_, buf_st_, length_ * sizeof(buf_[0]));
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
length_ = storage;
|
|
395
|
-
}
|
|
428
|
+
void AllocateSufficientStorage(size_t storage);
|
|
396
429
|
|
|
397
430
|
void SetLength(size_t length) {
|
|
398
431
|
// capacity() returns how much memory is actually available.
|
|
@@ -454,6 +487,11 @@ class MaybeStackBuffer {
|
|
|
454
487
|
free(buf_);
|
|
455
488
|
}
|
|
456
489
|
|
|
490
|
+
inline std::basic_string<T> ToString() const { return {out(), length()}; }
|
|
491
|
+
inline std::basic_string_view<T> ToStringView() const {
|
|
492
|
+
return {out(), length()};
|
|
493
|
+
}
|
|
494
|
+
|
|
457
495
|
private:
|
|
458
496
|
size_t length_;
|
|
459
497
|
// capacity of the malloc'ed buf_
|
|
@@ -470,18 +508,31 @@ class ArrayBufferViewContents {
|
|
|
470
508
|
public:
|
|
471
509
|
ArrayBufferViewContents() = default;
|
|
472
510
|
|
|
511
|
+
ArrayBufferViewContents(const ArrayBufferViewContents&) = delete;
|
|
512
|
+
void operator=(const ArrayBufferViewContents&) = delete;
|
|
513
|
+
|
|
473
514
|
explicit inline ArrayBufferViewContents(v8::Local<v8::Value> value);
|
|
474
515
|
explicit inline ArrayBufferViewContents(v8::Local<v8::Object> value);
|
|
475
516
|
explicit inline ArrayBufferViewContents(v8::Local<v8::ArrayBufferView> abv);
|
|
476
517
|
inline void Read(v8::Local<v8::ArrayBufferView> abv);
|
|
518
|
+
inline void ReadValue(v8::Local<v8::Value> buf);
|
|
477
519
|
|
|
520
|
+
inline bool WasDetached() const { return was_detached_; }
|
|
478
521
|
inline const T* data() const { return data_; }
|
|
479
522
|
inline size_t length() const { return length_; }
|
|
480
523
|
|
|
481
524
|
private:
|
|
525
|
+
// Declaring operator new and delete as deleted is not spec compliant.
|
|
526
|
+
// Therefore, declare them private instead to disable dynamic alloc.
|
|
527
|
+
void* operator new(size_t size);
|
|
528
|
+
void* operator new[](size_t size);
|
|
529
|
+
void operator delete(void*, size_t);
|
|
530
|
+
void operator delete[](void*, size_t);
|
|
531
|
+
|
|
482
532
|
T stack_storage_[kStackStorageSize];
|
|
483
533
|
T* data_ = nullptr;
|
|
484
534
|
size_t length_ = 0;
|
|
535
|
+
bool was_detached_ = false;
|
|
485
536
|
};
|
|
486
537
|
|
|
487
538
|
class Utf8Value : public MaybeStackBuffer<char> {
|
|
@@ -489,10 +540,12 @@ class Utf8Value : public MaybeStackBuffer<char> {
|
|
|
489
540
|
explicit Utf8Value(v8::Isolate* isolate, v8::Local<v8::Value> value);
|
|
490
541
|
|
|
491
542
|
inline std::string ToString() const { return std::string(out(), length()); }
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
return strcmp(out(), a) == 0;
|
|
543
|
+
inline std::string_view ToStringView() const {
|
|
544
|
+
return std::string_view(out(), length());
|
|
495
545
|
}
|
|
546
|
+
|
|
547
|
+
inline bool operator==(const char* a) const { return strcmp(out(), a) == 0; }
|
|
548
|
+
inline bool operator!=(const char* a) const { return !(*this == a); }
|
|
496
549
|
};
|
|
497
550
|
|
|
498
551
|
class TwoByteValue : public MaybeStackBuffer<uint16_t> {
|
|
@@ -505,19 +558,23 @@ class BufferValue : public MaybeStackBuffer<char> {
|
|
|
505
558
|
explicit BufferValue(v8::Isolate* isolate, v8::Local<v8::Value> value);
|
|
506
559
|
|
|
507
560
|
inline std::string ToString() const { return std::string(out(), length()); }
|
|
561
|
+
inline std::string_view ToStringView() const {
|
|
562
|
+
return std::string_view(out(), length());
|
|
563
|
+
}
|
|
564
|
+
inline std::u8string_view ToU8StringView() const {
|
|
565
|
+
return std::u8string_view(reinterpret_cast<const char8_t*>(out()),
|
|
566
|
+
length());
|
|
567
|
+
}
|
|
508
568
|
};
|
|
509
569
|
|
|
510
|
-
#define SPREAD_BUFFER_ARG(val, name)
|
|
511
|
-
CHECK((val)->IsArrayBufferView());
|
|
512
|
-
v8::Local<v8::ArrayBufferView> name = (val).As<v8::ArrayBufferView>();
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
static_cast<char*>(name##_bs->Data()) + name##_offset; \
|
|
519
|
-
if (name##_length > 0) \
|
|
520
|
-
CHECK_NE(name##_data, nullptr);
|
|
570
|
+
#define SPREAD_BUFFER_ARG(val, name) \
|
|
571
|
+
CHECK((val)->IsArrayBufferView()); \
|
|
572
|
+
v8::Local<v8::ArrayBufferView> name = (val).As<v8::ArrayBufferView>(); \
|
|
573
|
+
const size_t name##_offset = name->ByteOffset(); \
|
|
574
|
+
const size_t name##_length = name->ByteLength(); \
|
|
575
|
+
char* const name##_data = \
|
|
576
|
+
static_cast<char*>(name->Buffer()->Data()) + name##_offset; \
|
|
577
|
+
if (name##_length > 0) CHECK_NE(name##_data, nullptr);
|
|
521
578
|
|
|
522
579
|
// Use this when a variable or parameter is unused in order to explicitly
|
|
523
580
|
// silence a compiler warning about that.
|
|
@@ -537,12 +594,6 @@ struct OnScopeLeaveImpl {
|
|
|
537
594
|
: fn_(std::move(other.fn_)), active_(other.active_) {
|
|
538
595
|
other.active_ = false;
|
|
539
596
|
}
|
|
540
|
-
OnScopeLeaveImpl& operator=(OnScopeLeaveImpl&& other) {
|
|
541
|
-
if (this == &other) return *this;
|
|
542
|
-
this->~OnScopeLeave();
|
|
543
|
-
new (this)OnScopeLeaveImpl(std::move(other));
|
|
544
|
-
return *this;
|
|
545
|
-
}
|
|
546
597
|
};
|
|
547
598
|
|
|
548
599
|
// Run a function when exiting the current scope. Used like this:
|
|
@@ -567,7 +618,7 @@ struct MallocedBuffer {
|
|
|
567
618
|
}
|
|
568
619
|
|
|
569
620
|
void Truncate(size_t new_size) {
|
|
570
|
-
|
|
621
|
+
CHECK_LE(new_size, size);
|
|
571
622
|
size = new_size;
|
|
572
623
|
}
|
|
573
624
|
|
|
@@ -576,7 +627,7 @@ struct MallocedBuffer {
|
|
|
576
627
|
data = UncheckedRealloc(data, new_size);
|
|
577
628
|
}
|
|
578
629
|
|
|
579
|
-
|
|
630
|
+
bool is_empty() const { return data == nullptr; }
|
|
580
631
|
|
|
581
632
|
MallocedBuffer() : data(nullptr), size(0) {}
|
|
582
633
|
explicit MallocedBuffer(size_t size) : data(Malloc<T>(size)), size(size) {}
|
|
@@ -645,7 +696,18 @@ struct FunctionDeleter {
|
|
|
645
696
|
template <typename T, void (*function)(T*)>
|
|
646
697
|
using DeleteFnPtr = typename FunctionDeleter<T, function>::Pointer;
|
|
647
698
|
|
|
648
|
-
|
|
699
|
+
// Convert a v8::Array into an std::vector using the callback-based API.
|
|
700
|
+
// This can be faster than calling Array::Get() repeatedly when the array
|
|
701
|
+
// has more than 2 entries.
|
|
702
|
+
// Note that iterating over an array in C++ and performing operations on each
|
|
703
|
+
// element in a C++ loop is still slower than iterating over the array in JS
|
|
704
|
+
// and calling into native in the JS loop repeatedly on each element,
|
|
705
|
+
// as of V8 11.9.
|
|
706
|
+
inline v8::Maybe<void> FromV8Array(v8::Local<v8::Context> context,
|
|
707
|
+
v8::Local<v8::Array> js_array,
|
|
708
|
+
std::vector<v8::Global<v8::Value>>* out);
|
|
709
|
+
std::vector<std::string_view> SplitString(const std::string_view in,
|
|
710
|
+
const std::string_view delim);
|
|
649
711
|
|
|
650
712
|
inline v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
651
713
|
std::string_view str,
|
|
@@ -714,40 +776,16 @@ inline v8::MaybeLocal<v8::Value> ToV8Value(v8::Local<v8::Context> context,
|
|
|
714
776
|
.Check(); \
|
|
715
777
|
} while (0)
|
|
716
778
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
kBigEndian
|
|
720
|
-
};
|
|
721
|
-
|
|
722
|
-
inline enum Endianness GetEndianness() {
|
|
723
|
-
// Constant-folded by the compiler.
|
|
724
|
-
const union {
|
|
725
|
-
uint8_t u8[2];
|
|
726
|
-
uint16_t u16;
|
|
727
|
-
} u = {{1, 0}};
|
|
728
|
-
return u.u16 == 1 ? kLittleEndian : kBigEndian;
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
inline bool IsLittleEndian() {
|
|
732
|
-
return GetEndianness() == kLittleEndian;
|
|
779
|
+
constexpr inline bool IsLittleEndian() {
|
|
780
|
+
return std::endian::native == std::endian::little;
|
|
733
781
|
}
|
|
734
782
|
|
|
735
|
-
inline bool IsBigEndian() {
|
|
736
|
-
return
|
|
783
|
+
constexpr inline bool IsBigEndian() {
|
|
784
|
+
return std::endian::native == std::endian::big;
|
|
737
785
|
}
|
|
738
786
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
constexpr T RoundUp(T a, T b) {
|
|
742
|
-
return a % b != 0 ? a + b - (a % b) : a;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
// Align ptr to an `alignment`-bytes boundary.
|
|
746
|
-
template <typename T, typename U>
|
|
747
|
-
constexpr T* AlignUp(T* ptr, U alignment) {
|
|
748
|
-
return reinterpret_cast<T*>(
|
|
749
|
-
RoundUp(reinterpret_cast<uintptr_t>(ptr), alignment));
|
|
750
|
-
}
|
|
787
|
+
static_assert(IsLittleEndian() || IsBigEndian(),
|
|
788
|
+
"Node.js does not support mixed-endian systems");
|
|
751
789
|
|
|
752
790
|
class SlicedArguments : public MaybeStackBuffer<v8::Local<v8::Value>> {
|
|
753
791
|
public:
|
|
@@ -799,20 +837,20 @@ class PersistentToLocal {
|
|
|
799
837
|
// computations.
|
|
800
838
|
class FastStringKey {
|
|
801
839
|
public:
|
|
802
|
-
constexpr explicit FastStringKey(
|
|
840
|
+
constexpr explicit FastStringKey(std::string_view name);
|
|
803
841
|
|
|
804
842
|
struct Hash {
|
|
805
843
|
constexpr size_t operator()(const FastStringKey& key) const;
|
|
806
844
|
};
|
|
807
845
|
constexpr bool operator==(const FastStringKey& other) const;
|
|
808
846
|
|
|
809
|
-
constexpr
|
|
847
|
+
constexpr std::string_view as_string_view() const;
|
|
810
848
|
|
|
811
849
|
private:
|
|
812
|
-
static constexpr size_t HashImpl(
|
|
850
|
+
static constexpr size_t HashImpl(std::string_view str);
|
|
813
851
|
|
|
814
|
-
const
|
|
815
|
-
size_t cached_hash_;
|
|
852
|
+
const std::string_view name_;
|
|
853
|
+
const size_t cached_hash_;
|
|
816
854
|
};
|
|
817
855
|
|
|
818
856
|
// Like std::static_pointer_cast but for unique_ptr with the default deleter.
|
|
@@ -826,6 +864,155 @@ std::unique_ptr<T> static_unique_pointer_cast(std::unique_ptr<U>&& ptr) {
|
|
|
826
864
|
// Returns a non-zero code if it fails to open or read the file,
|
|
827
865
|
// aborts if it fails to close the file.
|
|
828
866
|
int ReadFileSync(std::string* result, const char* path);
|
|
867
|
+
// Reads all contents of a FILE*, aborts if it fails.
|
|
868
|
+
std::vector<char> ReadFileSync(FILE* fp);
|
|
869
|
+
|
|
870
|
+
v8::Local<v8::FunctionTemplate> NewFunctionTemplate(
|
|
871
|
+
v8::Isolate* isolate,
|
|
872
|
+
v8::FunctionCallback callback,
|
|
873
|
+
v8::Local<v8::Signature> signature = v8::Local<v8::Signature>(),
|
|
874
|
+
v8::ConstructorBehavior behavior = v8::ConstructorBehavior::kAllow,
|
|
875
|
+
v8::SideEffectType side_effect = v8::SideEffectType::kHasSideEffect,
|
|
876
|
+
const v8::CFunction* c_function = nullptr);
|
|
877
|
+
|
|
878
|
+
// Convenience methods for NewFunctionTemplate().
|
|
879
|
+
void SetMethod(v8::Local<v8::Context> context,
|
|
880
|
+
v8::Local<v8::Object> that,
|
|
881
|
+
const std::string_view name,
|
|
882
|
+
v8::FunctionCallback callback);
|
|
883
|
+
// Similar to SetProtoMethod but without receiver signature checks.
|
|
884
|
+
void SetMethod(v8::Isolate* isolate,
|
|
885
|
+
v8::Local<v8::Template> that,
|
|
886
|
+
const std::string_view name,
|
|
887
|
+
v8::FunctionCallback callback);
|
|
888
|
+
|
|
889
|
+
void SetFastMethod(v8::Isolate* isolate,
|
|
890
|
+
v8::Local<v8::Template> that,
|
|
891
|
+
const std::string_view name,
|
|
892
|
+
v8::FunctionCallback slow_callback,
|
|
893
|
+
const v8::CFunction* c_function);
|
|
894
|
+
void SetFastMethod(v8::Local<v8::Context> context,
|
|
895
|
+
v8::Local<v8::Object> that,
|
|
896
|
+
const std::string_view name,
|
|
897
|
+
v8::FunctionCallback slow_callback,
|
|
898
|
+
const v8::CFunction* c_function);
|
|
899
|
+
void SetFastMethod(v8::Isolate* isolate,
|
|
900
|
+
v8::Local<v8::Template> that,
|
|
901
|
+
const std::string_view name,
|
|
902
|
+
v8::FunctionCallback slow_callback,
|
|
903
|
+
const v8::MemorySpan<const v8::CFunction>& methods);
|
|
904
|
+
void SetFastMethodNoSideEffect(v8::Isolate* isolate,
|
|
905
|
+
v8::Local<v8::Template> that,
|
|
906
|
+
const std::string_view name,
|
|
907
|
+
v8::FunctionCallback slow_callback,
|
|
908
|
+
const v8::CFunction* c_function);
|
|
909
|
+
void SetFastMethodNoSideEffect(v8::Local<v8::Context> context,
|
|
910
|
+
v8::Local<v8::Object> that,
|
|
911
|
+
const std::string_view name,
|
|
912
|
+
v8::FunctionCallback slow_callback,
|
|
913
|
+
const v8::CFunction* c_function);
|
|
914
|
+
void SetFastMethodNoSideEffect(
|
|
915
|
+
v8::Isolate* isolate,
|
|
916
|
+
v8::Local<v8::Template> that,
|
|
917
|
+
const std::string_view name,
|
|
918
|
+
v8::FunctionCallback slow_callback,
|
|
919
|
+
const v8::MemorySpan<const v8::CFunction>& methods);
|
|
920
|
+
void SetProtoMethod(v8::Isolate* isolate,
|
|
921
|
+
v8::Local<v8::FunctionTemplate> that,
|
|
922
|
+
const std::string_view name,
|
|
923
|
+
v8::FunctionCallback callback);
|
|
924
|
+
|
|
925
|
+
void SetInstanceMethod(v8::Isolate* isolate,
|
|
926
|
+
v8::Local<v8::FunctionTemplate> that,
|
|
927
|
+
const std::string_view name,
|
|
928
|
+
v8::FunctionCallback callback);
|
|
929
|
+
|
|
930
|
+
// Safe variants denote the function has no side effects.
|
|
931
|
+
void SetMethodNoSideEffect(v8::Local<v8::Context> context,
|
|
932
|
+
v8::Local<v8::Object> that,
|
|
933
|
+
const std::string_view name,
|
|
934
|
+
v8::FunctionCallback callback);
|
|
935
|
+
void SetProtoMethodNoSideEffect(v8::Isolate* isolate,
|
|
936
|
+
v8::Local<v8::FunctionTemplate> that,
|
|
937
|
+
const std::string_view name,
|
|
938
|
+
v8::FunctionCallback callback);
|
|
939
|
+
void SetMethodNoSideEffect(v8::Isolate* isolate,
|
|
940
|
+
v8::Local<v8::Template> that,
|
|
941
|
+
const std::string_view name,
|
|
942
|
+
v8::FunctionCallback callback);
|
|
943
|
+
|
|
944
|
+
enum class SetConstructorFunctionFlag {
|
|
945
|
+
NONE,
|
|
946
|
+
SET_CLASS_NAME,
|
|
947
|
+
};
|
|
948
|
+
|
|
949
|
+
void SetConstructorFunction(v8::Local<v8::Context> context,
|
|
950
|
+
v8::Local<v8::Object> that,
|
|
951
|
+
const char* name,
|
|
952
|
+
v8::Local<v8::FunctionTemplate> tmpl,
|
|
953
|
+
SetConstructorFunctionFlag flag =
|
|
954
|
+
SetConstructorFunctionFlag::SET_CLASS_NAME);
|
|
955
|
+
|
|
956
|
+
void SetConstructorFunction(v8::Local<v8::Context> context,
|
|
957
|
+
v8::Local<v8::Object> that,
|
|
958
|
+
v8::Local<v8::String> name,
|
|
959
|
+
v8::Local<v8::FunctionTemplate> tmpl,
|
|
960
|
+
SetConstructorFunctionFlag flag =
|
|
961
|
+
SetConstructorFunctionFlag::SET_CLASS_NAME);
|
|
962
|
+
|
|
963
|
+
void SetConstructorFunction(v8::Isolate* isolate,
|
|
964
|
+
v8::Local<v8::Template> that,
|
|
965
|
+
const char* name,
|
|
966
|
+
v8::Local<v8::FunctionTemplate> tmpl,
|
|
967
|
+
SetConstructorFunctionFlag flag =
|
|
968
|
+
SetConstructorFunctionFlag::SET_CLASS_NAME);
|
|
969
|
+
|
|
970
|
+
void SetConstructorFunction(v8::Isolate* isolate,
|
|
971
|
+
v8::Local<v8::Template> that,
|
|
972
|
+
v8::Local<v8::String> name,
|
|
973
|
+
v8::Local<v8::FunctionTemplate> tmpl,
|
|
974
|
+
SetConstructorFunctionFlag flag =
|
|
975
|
+
SetConstructorFunctionFlag::SET_CLASS_NAME);
|
|
976
|
+
|
|
977
|
+
// Like RAIIIsolate, except doesn't enter the isolate while it's in scope.
|
|
978
|
+
class RAIIIsolateWithoutEntering {
|
|
979
|
+
public:
|
|
980
|
+
explicit RAIIIsolateWithoutEntering(const SnapshotData* data = nullptr);
|
|
981
|
+
~RAIIIsolateWithoutEntering();
|
|
982
|
+
|
|
983
|
+
v8::Isolate* get() const { return isolate_; }
|
|
984
|
+
|
|
985
|
+
private:
|
|
986
|
+
std::unique_ptr<v8::ArrayBuffer::Allocator> allocator_;
|
|
987
|
+
v8::Isolate* isolate_;
|
|
988
|
+
};
|
|
989
|
+
|
|
990
|
+
// Simple RAII class to spin up a v8::Isolate instance and enter it
|
|
991
|
+
// immediately.
|
|
992
|
+
class RAIIIsolate {
|
|
993
|
+
public:
|
|
994
|
+
explicit RAIIIsolate(const SnapshotData* data = nullptr);
|
|
995
|
+
~RAIIIsolate();
|
|
996
|
+
|
|
997
|
+
v8::Isolate* get() const { return isolate_.get(); }
|
|
998
|
+
|
|
999
|
+
private:
|
|
1000
|
+
RAIIIsolateWithoutEntering isolate_;
|
|
1001
|
+
v8::Isolate::Scope isolate_scope_;
|
|
1002
|
+
};
|
|
1003
|
+
|
|
1004
|
+
std::string DetermineSpecificErrorType(Environment* env,
|
|
1005
|
+
v8::Local<v8::Value> input);
|
|
1006
|
+
|
|
1007
|
+
v8::Maybe<int32_t> GetValidatedFd(Environment* env, v8::Local<v8::Value> input);
|
|
1008
|
+
v8::Maybe<int> GetValidFileMode(Environment* env,
|
|
1009
|
+
v8::Local<v8::Value> input,
|
|
1010
|
+
uv_fs_type type);
|
|
1011
|
+
|
|
1012
|
+
// Returns true if OS==Windows and filename ends in .bat or .cmd,
|
|
1013
|
+
// case insensitive.
|
|
1014
|
+
inline bool IsWindowsBatchFile(const char* filename);
|
|
1015
|
+
|
|
829
1016
|
} // namespace node
|
|
830
1017
|
|
|
831
1018
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|