@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,167 @@
|
|
|
1
|
+
#ifndef SRC_PERMISSION_FS_PERMISSION_H_
|
|
2
|
+
#define SRC_PERMISSION_FS_PERMISSION_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "v8.h"
|
|
7
|
+
|
|
8
|
+
#include <unordered_map>
|
|
9
|
+
#include "permission/permission_base.h"
|
|
10
|
+
#include "util.h"
|
|
11
|
+
|
|
12
|
+
namespace node {
|
|
13
|
+
|
|
14
|
+
namespace permission {
|
|
15
|
+
|
|
16
|
+
class FSPermission final : public PermissionBase {
|
|
17
|
+
public:
|
|
18
|
+
void Apply(Environment* env,
|
|
19
|
+
const std::vector<std::string>& allow,
|
|
20
|
+
PermissionScope scope) override;
|
|
21
|
+
bool is_granted(Environment* env,
|
|
22
|
+
PermissionScope perm,
|
|
23
|
+
const std::string_view& param) const override;
|
|
24
|
+
|
|
25
|
+
struct RadixTree {
|
|
26
|
+
struct Node {
|
|
27
|
+
std::string prefix;
|
|
28
|
+
std::unordered_map<char, Node*> children;
|
|
29
|
+
Node* wildcard_child;
|
|
30
|
+
bool is_leaf;
|
|
31
|
+
|
|
32
|
+
explicit Node(const std::string& pre)
|
|
33
|
+
: prefix(pre), wildcard_child(nullptr), is_leaf(false) {}
|
|
34
|
+
|
|
35
|
+
Node() : wildcard_child(nullptr), is_leaf(false) {}
|
|
36
|
+
|
|
37
|
+
Node* CreateChild(const std::string& path_prefix) {
|
|
38
|
+
if (path_prefix.empty() && !is_leaf) {
|
|
39
|
+
is_leaf = true;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
CHECK(!path_prefix.empty());
|
|
44
|
+
char label = path_prefix[0];
|
|
45
|
+
|
|
46
|
+
Node* child = children[label];
|
|
47
|
+
if (child == nullptr) {
|
|
48
|
+
children[label] = new Node(path_prefix);
|
|
49
|
+
return children[label];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// swap prefix
|
|
53
|
+
size_t i = 0;
|
|
54
|
+
size_t prefix_len = path_prefix.length();
|
|
55
|
+
for (; i < child->prefix.length(); ++i) {
|
|
56
|
+
if (i > prefix_len || path_prefix[i] != child->prefix[i]) {
|
|
57
|
+
std::string parent_prefix = child->prefix.substr(0, i);
|
|
58
|
+
std::string child_prefix = child->prefix.substr(i);
|
|
59
|
+
|
|
60
|
+
child->prefix = child_prefix;
|
|
61
|
+
Node* split_child = new Node(parent_prefix);
|
|
62
|
+
split_child->children[child_prefix[0]] = child;
|
|
63
|
+
children[parent_prefix[0]] = split_child;
|
|
64
|
+
|
|
65
|
+
return split_child->CreateChild(path_prefix.substr(i));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
child->is_leaf = true;
|
|
69
|
+
return child->CreateChild(path_prefix.substr(i));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
Node* CreateWildcardChild() {
|
|
73
|
+
if (wildcard_child != nullptr) {
|
|
74
|
+
return wildcard_child;
|
|
75
|
+
}
|
|
76
|
+
wildcard_child = new Node();
|
|
77
|
+
return wildcard_child;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
Node* NextNode(const std::string& path, size_t idx) const {
|
|
81
|
+
if (idx >= path.length()) {
|
|
82
|
+
return nullptr;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// wildcard node takes precedence
|
|
86
|
+
if (children.size() > 1) {
|
|
87
|
+
auto it = children.find('*');
|
|
88
|
+
if (it != children.end()) {
|
|
89
|
+
return it->second;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
auto it = children.find(path[idx]);
|
|
94
|
+
if (it == children.end()) {
|
|
95
|
+
return nullptr;
|
|
96
|
+
}
|
|
97
|
+
auto child = it->second;
|
|
98
|
+
// match prefix
|
|
99
|
+
size_t prefix_len = child->prefix.length();
|
|
100
|
+
for (size_t i = 0; i < path.length(); ++i) {
|
|
101
|
+
if (i >= prefix_len || child->prefix[i] == '*') {
|
|
102
|
+
return child;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Handle optional trailing
|
|
106
|
+
// path = /home/subdirectory
|
|
107
|
+
// child = subdirectory/*
|
|
108
|
+
if (idx >= path.length() &&
|
|
109
|
+
child->prefix[i] == node::kPathSeparator) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (path[idx++] != child->prefix[i]) {
|
|
114
|
+
return nullptr;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return child;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// A node can be a *end* node and have children
|
|
121
|
+
// E.g: */slower*, */slown* are inserted:
|
|
122
|
+
// /slow
|
|
123
|
+
// ---> er
|
|
124
|
+
// ---> n
|
|
125
|
+
// If */slow* is inserted right after, it will create an
|
|
126
|
+
// empty node
|
|
127
|
+
// /slow
|
|
128
|
+
// ---> '\000' ASCII (0) || \0
|
|
129
|
+
// ---> er
|
|
130
|
+
// ---> n
|
|
131
|
+
bool IsEndNode() const {
|
|
132
|
+
if (children.empty()) {
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
return is_leaf;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
RadixTree();
|
|
140
|
+
~RadixTree();
|
|
141
|
+
void Insert(const std::string& s);
|
|
142
|
+
bool Lookup(const std::string_view& s) const { return Lookup(s, false); }
|
|
143
|
+
bool Lookup(const std::string_view& s, bool when_empty_return) const;
|
|
144
|
+
|
|
145
|
+
private:
|
|
146
|
+
Node* root_node_;
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
private:
|
|
150
|
+
void GrantAccess(PermissionScope scope, const std::string& param);
|
|
151
|
+
// fs granted on startup
|
|
152
|
+
RadixTree granted_in_fs_;
|
|
153
|
+
RadixTree granted_out_fs_;
|
|
154
|
+
|
|
155
|
+
bool deny_all_in_ = true;
|
|
156
|
+
bool deny_all_out_ = true;
|
|
157
|
+
|
|
158
|
+
bool allow_all_in_ = false;
|
|
159
|
+
bool allow_all_out_ = false;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
} // namespace permission
|
|
163
|
+
|
|
164
|
+
} // namespace node
|
|
165
|
+
|
|
166
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
167
|
+
#endif // SRC_PERMISSION_FS_PERMISSION_H_
|
|
@@ -76,6 +76,8 @@ class HandleWrap : public AsyncWrap {
|
|
|
76
76
|
virtual void Close(
|
|
77
77
|
v8::Local<v8::Value> close_callback = v8::Local<v8::Value>());
|
|
78
78
|
|
|
79
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
80
|
+
IsolateData* isolate_data);
|
|
79
81
|
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
80
82
|
Environment* env);
|
|
81
83
|
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
@@ -97,6 +99,7 @@ class HandleWrap : public AsyncWrap {
|
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
static void OnClose(uv_handle_t* handle);
|
|
102
|
+
enum { kInitialized, kClosing, kClosed } state_;
|
|
100
103
|
|
|
101
104
|
private:
|
|
102
105
|
friend class Environment;
|
|
@@ -106,10 +109,9 @@ class HandleWrap : public AsyncWrap {
|
|
|
106
109
|
// class because it is used by src/node_postmortem_metadata.cc to calculate
|
|
107
110
|
// offsets and generate debug symbols for HandleWrap, which assumes that the
|
|
108
111
|
// position of members in memory are predictable. For more information please
|
|
109
|
-
// refer to `doc/
|
|
112
|
+
// refer to `doc/contributing/node-postmortem-support.md`
|
|
110
113
|
friend int GenDebugSymbols();
|
|
111
114
|
ListNode<HandleWrap> handle_wrap_queue_;
|
|
112
|
-
enum { kInitialized, kClosing, kClosed } state_;
|
|
113
115
|
uv_handle_t* const handle_;
|
|
114
116
|
};
|
|
115
117
|
|
|
@@ -13,35 +13,49 @@ void Histogram::Reset() {
|
|
|
13
13
|
Mutex::ScopedLock lock(mutex_);
|
|
14
14
|
hdr_reset(histogram_.get());
|
|
15
15
|
exceeds_ = 0;
|
|
16
|
+
count_ = 0;
|
|
16
17
|
prev_ = 0;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
double Histogram::Add(const Histogram& other) {
|
|
21
|
+
Mutex::ScopedLock lock(mutex_);
|
|
22
|
+
count_ += other.count_;
|
|
23
|
+
exceeds_ += other.exceeds_;
|
|
24
|
+
if (other.prev_ > prev_)
|
|
25
|
+
prev_ = other.prev_;
|
|
26
|
+
return static_cast<double>(hdr_add(histogram_.get(), other.histogram_.get()));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
size_t Histogram::Count() const {
|
|
30
|
+
Mutex::ScopedLock lock(mutex_);
|
|
31
|
+
return count_;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
int64_t Histogram::Min() const {
|
|
20
35
|
Mutex::ScopedLock lock(mutex_);
|
|
21
36
|
return hdr_min(histogram_.get());
|
|
22
37
|
}
|
|
23
38
|
|
|
24
|
-
int64_t Histogram::Max() {
|
|
39
|
+
int64_t Histogram::Max() const {
|
|
25
40
|
Mutex::ScopedLock lock(mutex_);
|
|
26
41
|
return hdr_max(histogram_.get());
|
|
27
42
|
}
|
|
28
43
|
|
|
29
|
-
double Histogram::Mean() {
|
|
44
|
+
double Histogram::Mean() const {
|
|
30
45
|
Mutex::ScopedLock lock(mutex_);
|
|
31
46
|
return hdr_mean(histogram_.get());
|
|
32
47
|
}
|
|
33
48
|
|
|
34
|
-
double Histogram::Stddev() {
|
|
49
|
+
double Histogram::Stddev() const {
|
|
35
50
|
Mutex::ScopedLock lock(mutex_);
|
|
36
51
|
return hdr_stddev(histogram_.get());
|
|
37
52
|
}
|
|
38
53
|
|
|
39
|
-
|
|
54
|
+
int64_t Histogram::Percentile(double percentile) const {
|
|
40
55
|
Mutex::ScopedLock lock(mutex_);
|
|
41
56
|
CHECK_GT(percentile, 0);
|
|
42
57
|
CHECK_LE(percentile, 100);
|
|
43
|
-
return
|
|
44
|
-
hdr_value_at_percentile(histogram_.get(), percentile));
|
|
58
|
+
return hdr_value_at_percentile(histogram_.get(), percentile);
|
|
45
59
|
}
|
|
46
60
|
|
|
47
61
|
template <typename Iterator>
|
|
@@ -51,26 +65,31 @@ void Histogram::Percentiles(Iterator&& fn) {
|
|
|
51
65
|
hdr_iter_percentile_init(&iter, histogram_.get(), 1);
|
|
52
66
|
while (hdr_iter_next(&iter)) {
|
|
53
67
|
double key = iter.specifics.percentiles.percentile;
|
|
54
|
-
|
|
55
|
-
fn(key, value);
|
|
68
|
+
fn(key, iter.value);
|
|
56
69
|
}
|
|
57
70
|
}
|
|
58
71
|
|
|
59
72
|
bool Histogram::Record(int64_t value) {
|
|
60
73
|
Mutex::ScopedLock lock(mutex_);
|
|
61
|
-
|
|
74
|
+
bool recorded = hdr_record_value(histogram_.get(), value);
|
|
75
|
+
if (!recorded)
|
|
76
|
+
exceeds_++;
|
|
77
|
+
else
|
|
78
|
+
count_++;
|
|
79
|
+
return recorded;
|
|
62
80
|
}
|
|
63
81
|
|
|
64
82
|
uint64_t Histogram::RecordDelta() {
|
|
65
83
|
Mutex::ScopedLock lock(mutex_);
|
|
66
84
|
uint64_t time = uv_hrtime();
|
|
67
|
-
|
|
85
|
+
int64_t delta = 0;
|
|
68
86
|
if (prev_ > 0) {
|
|
87
|
+
CHECK_GE(time, prev_);
|
|
69
88
|
delta = time - prev_;
|
|
70
|
-
if (delta
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
89
|
+
if (hdr_record_value(histogram_.get(), delta))
|
|
90
|
+
count_++;
|
|
91
|
+
else
|
|
92
|
+
exceeds_++;
|
|
74
93
|
}
|
|
75
94
|
prev_ = time;
|
|
76
95
|
return delta;
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
#ifndef SRC_HISTOGRAM_H_
|
|
2
|
+
#define SRC_HISTOGRAM_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <hdr/hdr_histogram.h>
|
|
7
|
+
#include "base_object.h"
|
|
8
|
+
#include "memory_tracker.h"
|
|
9
|
+
#include "node_messaging.h"
|
|
10
|
+
#include "util.h"
|
|
11
|
+
#include "uv.h"
|
|
12
|
+
#include "v8.h"
|
|
13
|
+
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <limits>
|
|
16
|
+
#include <map>
|
|
17
|
+
#include <string>
|
|
18
|
+
|
|
19
|
+
namespace node {
|
|
20
|
+
|
|
21
|
+
class ExternalReferenceRegistry;
|
|
22
|
+
|
|
23
|
+
constexpr int kDefaultHistogramFigures = 3;
|
|
24
|
+
|
|
25
|
+
class Histogram : public MemoryRetainer {
|
|
26
|
+
public:
|
|
27
|
+
struct Options {
|
|
28
|
+
int64_t lowest = 1;
|
|
29
|
+
int64_t highest = std::numeric_limits<int64_t>::max();
|
|
30
|
+
int figures = kDefaultHistogramFigures;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
explicit Histogram(const Options& options);
|
|
34
|
+
virtual ~Histogram() = default;
|
|
35
|
+
|
|
36
|
+
inline bool Record(int64_t value);
|
|
37
|
+
inline void Reset();
|
|
38
|
+
inline int64_t Min() const;
|
|
39
|
+
inline int64_t Max() const;
|
|
40
|
+
inline double Mean() const;
|
|
41
|
+
inline double Stddev() const;
|
|
42
|
+
inline int64_t Percentile(double percentile) const;
|
|
43
|
+
inline size_t Exceeds() const { return exceeds_; }
|
|
44
|
+
inline size_t Count() const;
|
|
45
|
+
|
|
46
|
+
inline uint64_t RecordDelta();
|
|
47
|
+
|
|
48
|
+
inline double Add(const Histogram& other);
|
|
49
|
+
|
|
50
|
+
// Iterator is a function type that takes two doubles as argument, one for
|
|
51
|
+
// percentile and one for the value at that percentile.
|
|
52
|
+
template <typename Iterator>
|
|
53
|
+
inline void Percentiles(Iterator&& fn);
|
|
54
|
+
|
|
55
|
+
inline size_t GetMemorySize() const;
|
|
56
|
+
|
|
57
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
58
|
+
SET_MEMORY_INFO_NAME(Histogram)
|
|
59
|
+
SET_SELF_SIZE(Histogram)
|
|
60
|
+
|
|
61
|
+
private:
|
|
62
|
+
using HistogramPointer = DeleteFnPtr<hdr_histogram, hdr_close>;
|
|
63
|
+
HistogramPointer histogram_;
|
|
64
|
+
uint64_t prev_ = 0;
|
|
65
|
+
size_t exceeds_ = 0;
|
|
66
|
+
size_t count_ = 0;
|
|
67
|
+
Mutex mutex_;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
class HistogramImpl {
|
|
71
|
+
public:
|
|
72
|
+
enum InternalFields {
|
|
73
|
+
kSlot = BaseObject::kSlot,
|
|
74
|
+
kImplField = BaseObject::kInternalFieldCount,
|
|
75
|
+
kInternalFieldCount
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
explicit HistogramImpl(
|
|
79
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
80
|
+
explicit HistogramImpl(std::shared_ptr<Histogram> histogram);
|
|
81
|
+
|
|
82
|
+
Histogram* operator->() { return histogram_.get(); }
|
|
83
|
+
|
|
84
|
+
const std::shared_ptr<Histogram>& histogram() const { return histogram_; }
|
|
85
|
+
|
|
86
|
+
static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
87
|
+
static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
88
|
+
static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
89
|
+
static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
90
|
+
static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
91
|
+
static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
92
|
+
static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
93
|
+
static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
94
|
+
static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
95
|
+
static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
96
|
+
static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
97
|
+
static void GetPercentile(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
98
|
+
static void GetPercentileBigInt(
|
|
99
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
100
|
+
static void GetPercentiles(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
101
|
+
static void GetPercentilesBigInt(
|
|
102
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
103
|
+
|
|
104
|
+
static void FastReset(v8::Local<v8::Value> unused,
|
|
105
|
+
v8::Local<v8::Value> receiver);
|
|
106
|
+
static double FastGetCount(v8::Local<v8::Value> unused,
|
|
107
|
+
v8::Local<v8::Value> receiver);
|
|
108
|
+
static double FastGetMin(v8::Local<v8::Value> unused,
|
|
109
|
+
v8::Local<v8::Value> receiver);
|
|
110
|
+
static double FastGetMax(v8::Local<v8::Value> unused,
|
|
111
|
+
v8::Local<v8::Value> receiver);
|
|
112
|
+
static double FastGetMean(v8::Local<v8::Value> unused,
|
|
113
|
+
v8::Local<v8::Value> receiver);
|
|
114
|
+
static double FastGetExceeds(v8::Local<v8::Value> unused,
|
|
115
|
+
v8::Local<v8::Value> receiver);
|
|
116
|
+
static double FastGetStddev(v8::Local<v8::Value> unused,
|
|
117
|
+
v8::Local<v8::Value> receiver);
|
|
118
|
+
static double FastGetPercentile(v8::Local<v8::Value> unused,
|
|
119
|
+
v8::Local<v8::Value> receiver,
|
|
120
|
+
const double percentile);
|
|
121
|
+
|
|
122
|
+
static void AddMethods(v8::Isolate* isolate,
|
|
123
|
+
v8::Local<v8::FunctionTemplate> tmpl);
|
|
124
|
+
|
|
125
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
126
|
+
|
|
127
|
+
static HistogramImpl* FromJSObject(v8::Local<v8::Value> value);
|
|
128
|
+
|
|
129
|
+
private:
|
|
130
|
+
std::shared_ptr<Histogram> histogram_;
|
|
131
|
+
|
|
132
|
+
static v8::CFunction fast_reset_;
|
|
133
|
+
static v8::CFunction fast_get_count_;
|
|
134
|
+
static v8::CFunction fast_get_min_;
|
|
135
|
+
static v8::CFunction fast_get_max_;
|
|
136
|
+
static v8::CFunction fast_get_mean_;
|
|
137
|
+
static v8::CFunction fast_get_exceeds_;
|
|
138
|
+
static v8::CFunction fast_get_stddev_;
|
|
139
|
+
static v8::CFunction fast_get_percentile_;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
class HistogramBase final : public BaseObject, public HistogramImpl {
|
|
143
|
+
public:
|
|
144
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
145
|
+
IsolateData* isolate_data);
|
|
146
|
+
static void Initialize(IsolateData* isolate_data,
|
|
147
|
+
v8::Local<v8::ObjectTemplate> target);
|
|
148
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
149
|
+
|
|
150
|
+
static BaseObjectPtr<HistogramBase> Create(
|
|
151
|
+
Environment* env,
|
|
152
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
153
|
+
|
|
154
|
+
static BaseObjectPtr<HistogramBase> Create(
|
|
155
|
+
Environment* env,
|
|
156
|
+
std::shared_ptr<Histogram> histogram);
|
|
157
|
+
|
|
158
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
159
|
+
|
|
160
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
161
|
+
SET_MEMORY_INFO_NAME(HistogramBase)
|
|
162
|
+
SET_SELF_SIZE(HistogramBase)
|
|
163
|
+
|
|
164
|
+
static void Record(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
165
|
+
static void RecordDelta(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
166
|
+
static void Add(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
167
|
+
|
|
168
|
+
static void FastRecord(
|
|
169
|
+
v8::Local<v8::Value> unused,
|
|
170
|
+
v8::Local<v8::Value> receiver,
|
|
171
|
+
const int64_t value,
|
|
172
|
+
v8::FastApiCallbackOptions& options); // NOLINT(runtime/references)
|
|
173
|
+
static void FastRecordDelta(v8::Local<v8::Value> unused,
|
|
174
|
+
v8::Local<v8::Value> receiver);
|
|
175
|
+
|
|
176
|
+
HistogramBase(
|
|
177
|
+
Environment* env,
|
|
178
|
+
v8::Local<v8::Object> wrap,
|
|
179
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
180
|
+
|
|
181
|
+
HistogramBase(
|
|
182
|
+
Environment* env,
|
|
183
|
+
v8::Local<v8::Object> wrap,
|
|
184
|
+
std::shared_ptr<Histogram> histogram);
|
|
185
|
+
|
|
186
|
+
BaseObject::TransferMode GetTransferMode() const override {
|
|
187
|
+
return TransferMode::kCloneable;
|
|
188
|
+
}
|
|
189
|
+
std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
|
|
190
|
+
|
|
191
|
+
class HistogramTransferData : public worker::TransferData {
|
|
192
|
+
public:
|
|
193
|
+
explicit HistogramTransferData(const HistogramBase* histogram)
|
|
194
|
+
: histogram_(histogram->histogram()) {}
|
|
195
|
+
|
|
196
|
+
explicit HistogramTransferData(std::shared_ptr<Histogram> histogram)
|
|
197
|
+
: histogram_(std::move(histogram)) {}
|
|
198
|
+
|
|
199
|
+
BaseObjectPtr<BaseObject> Deserialize(
|
|
200
|
+
Environment* env,
|
|
201
|
+
v8::Local<v8::Context> context,
|
|
202
|
+
std::unique_ptr<worker::TransferData> self) override;
|
|
203
|
+
|
|
204
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
205
|
+
SET_MEMORY_INFO_NAME(HistogramTransferData)
|
|
206
|
+
SET_SELF_SIZE(HistogramTransferData)
|
|
207
|
+
|
|
208
|
+
private:
|
|
209
|
+
std::shared_ptr<Histogram> histogram_;
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
private:
|
|
213
|
+
static v8::CFunction fast_record_;
|
|
214
|
+
static v8::CFunction fast_record_delta_;
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
class IntervalHistogram final : public HandleWrap, public HistogramImpl {
|
|
218
|
+
public:
|
|
219
|
+
enum class StartFlags {
|
|
220
|
+
NONE,
|
|
221
|
+
RESET
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
225
|
+
|
|
226
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
227
|
+
Environment* env);
|
|
228
|
+
|
|
229
|
+
static BaseObjectPtr<IntervalHistogram> Create(
|
|
230
|
+
Environment* env,
|
|
231
|
+
int32_t interval,
|
|
232
|
+
std::function<void(Histogram&)> on_interval,
|
|
233
|
+
const Histogram::Options& options);
|
|
234
|
+
|
|
235
|
+
IntervalHistogram(
|
|
236
|
+
Environment* env,
|
|
237
|
+
v8::Local<v8::Object> wrap,
|
|
238
|
+
AsyncWrap::ProviderType type,
|
|
239
|
+
int32_t interval,
|
|
240
|
+
std::function<void(Histogram&)> on_interval,
|
|
241
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
242
|
+
|
|
243
|
+
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
244
|
+
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
245
|
+
|
|
246
|
+
static void FastStart(v8::Local<v8::Value> unused,
|
|
247
|
+
v8::Local<v8::Value> receiver,
|
|
248
|
+
bool reset);
|
|
249
|
+
static void FastStop(v8::Local<v8::Value> unused,
|
|
250
|
+
v8::Local<v8::Value> receiver);
|
|
251
|
+
|
|
252
|
+
BaseObject::TransferMode GetTransferMode() const override {
|
|
253
|
+
return TransferMode::kCloneable;
|
|
254
|
+
}
|
|
255
|
+
std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
|
|
256
|
+
|
|
257
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
258
|
+
SET_MEMORY_INFO_NAME(IntervalHistogram)
|
|
259
|
+
SET_SELF_SIZE(IntervalHistogram)
|
|
260
|
+
|
|
261
|
+
private:
|
|
262
|
+
static void TimerCB(uv_timer_t* handle);
|
|
263
|
+
void OnStart(StartFlags flags = StartFlags::RESET);
|
|
264
|
+
void OnStop();
|
|
265
|
+
|
|
266
|
+
bool enabled_ = false;
|
|
267
|
+
int32_t interval_ = 0;
|
|
268
|
+
std::function<void(Histogram&)> on_interval_;
|
|
269
|
+
uv_timer_t timer_;
|
|
270
|
+
|
|
271
|
+
static v8::CFunction fast_start_;
|
|
272
|
+
static v8::CFunction fast_stop_;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
} // namespace node
|
|
276
|
+
|
|
277
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
278
|
+
|
|
279
|
+
#endif // SRC_HISTOGRAM_H_
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
4
|
+
#if HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
5
|
+
|
|
6
|
+
#include <base_object.h>
|
|
7
|
+
#include <env.h>
|
|
8
|
+
#include <memory_tracker.h>
|
|
9
|
+
#include "session.h"
|
|
10
|
+
|
|
11
|
+
namespace node::quic {
|
|
12
|
+
// Provides an implementation of the HTTP/3 Application implementation
|
|
13
|
+
class Http3Application final : public Session::ApplicationProvider {
|
|
14
|
+
public:
|
|
15
|
+
static bool HasInstance(Environment* env, v8::Local<v8::Value> value);
|
|
16
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
17
|
+
Environment* env);
|
|
18
|
+
static void InitPerIsolate(IsolateData* isolate_data,
|
|
19
|
+
v8::Local<v8::ObjectTemplate> target);
|
|
20
|
+
static void InitPerContext(Realm* realm, v8::Local<v8::Object> target);
|
|
21
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
22
|
+
|
|
23
|
+
Http3Application(Environment* env,
|
|
24
|
+
v8::Local<v8::Object> object,
|
|
25
|
+
const Session::Application_Options& options);
|
|
26
|
+
|
|
27
|
+
std::unique_ptr<Session::Application> Create(Session* session) override;
|
|
28
|
+
|
|
29
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
30
|
+
SET_SELF_SIZE(Http3Application)
|
|
31
|
+
SET_MEMORY_INFO_NAME(Http3Application)
|
|
32
|
+
|
|
33
|
+
std::string ToString() const;
|
|
34
|
+
|
|
35
|
+
private:
|
|
36
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
37
|
+
|
|
38
|
+
Session::Application_Options options_;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
} // namespace node::quic
|
|
42
|
+
|
|
43
|
+
#endif // HAVE_OPENSSL && NODE_OPENSSL_HAS_QUIC
|
|
44
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#include "inspector/network_resource_manager.h"
|
|
3
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
4
5
|
|
|
5
6
|
#if !HAVE_INSPECTOR
|
|
@@ -61,11 +62,23 @@ class Agent {
|
|
|
61
62
|
|
|
62
63
|
// Blocks till frontend connects and sends "runIfWaitingForDebugger"
|
|
63
64
|
void WaitForConnect();
|
|
65
|
+
bool WaitForConnectByOptions();
|
|
66
|
+
void StopIfWaitingForConnect();
|
|
67
|
+
|
|
64
68
|
// Blocks till all the sessions with "WaitForDisconnectOnShutdown" disconnect
|
|
65
69
|
void WaitForDisconnect();
|
|
66
70
|
void ReportUncaughtException(v8::Local<v8::Value> error,
|
|
67
71
|
v8::Local<v8::Message> message);
|
|
68
72
|
|
|
73
|
+
void EmitProtocolEvent(v8::Local<v8::Context> context,
|
|
74
|
+
const v8_inspector::StringView& event,
|
|
75
|
+
v8::Local<v8::Object> params);
|
|
76
|
+
|
|
77
|
+
void SetupNetworkTracking(v8::Local<v8::Function> enable_function,
|
|
78
|
+
v8::Local<v8::Function> disable_function);
|
|
79
|
+
void EnableNetworkTracking();
|
|
80
|
+
void DisableNetworkTracking();
|
|
81
|
+
|
|
69
82
|
// Async stack traces instrumentation.
|
|
70
83
|
void AsyncTaskScheduled(const v8_inspector::StringView& taskName, void* task,
|
|
71
84
|
bool recurring);
|
|
@@ -81,8 +94,9 @@ class Agent {
|
|
|
81
94
|
void DisableAsyncHook();
|
|
82
95
|
|
|
83
96
|
void SetParentHandle(std::unique_ptr<ParentInspectorHandle> parent_handle);
|
|
84
|
-
std::unique_ptr<ParentInspectorHandle> GetParentHandle(
|
|
85
|
-
|
|
97
|
+
std::unique_ptr<ParentInspectorHandle> GetParentHandle(uint64_t thread_id,
|
|
98
|
+
std::string_view url,
|
|
99
|
+
std::string_view name);
|
|
86
100
|
|
|
87
101
|
// Called to create inspector sessions that can be used from the same thread.
|
|
88
102
|
// The inspector responds by using the delegate to send messages back.
|
|
@@ -115,9 +129,11 @@ class Agent {
|
|
|
115
129
|
std::shared_ptr<WorkerManager> GetWorkerManager();
|
|
116
130
|
|
|
117
131
|
inline Environment* env() const { return parent_env_; }
|
|
132
|
+
std::shared_ptr<NetworkResourceManager> GetNetworkResourceManager();
|
|
118
133
|
|
|
119
134
|
private:
|
|
120
135
|
void ToggleAsyncHook(v8::Isolate* isolate, v8::Local<v8::Function> fn);
|
|
136
|
+
void ToggleNetworkTracking(v8::Isolate* isolate, v8::Local<v8::Function> fn);
|
|
121
137
|
|
|
122
138
|
node::Environment* parent_env_;
|
|
123
139
|
// Encapsulates majority of the Inspector functionality
|
|
@@ -136,6 +152,11 @@ class Agent {
|
|
|
136
152
|
|
|
137
153
|
bool pending_enable_async_hook_ = false;
|
|
138
154
|
bool pending_disable_async_hook_ = false;
|
|
155
|
+
|
|
156
|
+
bool network_tracking_enabled_ = false;
|
|
157
|
+
bool pending_enable_network_tracking = false;
|
|
158
|
+
bool pending_disable_network_tracking = false;
|
|
159
|
+
std::shared_ptr<NetworkResourceManager> network_resource_manager_;
|
|
139
160
|
};
|
|
140
161
|
|
|
141
162
|
} // namespace inspector
|