@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
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
4
|
+
#if HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
5
|
+
|
|
6
|
+
#include <async_wrap.h>
|
|
7
|
+
#include <base_object.h>
|
|
8
|
+
#include <env.h>
|
|
9
|
+
#include <stream_base.h>
|
|
10
|
+
#include <deque>
|
|
11
|
+
|
|
12
|
+
namespace node::quic {
|
|
13
|
+
|
|
14
|
+
// The LogStream is a utility that the QUIC impl uses to publish both QLog
|
|
15
|
+
// and Keylog diagnostic data (one instance for each).
|
|
16
|
+
class LogStream : public AsyncWrap, public StreamBase {
|
|
17
|
+
public:
|
|
18
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
19
|
+
Environment* env);
|
|
20
|
+
|
|
21
|
+
static BaseObjectPtr<LogStream> Create(Environment* env);
|
|
22
|
+
|
|
23
|
+
LogStream(Environment* env, v8::Local<v8::Object> obj);
|
|
24
|
+
|
|
25
|
+
enum class EmitOption {
|
|
26
|
+
NONE,
|
|
27
|
+
FIN,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
void Emit(const uint8_t* data,
|
|
31
|
+
size_t len,
|
|
32
|
+
EmitOption option = EmitOption::NONE);
|
|
33
|
+
|
|
34
|
+
void Emit(const std::string_view line, EmitOption option = EmitOption::NONE);
|
|
35
|
+
|
|
36
|
+
void End();
|
|
37
|
+
|
|
38
|
+
int ReadStart() override;
|
|
39
|
+
|
|
40
|
+
int ReadStop() override;
|
|
41
|
+
|
|
42
|
+
// We do not use either of these.
|
|
43
|
+
int DoShutdown(ShutdownWrap* req_wrap) override;
|
|
44
|
+
int DoWrite(WriteWrap* w,
|
|
45
|
+
uv_buf_t* bufs,
|
|
46
|
+
size_t count,
|
|
47
|
+
uv_stream_t* send_handle) override;
|
|
48
|
+
|
|
49
|
+
bool IsAlive() override;
|
|
50
|
+
bool IsClosing() override;
|
|
51
|
+
AsyncWrap* GetAsyncWrap() override;
|
|
52
|
+
|
|
53
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
54
|
+
SET_MEMORY_INFO_NAME(LogStream)
|
|
55
|
+
SET_SELF_SIZE(LogStream)
|
|
56
|
+
|
|
57
|
+
private:
|
|
58
|
+
struct Chunk {
|
|
59
|
+
// len will be <= buf.len
|
|
60
|
+
size_t len;
|
|
61
|
+
uv_buf_t buf;
|
|
62
|
+
};
|
|
63
|
+
size_t total_ = 0;
|
|
64
|
+
bool fin_seen_ = false;
|
|
65
|
+
bool ended_ = false;
|
|
66
|
+
bool reading_ = false;
|
|
67
|
+
std::deque<Chunk> buffer_;
|
|
68
|
+
|
|
69
|
+
// The value here is fairly arbitrary. Once we get everything
|
|
70
|
+
// fully implemented and start working with this, we might
|
|
71
|
+
// tune this number further.
|
|
72
|
+
static constexpr size_t kMaxLogStreamBuffer = 1024 * 10;
|
|
73
|
+
|
|
74
|
+
// The LogStream buffer enforces a maximum size of kMaxLogStreamBuffer.
|
|
75
|
+
void ensure_space(size_t amt);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
} // namespace node::quic
|
|
79
|
+
|
|
80
|
+
#endif // HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
81
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#ifndef SRC_INSPECTOR_MAIN_THREAD_INTERFACE_H_
|
|
2
|
+
#define SRC_INSPECTOR_MAIN_THREAD_INTERFACE_H_
|
|
3
|
+
|
|
4
|
+
#if !HAVE_INSPECTOR
|
|
5
|
+
#error("This header can only be used when inspector is enabled")
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
#include "inspector_agent.h"
|
|
9
|
+
#include "node_mutex.h"
|
|
10
|
+
|
|
11
|
+
#include <atomic>
|
|
12
|
+
#include <deque>
|
|
13
|
+
#include <memory>
|
|
14
|
+
#include <unordered_map>
|
|
15
|
+
|
|
16
|
+
namespace v8_inspector {
|
|
17
|
+
class StringBuffer;
|
|
18
|
+
class StringView;
|
|
19
|
+
} // namespace v8_inspector
|
|
20
|
+
|
|
21
|
+
namespace node {
|
|
22
|
+
namespace inspector {
|
|
23
|
+
class MainThreadInterface;
|
|
24
|
+
|
|
25
|
+
class Request {
|
|
26
|
+
public:
|
|
27
|
+
virtual void Call(MainThreadInterface*) = 0;
|
|
28
|
+
virtual ~Request() = default;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
class Deletable {
|
|
32
|
+
public:
|
|
33
|
+
virtual ~Deletable() = default;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
std::unique_ptr<v8_inspector::StringBuffer> Utf8ToStringView(
|
|
37
|
+
const std::string_view message);
|
|
38
|
+
|
|
39
|
+
using MessageQueue = std::deque<std::unique_ptr<Request>>;
|
|
40
|
+
|
|
41
|
+
class MainThreadHandle : public std::enable_shared_from_this<MainThreadHandle> {
|
|
42
|
+
public:
|
|
43
|
+
explicit MainThreadHandle(MainThreadInterface* main_thread)
|
|
44
|
+
: main_thread_(main_thread) {
|
|
45
|
+
}
|
|
46
|
+
~MainThreadHandle() {
|
|
47
|
+
Mutex::ScopedLock scoped_lock(block_lock_);
|
|
48
|
+
CHECK_NULL(main_thread_); // main_thread_ should have called Reset
|
|
49
|
+
}
|
|
50
|
+
std::unique_ptr<InspectorSession> Connect(
|
|
51
|
+
std::unique_ptr<InspectorSessionDelegate> delegate,
|
|
52
|
+
bool prevent_shutdown);
|
|
53
|
+
int newObjectId() {
|
|
54
|
+
return ++next_object_id_;
|
|
55
|
+
}
|
|
56
|
+
bool Post(std::unique_ptr<Request> request);
|
|
57
|
+
std::unique_ptr<InspectorSessionDelegate> MakeDelegateThreadSafe(
|
|
58
|
+
std::unique_ptr<InspectorSessionDelegate> delegate);
|
|
59
|
+
bool Expired();
|
|
60
|
+
void SetTargetSessionId(int target_session_id) {
|
|
61
|
+
target_session_id_ = target_session_id;
|
|
62
|
+
}
|
|
63
|
+
std::optional<int> GetTargetSessionId() { return target_session_id_; }
|
|
64
|
+
|
|
65
|
+
private:
|
|
66
|
+
void Reset();
|
|
67
|
+
|
|
68
|
+
MainThreadInterface* main_thread_;
|
|
69
|
+
Mutex block_lock_;
|
|
70
|
+
int next_session_id_ = 0;
|
|
71
|
+
std::atomic_int next_object_id_ = {1};
|
|
72
|
+
std::optional<int> target_session_id_ = std::nullopt;
|
|
73
|
+
|
|
74
|
+
friend class MainThreadInterface;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
class MainThreadInterface :
|
|
78
|
+
public std::enable_shared_from_this<MainThreadInterface> {
|
|
79
|
+
public:
|
|
80
|
+
explicit MainThreadInterface(Agent* agent);
|
|
81
|
+
~MainThreadInterface();
|
|
82
|
+
|
|
83
|
+
void DispatchMessages();
|
|
84
|
+
void Post(std::unique_ptr<Request> request);
|
|
85
|
+
bool WaitForFrontendEvent();
|
|
86
|
+
void StopWaitingForFrontendEvent();
|
|
87
|
+
std::shared_ptr<MainThreadHandle> GetHandle();
|
|
88
|
+
Agent* inspector_agent() {
|
|
89
|
+
return agent_;
|
|
90
|
+
}
|
|
91
|
+
void AddObject(int handle, std::unique_ptr<Deletable> object);
|
|
92
|
+
Deletable* GetObject(int id);
|
|
93
|
+
Deletable* GetObjectIfExists(int id);
|
|
94
|
+
void RemoveObject(int handle);
|
|
95
|
+
|
|
96
|
+
private:
|
|
97
|
+
MessageQueue requests_;
|
|
98
|
+
Mutex requests_lock_; // requests_ live across threads
|
|
99
|
+
// This queue is to maintain the order of the messages for the cases
|
|
100
|
+
// when we reenter the DispatchMessages function.
|
|
101
|
+
MessageQueue dispatching_message_queue_;
|
|
102
|
+
bool dispatching_messages_ = false;
|
|
103
|
+
// This flag indicates an internal request to exit the loop in
|
|
104
|
+
// WaitForFrontendEvent(). It's set to true by calling
|
|
105
|
+
// StopWaitingForFrontendEvent().
|
|
106
|
+
bool stop_waiting_for_frontend_event_requested_ = false;
|
|
107
|
+
ConditionVariable incoming_message_cond_;
|
|
108
|
+
// Used from any thread
|
|
109
|
+
Agent* const agent_;
|
|
110
|
+
std::shared_ptr<MainThreadHandle> handle_;
|
|
111
|
+
std::unordered_map<int, std::unique_ptr<Deletable>> managed_objects_;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
} // namespace inspector
|
|
115
|
+
} // namespace node
|
|
116
|
+
#endif // SRC_INSPECTOR_MAIN_THREAD_INTERFACE_H_
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
+
#include "cppgc_helpers.h"
|
|
6
7
|
#include "memory_tracker.h"
|
|
8
|
+
#include "util-inl.h"
|
|
7
9
|
|
|
8
10
|
namespace node {
|
|
9
11
|
|
|
@@ -27,10 +29,28 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node {
|
|
|
27
29
|
CHECK_NOT_NULL(retainer_);
|
|
28
30
|
v8::HandleScope handle_scope(tracker->isolate());
|
|
29
31
|
v8::Local<v8::Object> obj = retainer_->WrappedObject();
|
|
30
|
-
if (!obj.IsEmpty())
|
|
32
|
+
if (!obj.IsEmpty())
|
|
33
|
+
wrapper_node_ = tracker->graph()->V8Node(obj.As<v8::Value>());
|
|
31
34
|
|
|
32
35
|
name_ = retainer_->MemoryInfoName();
|
|
33
36
|
size_ = retainer_->SelfSize();
|
|
37
|
+
detachedness_ = retainer_->GetDetachedness();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
inline MemoryRetainerNode(MemoryTracker* tracker, const CppgcMixin* mixin)
|
|
41
|
+
: retainer_(mixin) {
|
|
42
|
+
// In this case, the MemoryRetainerNode is merely a wrapper
|
|
43
|
+
// to be used in the NodeMap and stack. The actual node being using to add
|
|
44
|
+
// edges is always the merged wrapper node of the cppgc-managed wrapper.
|
|
45
|
+
CHECK_NOT_NULL(retainer_);
|
|
46
|
+
v8::Isolate* isolate = tracker->isolate();
|
|
47
|
+
v8::HandleScope handle_scope(isolate);
|
|
48
|
+
v8::Local<v8::Object> obj = mixin->object(isolate);
|
|
49
|
+
wrapper_node_ = tracker->graph()->V8Node(obj.As<v8::Value>());
|
|
50
|
+
|
|
51
|
+
name_ = retainer_->MemoryInfoName();
|
|
52
|
+
size_ = 0;
|
|
53
|
+
detachedness_ = retainer_->GetDetachedness();
|
|
34
54
|
}
|
|
35
55
|
|
|
36
56
|
inline MemoryRetainerNode(MemoryTracker* tracker,
|
|
@@ -43,7 +63,7 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node {
|
|
|
43
63
|
is_root_node_ = is_root_node;
|
|
44
64
|
}
|
|
45
65
|
|
|
46
|
-
const char* Name() override { return name_
|
|
66
|
+
const char* Name() override { return name_; }
|
|
47
67
|
const char* NamePrefix() override { return "Node /"; }
|
|
48
68
|
size_t SizeInBytes() override { return size_; }
|
|
49
69
|
// TODO(addaleax): Merging this with the "official" WrapperNode() method
|
|
@@ -58,6 +78,14 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node {
|
|
|
58
78
|
return is_root_node_;
|
|
59
79
|
}
|
|
60
80
|
|
|
81
|
+
bool IsCppgcWrapper() const {
|
|
82
|
+
return retainer_ != nullptr && retainer_->IsCppgcWrapper();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
v8::EmbedderGraph::Node::Detachedness GetDetachedness() override {
|
|
86
|
+
return detachedness_;
|
|
87
|
+
}
|
|
88
|
+
|
|
61
89
|
private:
|
|
62
90
|
friend class MemoryTracker;
|
|
63
91
|
|
|
@@ -71,8 +99,10 @@ class MemoryRetainerNode : public v8::EmbedderGraph::Node {
|
|
|
71
99
|
|
|
72
100
|
// Otherwise (retainer == nullptr), we set these fields in an ad-hoc way
|
|
73
101
|
bool is_root_node_ = false;
|
|
74
|
-
|
|
102
|
+
const char* name_;
|
|
75
103
|
size_t size_ = 0;
|
|
104
|
+
v8::EmbedderGraph::Node::Detachedness detachedness_ =
|
|
105
|
+
v8::EmbedderGraph::Node::Detachedness::kUnknown;
|
|
76
106
|
};
|
|
77
107
|
|
|
78
108
|
void MemoryTracker::TrackFieldWithSize(const char* edge_name,
|
|
@@ -86,7 +116,7 @@ void MemoryTracker::TrackInlineFieldWithSize(const char* edge_name,
|
|
|
86
116
|
const char* node_name) {
|
|
87
117
|
if (size > 0) AddNode(GetNodeName(node_name, edge_name), size, edge_name);
|
|
88
118
|
CHECK(CurrentNode());
|
|
89
|
-
|
|
119
|
+
AdjustCurrentNodeSize(-static_cast<int>(size));
|
|
90
120
|
}
|
|
91
121
|
|
|
92
122
|
void MemoryTracker::TrackField(const char* edge_name,
|
|
@@ -147,7 +177,7 @@ void MemoryTracker::TrackField(const char* edge_name,
|
|
|
147
177
|
// Fall back to edge name if node names are not provided
|
|
148
178
|
if (CurrentNode() != nullptr && subtract_from_self) {
|
|
149
179
|
// Shift the self size of this container out to a separate node
|
|
150
|
-
|
|
180
|
+
AdjustCurrentNodeSize(-static_cast<int>(sizeof(T)));
|
|
151
181
|
}
|
|
152
182
|
PushNode(GetNodeName(node_name, edge_name), sizeof(T), edge_name);
|
|
153
183
|
for (Iterator it = value.begin(); it != value.end(); ++it) {
|
|
@@ -178,7 +208,7 @@ void MemoryTracker::TrackField(const char* edge_name,
|
|
|
178
208
|
const T& value,
|
|
179
209
|
const char* node_name) {
|
|
180
210
|
// For numbers, creating new nodes is not worth the overhead.
|
|
181
|
-
|
|
211
|
+
AdjustCurrentNodeSize(static_cast<int>(sizeof(T)));
|
|
182
212
|
}
|
|
183
213
|
|
|
184
214
|
template <typename T, typename U>
|
|
@@ -223,7 +253,9 @@ void MemoryTracker::TrackField(const char* edge_name,
|
|
|
223
253
|
const v8::Local<T>& value,
|
|
224
254
|
const char* node_name) {
|
|
225
255
|
if (!value.IsEmpty())
|
|
226
|
-
graph_->AddEdge(CurrentNode(),
|
|
256
|
+
graph_->AddEdge(CurrentNode(),
|
|
257
|
+
graph_->V8Node(value.template As<v8::Value>()),
|
|
258
|
+
edge_name);
|
|
227
259
|
}
|
|
228
260
|
|
|
229
261
|
template <typename T>
|
|
@@ -263,11 +295,20 @@ void MemoryTracker::TrackInlineField(const char* name,
|
|
|
263
295
|
TrackInlineFieldWithSize(name, sizeof(value), "uv_async_t");
|
|
264
296
|
}
|
|
265
297
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
298
|
+
void MemoryTracker::Track(const CppgcMixin* retainer, const char* edge_name) {
|
|
299
|
+
v8::HandleScope handle_scope(isolate_);
|
|
300
|
+
auto it = seen_.find(retainer);
|
|
301
|
+
if (it != seen_.end()) {
|
|
302
|
+
if (CurrentNode() != nullptr) {
|
|
303
|
+
graph_->AddEdge(CurrentNode(), it->second, edge_name);
|
|
304
|
+
}
|
|
305
|
+
return; // It has already been tracked, no need to call MemoryInfo again
|
|
306
|
+
}
|
|
307
|
+
MemoryRetainerNode* n = PushNode(retainer, edge_name);
|
|
308
|
+
retainer->MemoryInfo(this);
|
|
309
|
+
CHECK_EQ(CurrentNode(), n->JSWrapperNode());
|
|
310
|
+
// This is a dummy MemoryRetainerNode. The real graph node is wrapper_node_.
|
|
311
|
+
PopNode();
|
|
271
312
|
}
|
|
272
313
|
|
|
273
314
|
void MemoryTracker::Track(const MemoryRetainer* retainer,
|
|
@@ -291,12 +332,54 @@ void MemoryTracker::TrackInlineField(const MemoryRetainer* retainer,
|
|
|
291
332
|
const char* edge_name) {
|
|
292
333
|
Track(retainer, edge_name);
|
|
293
334
|
CHECK(CurrentNode());
|
|
294
|
-
|
|
335
|
+
AdjustCurrentNodeSize(-(static_cast<int>(retainer->SelfSize())));
|
|
295
336
|
}
|
|
296
337
|
|
|
297
|
-
|
|
338
|
+
template <typename T>
|
|
339
|
+
inline void MemoryTracker::TraitTrack(const T& retainer,
|
|
340
|
+
const char* edge_name) {
|
|
341
|
+
MemoryRetainerNode* n =
|
|
342
|
+
PushNode(MemoryRetainerTraits<T>::MemoryInfoName(retainer),
|
|
343
|
+
MemoryRetainerTraits<T>::SelfSize(retainer),
|
|
344
|
+
edge_name);
|
|
345
|
+
MemoryRetainerTraits<T>::MemoryInfo(this, retainer);
|
|
346
|
+
CHECK_EQ(CurrentNode(), n);
|
|
347
|
+
CHECK_NE(n->size_, 0);
|
|
348
|
+
PopNode();
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
template <typename T>
|
|
352
|
+
inline void MemoryTracker::TraitTrackInline(const T& retainer,
|
|
353
|
+
const char* edge_name) {
|
|
354
|
+
TraitTrack(retainer, edge_name);
|
|
355
|
+
CHECK(CurrentNode());
|
|
356
|
+
AdjustCurrentNodeSize(
|
|
357
|
+
-(static_cast<int>(MemoryRetainerTraits<T>::SelfSize(retainer))));
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
v8::EmbedderGraph::Node* MemoryTracker::CurrentNode() const {
|
|
298
361
|
if (node_stack_.empty()) return nullptr;
|
|
299
|
-
|
|
362
|
+
MemoryRetainerNode* n = node_stack_.top();
|
|
363
|
+
if (n->IsCppgcWrapper()) {
|
|
364
|
+
return n->JSWrapperNode();
|
|
365
|
+
}
|
|
366
|
+
return n;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
MemoryRetainerNode* MemoryTracker::AddNode(const CppgcMixin* retainer,
|
|
370
|
+
const char* edge_name) {
|
|
371
|
+
auto it = seen_.find(retainer);
|
|
372
|
+
if (it != seen_.end()) {
|
|
373
|
+
return it->second;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
MemoryRetainerNode* n = new MemoryRetainerNode(this, retainer);
|
|
377
|
+
seen_[retainer] = n;
|
|
378
|
+
if (CurrentNode() != nullptr) {
|
|
379
|
+
graph_->AddEdge(CurrentNode(), n->JSWrapperNode(), edge_name);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
return n;
|
|
300
383
|
}
|
|
301
384
|
|
|
302
385
|
MemoryRetainerNode* MemoryTracker::AddNode(const MemoryRetainer* retainer,
|
|
@@ -312,8 +395,8 @@ MemoryRetainerNode* MemoryTracker::AddNode(const MemoryRetainer* retainer,
|
|
|
312
395
|
if (CurrentNode() != nullptr) graph_->AddEdge(CurrentNode(), n, edge_name);
|
|
313
396
|
|
|
314
397
|
if (n->JSWrapperNode() != nullptr) {
|
|
315
|
-
graph_->AddEdge(n, n->JSWrapperNode(), "
|
|
316
|
-
graph_->AddEdge(n->JSWrapperNode(), n, "
|
|
398
|
+
graph_->AddEdge(n, n->JSWrapperNode(), "native_to_javascript");
|
|
399
|
+
graph_->AddEdge(n->JSWrapperNode(), n, "javascript_to_native");
|
|
317
400
|
}
|
|
318
401
|
|
|
319
402
|
return n;
|
|
@@ -330,6 +413,13 @@ MemoryRetainerNode* MemoryTracker::AddNode(const char* node_name,
|
|
|
330
413
|
return n;
|
|
331
414
|
}
|
|
332
415
|
|
|
416
|
+
MemoryRetainerNode* MemoryTracker::PushNode(const CppgcMixin* retainer,
|
|
417
|
+
const char* edge_name) {
|
|
418
|
+
MemoryRetainerNode* n = AddNode(retainer, edge_name);
|
|
419
|
+
node_stack_.push(n);
|
|
420
|
+
return n;
|
|
421
|
+
}
|
|
422
|
+
|
|
333
423
|
MemoryRetainerNode* MemoryTracker::PushNode(const MemoryRetainer* retainer,
|
|
334
424
|
const char* edge_name) {
|
|
335
425
|
MemoryRetainerNode* n = AddNode(retainer, edge_name);
|
|
@@ -349,6 +439,14 @@ void MemoryTracker::PopNode() {
|
|
|
349
439
|
node_stack_.pop();
|
|
350
440
|
}
|
|
351
441
|
|
|
442
|
+
void MemoryTracker::AdjustCurrentNodeSize(int diff) {
|
|
443
|
+
if (node_stack_.empty()) return;
|
|
444
|
+
MemoryRetainerNode* n = node_stack_.top();
|
|
445
|
+
if (!n->IsCppgcWrapper()) {
|
|
446
|
+
n->size_ = static_cast<size_t>(static_cast<int>(n->size_) + diff);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
352
450
|
} // namespace node
|
|
353
451
|
|
|
354
452
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
4
4
|
|
|
5
|
-
#include "aliased_buffer.h"
|
|
6
5
|
#include "v8-profiler.h"
|
|
7
6
|
|
|
8
7
|
#include <uv.h>
|
|
@@ -13,11 +12,20 @@
|
|
|
13
12
|
#include <string>
|
|
14
13
|
#include <unordered_map>
|
|
15
14
|
|
|
15
|
+
namespace v8 {
|
|
16
|
+
class BackingStore;
|
|
17
|
+
}
|
|
18
|
+
|
|
16
19
|
namespace node {
|
|
17
20
|
|
|
21
|
+
class CppgcMixin;
|
|
22
|
+
|
|
23
|
+
template <typename T>
|
|
24
|
+
struct MallocedBuffer;
|
|
25
|
+
|
|
18
26
|
// Set the node name of a MemoryRetainer to klass
|
|
19
27
|
#define SET_MEMORY_INFO_NAME(Klass) \
|
|
20
|
-
inline
|
|
28
|
+
inline const char* MemoryInfoName() const override { return #Klass; }
|
|
21
29
|
|
|
22
30
|
// Set the self size of a MemoryRetainer to the stack-allocated size of a
|
|
23
31
|
// certain class
|
|
@@ -68,7 +76,7 @@ class CleanupHookCallback;
|
|
|
68
76
|
* }
|
|
69
77
|
*
|
|
70
78
|
* // Or use SET_MEMORY_INFO_NAME(ExampleRetainer)
|
|
71
|
-
*
|
|
79
|
+
* const char* MemoryInfoName() const override {
|
|
72
80
|
* return "ExampleRetainer";
|
|
73
81
|
* }
|
|
74
82
|
*
|
|
@@ -119,7 +127,7 @@ class MemoryRetainer {
|
|
|
119
127
|
// where all the edges start from the node of the current retainer,
|
|
120
128
|
// and point to the nodes as specified by tracker->Track* calls.
|
|
121
129
|
virtual void MemoryInfo(MemoryTracker* tracker) const = 0;
|
|
122
|
-
virtual
|
|
130
|
+
virtual const char* MemoryInfoName() const = 0;
|
|
123
131
|
virtual size_t SelfSize() const = 0;
|
|
124
132
|
|
|
125
133
|
virtual v8::Local<v8::Object> WrappedObject() const {
|
|
@@ -127,8 +135,39 @@ class MemoryRetainer {
|
|
|
127
135
|
}
|
|
128
136
|
|
|
129
137
|
virtual bool IsRootNode() const { return false; }
|
|
138
|
+
virtual bool IsCppgcWrapper() const { return false; }
|
|
139
|
+
virtual v8::EmbedderGraph::Node::Detachedness GetDetachedness() const {
|
|
140
|
+
return v8::EmbedderGraph::Node::Detachedness::kUnknown;
|
|
141
|
+
}
|
|
130
142
|
};
|
|
131
143
|
|
|
144
|
+
/**
|
|
145
|
+
* MemoryRetainerTraits allows defining a custom memory info for a
|
|
146
|
+
* class that can not be modified to implement the MemoryRetainer interface.
|
|
147
|
+
*
|
|
148
|
+
* Example:
|
|
149
|
+
*
|
|
150
|
+
* template <>
|
|
151
|
+
* struct MemoryRetainerTraits<ExampleRetainer> {
|
|
152
|
+
* static void MemoryInfo(MemoryTracker* tracker,
|
|
153
|
+
* const ExampleRetainer& value) {
|
|
154
|
+
* tracker->TrackField("another_retainer", value.another_retainer_);
|
|
155
|
+
* }
|
|
156
|
+
* static const char* MemoryInfoName(const ExampleRetainer& value) {
|
|
157
|
+
* return "ExampleRetainer";
|
|
158
|
+
* }
|
|
159
|
+
* static size_t SelfSize(const ExampleRetainer& value) {
|
|
160
|
+
* return sizeof(value);
|
|
161
|
+
* }
|
|
162
|
+
* };
|
|
163
|
+
*
|
|
164
|
+
* This creates the following graph:
|
|
165
|
+
* Node / ExampleRetainer
|
|
166
|
+
* |> another_retainer :: Node / AnotherRetainerClass
|
|
167
|
+
*/
|
|
168
|
+
template <typename T, typename = void>
|
|
169
|
+
struct MemoryRetainerTraits {};
|
|
170
|
+
|
|
132
171
|
class MemoryTracker {
|
|
133
172
|
public:
|
|
134
173
|
// Used to specify node name and size explicitly
|
|
@@ -228,13 +267,11 @@ class MemoryTracker {
|
|
|
228
267
|
inline void TrackInlineField(const char* edge_name,
|
|
229
268
|
const uv_async_t& value,
|
|
230
269
|
const char* node_name = nullptr);
|
|
231
|
-
template <class NativeT, class V8T>
|
|
232
|
-
inline void TrackField(const char* edge_name,
|
|
233
|
-
const AliasedBufferBase<NativeT, V8T>& value,
|
|
234
|
-
const char* node_name = nullptr);
|
|
235
270
|
|
|
236
271
|
// Put a memory container into the graph, create an edge from
|
|
237
272
|
// the current node if there is one on the stack.
|
|
273
|
+
inline void Track(const CppgcMixin* retainer,
|
|
274
|
+
const char* edge_name = nullptr);
|
|
238
275
|
inline void Track(const MemoryRetainer* retainer,
|
|
239
276
|
const char* edge_name = nullptr);
|
|
240
277
|
|
|
@@ -249,6 +286,13 @@ class MemoryTracker {
|
|
|
249
286
|
inline void TrackInlineField(const MemoryRetainer* retainer,
|
|
250
287
|
const char* edge_name = nullptr);
|
|
251
288
|
|
|
289
|
+
// MemoryRetainerTraits implementation helpers.
|
|
290
|
+
template <typename T>
|
|
291
|
+
inline void TraitTrack(const T& retainer, const char* edge_name = nullptr);
|
|
292
|
+
template <typename T>
|
|
293
|
+
inline void TraitTrackInline(const T& retainer,
|
|
294
|
+
const char* edge_name = nullptr);
|
|
295
|
+
|
|
252
296
|
inline v8::EmbedderGraph* graph() { return graph_; }
|
|
253
297
|
inline v8::Isolate* isolate() { return isolate_; }
|
|
254
298
|
|
|
@@ -260,9 +304,14 @@ class MemoryTracker {
|
|
|
260
304
|
typedef std::unordered_map<const MemoryRetainer*, MemoryRetainerNode*>
|
|
261
305
|
NodeMap;
|
|
262
306
|
|
|
263
|
-
inline
|
|
307
|
+
inline void AdjustCurrentNodeSize(int diff);
|
|
308
|
+
inline v8::EmbedderGraph::Node* CurrentNode() const;
|
|
309
|
+
inline MemoryRetainerNode* AddNode(const CppgcMixin* retainer,
|
|
310
|
+
const char* edge_name = nullptr);
|
|
264
311
|
inline MemoryRetainerNode* AddNode(const MemoryRetainer* retainer,
|
|
265
312
|
const char* edge_name = nullptr);
|
|
313
|
+
inline MemoryRetainerNode* PushNode(const CppgcMixin* retainer,
|
|
314
|
+
const char* edge_name = nullptr);
|
|
266
315
|
inline MemoryRetainerNode* PushNode(const MemoryRetainer* retainer,
|
|
267
316
|
const char* edge_name = nullptr);
|
|
268
317
|
inline MemoryRetainerNode* AddNode(const char* node_name,
|