@encharm/cws 4.0.2 → 4.3.0
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/CHANGELOG.md +3 -0
- package/LICENSE +3 -2
- package/README.md +9 -2
- package/binding.gyp +2 -2
- package/dist/bindings/cws_darwin_arm64_node108.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node64.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node72.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node79.node +0 -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_node108.node +0 -0
- package/dist/bindings/cws_darwin_x64_node64.node +0 -0
- package/dist/bindings/cws_darwin_x64_node72.node +0 -0
- package/dist/bindings/cws_darwin_x64_node79.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_x64_node108.node +0 -0
- package/dist/bindings/cws_linux_x64_node64.node +0 -0
- package/dist/bindings/cws_linux_x64_node72.node +0 -0
- package/dist/bindings/cws_linux_x64_node79.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node64.node +0 -0
- package/dist/bindings/cws_win32_x64_node72.node +0 -0
- package/dist/bindings/cws_win32_x64_node79.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/dist/client.d.ts +1 -0
- package/dist/client.js +4 -0
- package/dist/index.js +3 -2
- package/dist/server.js +1 -0
- package/dist/shared.js +2 -1
- package/package.json +1 -1
- package/src/Addon.cpp +1 -0
- package/src/Addon.h +35 -2
- package/src/HTTPSocket.cpp +1 -1
- package/src/LICENSE +4 -0
- package/src/Socket.h +12 -3
- package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
- package/src/headers/18/aliased_struct-inl.h +54 -0
- package/src/headers/18/aliased_struct.h +63 -0
- package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/async_wrap.h +26 -2
- package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
- package/src/headers/18/base64.h +69 -0
- package/src/headers/{12 → 18}/base_object-inl.h +46 -25
- package/src/headers/{12 → 18}/base_object.h +82 -17
- package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
- package/src/headers/{12 → 18}/callback_queue.h +13 -5
- package/src/headers/18/cares_wrap.h +523 -0
- package/src/headers/{12 → 18}/connect_wrap.h +0 -0
- package/src/headers/{12 → 18}/connection_wrap.h +0 -0
- package/src/headers/18/crypto/crypto_aes.h +89 -0
- package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
- package/src/headers/18/crypto/crypto_cipher.h +291 -0
- package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
- package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
- package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
- package/src/headers/18/crypto/crypto_context.h +147 -0
- package/src/headers/18/crypto/crypto_dh.h +156 -0
- package/src/headers/18/crypto/crypto_dsa.h +77 -0
- package/src/headers/18/crypto/crypto_ec.h +170 -0
- package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
- package/src/headers/18/crypto/crypto_hash.h +89 -0
- package/src/headers/18/crypto/crypto_hkdf.h +65 -0
- package/src/headers/18/crypto/crypto_hmac.h +94 -0
- package/src/headers/18/crypto/crypto_keygen.h +305 -0
- package/src/headers/18/crypto/crypto_keys.h +420 -0
- package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
- package/src/headers/18/crypto/crypto_random.h +130 -0
- package/src/headers/18/crypto/crypto_rsa.h +141 -0
- package/src/headers/18/crypto/crypto_scrypt.h +87 -0
- package/src/headers/18/crypto/crypto_sig.h +168 -0
- package/src/headers/18/crypto/crypto_spkac.h +21 -0
- package/src/headers/18/crypto/crypto_timing.h +20 -0
- package/src/headers/{12/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
- package/src/headers/18/crypto/crypto_util.h +791 -0
- package/src/headers/18/crypto/crypto_x509.h +143 -0
- package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
- package/src/headers/{13 → 18}/debug_utils.h +7 -4
- package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
- package/src/headers/{12 → 18}/env-inl.h +397 -304
- package/src/headers/{12 → 18}/env.h +397 -172
- package/src/headers/{12 → 18}/handle_wrap.h +7 -3
- package/src/headers/18/histogram-inl.h +107 -0
- package/src/headers/18/histogram.h +239 -0
- package/src/headers/{13 → 18}/inspector_agent.h +4 -7
- package/src/headers/{12 → 18}/inspector_io.h +0 -0
- package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
- package/src/headers/{12 → 18}/inspector_socket.h +0 -0
- package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
- package/src/headers/18/js_native_api.h +571 -0
- package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
- package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
- package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
- package/src/headers/{12 → 18}/js_stream.h +0 -0
- package/src/headers/{12 → 18}/json_utils.h +0 -0
- package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
- package/src/headers/{13 → 18}/memory_tracker.h +0 -7
- package/src/headers/{13 → 18}/module_wrap.h +24 -7
- package/src/headers/{13 → 18}/node.h +329 -68
- package/src/headers/18/node_api.h +288 -0
- package/src/headers/18/node_api_internals.h +38 -0
- package/src/headers/{12 → 18}/node_api_types.h +12 -9
- package/src/headers/{12 → 18}/node_binding.h +0 -0
- package/src/headers/18/node_blob.h +191 -0
- package/src/headers/18/node_bob-inl.h +37 -0
- package/src/headers/18/node_bob.h +111 -0
- package/src/headers/{13 → 18}/node_buffer.h +0 -0
- package/src/headers/{13 → 18}/node_constants.h +5 -1
- package/src/headers/{12 → 18}/node_context_data.h +5 -0
- package/src/headers/{12 → 18}/node_contextify.h +37 -2
- package/src/headers/{10/node_javascript.h → 18/node_crypto.h} +30 -14
- package/src/headers/{12 → 18}/node_dir.h +0 -0
- package/src/headers/{12 → 18}/node_dtrace.h +0 -0
- package/src/headers/{12 → 18}/node_errors.h +90 -24
- package/src/headers/18/node_external_reference.h +145 -0
- package/src/headers/{13 → 18}/node_file-inl.h +38 -21
- package/src/headers/{12 → 18}/node_file.h +74 -13
- package/src/headers/{13 → 18}/node_http2.h +365 -269
- package/src/headers/{12 → 18}/node_http2_state.h +40 -50
- package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
- package/src/headers/{13 → 18}/node_http_common.h +24 -20
- package/src/headers/{13 → 18}/node_i18n.h +2 -1
- package/src/headers/{12 → 18}/node_internals.h +39 -41
- package/src/headers/{12 → 18}/node_main_instance.h +15 -18
- package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
- package/src/headers/{12 → 18}/node_mem.h +1 -1
- package/src/headers/{13 → 18}/node_messaging.h +170 -23
- package/src/headers/{12 → 18}/node_metadata.h +17 -4
- package/src/headers/{12 → 18}/node_mutex.h +77 -1
- package/src/headers/{12 → 18}/node_native_module.h +11 -1
- package/src/headers/{12 → 18}/node_native_module_env.h +14 -8
- package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
- package/src/headers/{13 → 18}/node_options-inl.h +51 -21
- package/src/headers/{13 → 18}/node_options.h +46 -14
- package/src/headers/18/node_perf.h +168 -0
- package/src/headers/{12 → 18}/node_perf_common.h +16 -22
- package/src/headers/{12 → 18}/node_platform.h +21 -16
- package/src/headers/18/node_process-inl.h +26 -0
- package/src/headers/18/node_process.h +97 -0
- package/src/headers/{13 → 18}/node_report.h +2 -2
- package/src/headers/{13 → 18}/node_revert.h +10 -0
- package/src/headers/{12 → 18}/node_root_certs.h +439 -651
- package/src/headers/18/node_snapshot_builder.h +43 -0
- package/src/headers/18/node_snapshotable.h +130 -0
- package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
- package/src/headers/18/node_sockaddr.h +405 -0
- package/src/headers/{13 → 18}/node_stat_watcher.h +7 -1
- package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
- package/src/headers/{13 → 18}/node_url.h +18 -1
- package/src/headers/18/node_v8.h +41 -0
- package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
- package/src/headers/{13 → 18}/node_version.h +7 -7
- package/src/headers/{12 → 18}/node_wasi.h +0 -0
- package/src/headers/18/node_wasm_web_api.h +55 -0
- package/src/headers/{13 → 18}/node_watchdog.h +0 -0
- package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
- package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
- package/src/headers/{13 → 18}/node_worker.h +24 -17
- package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
- package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
- package/src/headers/{13 → 18}/req_wrap.h +1 -1
- package/src/headers/{12 → 18}/spawn_sync.h +0 -0
- package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
- package/src/headers/{13 → 18}/stream_base.h +29 -3
- package/src/headers/{13 → 18}/stream_pipe.h +8 -3
- package/src/headers/{12 → 18}/stream_wrap.h +4 -1
- package/src/headers/{13 → 18}/string_bytes.h +0 -7
- package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
- package/src/headers/{10 → 18}/string_decoder.h +0 -0
- package/src/headers/{13 → 18}/string_search.h +2 -2
- package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
- package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
- package/src/headers/18/timer_wrap-inl.h +32 -0
- package/src/headers/18/timer_wrap.h +85 -0
- package/src/headers/{13 → 18}/tracing/agent.h +1 -1
- package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
- package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
- package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
- package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
- package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
- package/src/headers/{13 → 18}/tty_wrap.h +2 -1
- package/src/headers/{13 → 18}/udp_wrap.h +5 -0
- package/src/headers/{13 → 18}/util-inl.h +69 -15
- package/src/headers/{13 → 18}/util.h +93 -31
- package/src/headers/18/v8-fast-api-calls.h +939 -0
- package/src/headers/{12 → 18}/v8abbr.h +2 -2
- package/dist/bindings/cws_darwin_64.node +0 -0
- package/dist/bindings/cws_darwin_72.node +0 -0
- package/dist/bindings/cws_darwin_79.node +0 -0
- package/dist/bindings/cws_darwin_83.node +0 -0
- package/dist/bindings/cws_darwin_93.node +0 -0
- package/dist/bindings/cws_linux_64.node +0 -0
- package/dist/bindings/cws_linux_72.node +0 -0
- package/dist/bindings/cws_linux_79.node +0 -0
- package/dist/bindings/cws_linux_83.node +0 -0
- package/dist/bindings/cws_linux_93.node +0 -0
- package/dist/bindings/cws_win32_64.node +0 -0
- package/dist/bindings/cws_win32_72.node +0 -0
- package/dist/bindings/cws_win32_79.node +0 -0
- package/dist/bindings/cws_win32_83.node +0 -0
- package/dist/bindings/cws_win32_93.node +0 -0
- package/src/headers/10/aliased_buffer.h +0 -241
- package/src/headers/10/async_wrap-inl.h +0 -106
- package/src/headers/10/async_wrap.h +0 -218
- package/src/headers/10/base64.h +0 -197
- package/src/headers/10/base_object-inl.h +0 -132
- package/src/headers/10/base_object.h +0 -115
- package/src/headers/10/connect_wrap.h +0 -28
- package/src/headers/10/connection_wrap.h +0 -30
- package/src/headers/10/debug_utils.h +0 -128
- package/src/headers/10/env-inl.h +0 -906
- package/src/headers/10/env.h +0 -1046
- package/src/headers/10/handle_wrap.h +0 -114
- package/src/headers/10/inspector_agent.h +0 -137
- package/src/headers/10/inspector_io.h +0 -97
- package/src/headers/10/inspector_socket.h +0 -59
- package/src/headers/10/inspector_socket_server.h +0 -104
- package/src/headers/10/js_stream.h +0 -57
- package/src/headers/10/memory_tracker-inl.h +0 -318
- package/src/headers/10/memory_tracker.h +0 -246
- package/src/headers/10/module_wrap.h +0 -100
- package/src/headers/10/node.h +0 -863
- package/src/headers/10/node_api.h +0 -752
- package/src/headers/10/node_api_types.h +0 -171
- package/src/headers/10/node_buffer.h +0 -90
- package/src/headers/10/node_code_cache.h +0 -17
- package/src/headers/10/node_constants.h +0 -74
- package/src/headers/10/node_context_data.h +0 -39
- package/src/headers/10/node_contextify.h +0 -141
- package/src/headers/10/node_counters.h +0 -59
- package/src/headers/10/node_crypto.h +0 -699
- package/src/headers/10/node_crypto_bio.h +0 -177
- package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
- package/src/headers/10/node_crypto_clienthello.h +0 -131
- package/src/headers/10/node_crypto_groups.h +0 -416
- package/src/headers/10/node_dtrace.h +0 -84
- package/src/headers/10/node_errors.h +0 -118
- package/src/headers/10/node_file.h +0 -373
- package/src/headers/10/node_http2.h +0 -1304
- package/src/headers/10/node_http2_state.h +0 -158
- package/src/headers/10/node_i18n.h +0 -69
- package/src/headers/10/node_internals.h +0 -952
- package/src/headers/10/node_messaging.h +0 -219
- package/src/headers/10/node_mutex.h +0 -191
- package/src/headers/10/node_object_wrap.h +0 -130
- package/src/headers/10/node_options-inl.h +0 -444
- package/src/headers/10/node_options.h +0 -397
- package/src/headers/10/node_perf.h +0 -134
- package/src/headers/10/node_perf_common.h +0 -96
- package/src/headers/10/node_persistent.h +0 -30
- package/src/headers/10/node_platform.h +0 -170
- package/src/headers/10/node_revert.h +0 -75
- package/src/headers/10/node_root_certs.h +0 -3393
- package/src/headers/10/node_stat_watcher.h +0 -65
- package/src/headers/10/node_url.h +0 -193
- package/src/headers/10/node_version.h +0 -120
- package/src/headers/10/node_watchdog.h +0 -114
- package/src/headers/10/node_win32_perfctr_provider.h +0 -58
- package/src/headers/10/node_worker.h +0 -94
- package/src/headers/10/pipe_wrap.h +0 -76
- package/src/headers/10/req_wrap-inl.h +0 -166
- package/src/headers/10/req_wrap.h +0 -61
- package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
- package/src/headers/10/spawn_sync.h +0 -240
- package/src/headers/10/stream_base-inl.h +0 -458
- package/src/headers/10/stream_base.h +0 -378
- package/src/headers/10/stream_pipe.h +0 -72
- package/src/headers/10/stream_wrap.h +0 -130
- package/src/headers/10/string_bytes.h +0 -126
- package/src/headers/10/string_decoder-inl.h +0 -38
- package/src/headers/10/string_search.h +0 -620
- package/src/headers/10/tcp_wrap.h +0 -99
- package/src/headers/10/tls_wrap.h +0 -195
- package/src/headers/10/tracing/agent.h +0 -178
- package/src/headers/10/tracing/node_trace_buffer.h +0 -83
- package/src/headers/10/tracing/node_trace_writer.h +0 -75
- package/src/headers/10/tracing/trace_event.h +0 -706
- package/src/headers/10/tracing/trace_event_common.h +0 -1102
- package/src/headers/10/tracing/traced_value.h +0 -68
- package/src/headers/10/tty_wrap.h +0 -63
- package/src/headers/10/udp_wrap.h +0 -102
- package/src/headers/10/util-inl.h +0 -459
- package/src/headers/10/util.h +0 -508
- package/src/headers/10/v8abbr.h +0 -121
- package/src/headers/12/aliased_buffer.h +0 -263
- package/src/headers/12/debug_utils.h +0 -181
- package/src/headers/12/histogram-inl.h +0 -83
- package/src/headers/12/histogram.h +0 -98
- package/src/headers/12/http_parser_adaptor.h +0 -24
- package/src/headers/12/inspector_agent.h +0 -147
- package/src/headers/12/inspector_profiler.h +0 -137
- package/src/headers/12/js_native_api.h +0 -541
- package/src/headers/12/js_native_api_types.h +0 -139
- package/src/headers/12/memory_tracker-inl.h +0 -339
- package/src/headers/12/memory_tracker.h +0 -283
- package/src/headers/12/module_wrap.h +0 -99
- package/src/headers/12/node.h +0 -887
- package/src/headers/12/node_api.h +0 -239
- package/src/headers/12/node_buffer.h +0 -92
- package/src/headers/12/node_constants.h +0 -80
- package/src/headers/12/node_crypto.h +0 -800
- package/src/headers/12/node_crypto_bio.h +0 -195
- package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/12/node_crypto_clienthello.h +0 -132
- package/src/headers/12/node_file-inl.h +0 -289
- package/src/headers/12/node_http2.h +0 -1311
- package/src/headers/12/node_http_parser_impl.h +0 -994
- package/src/headers/12/node_i18n.h +0 -144
- package/src/headers/12/node_messaging.h +0 -227
- package/src/headers/12/node_options-inl.h +0 -447
- package/src/headers/12/node_options.h +0 -479
- package/src/headers/12/node_perf.h +0 -181
- package/src/headers/12/node_process.h +0 -41
- package/src/headers/12/node_report.h +0 -47
- package/src/headers/12/node_revert.h +0 -78
- package/src/headers/12/node_sockaddr.h +0 -123
- package/src/headers/12/node_stat_watcher.h +0 -66
- package/src/headers/12/node_url.h +0 -188
- package/src/headers/12/node_version.h +0 -98
- package/src/headers/12/node_watchdog.h +0 -152
- package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/12/node_win32_etw_provider.h +0 -99
- package/src/headers/12/node_worker.h +0 -142
- package/src/headers/12/req_wrap.h +0 -77
- package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
- package/src/headers/12/stream_base-inl.h +0 -323
- package/src/headers/12/stream_base.h +0 -431
- package/src/headers/12/stream_pipe.h +0 -72
- package/src/headers/12/string_bytes.h +0 -142
- package/src/headers/12/string_decoder.h +0 -50
- package/src/headers/12/string_search.h +0 -638
- package/src/headers/12/tracing/agent.h +0 -195
- package/src/headers/12/tracing/trace_event.h +0 -710
- package/src/headers/12/tty_wrap.h +0 -64
- package/src/headers/12/udp_wrap.h +0 -222
- package/src/headers/12/util-inl.h +0 -529
- package/src/headers/12/util.h +0 -765
- package/src/headers/13/async_wrap-inl.h +0 -94
- package/src/headers/13/async_wrap.h +0 -224
- package/src/headers/13/base64.h +0 -197
- package/src/headers/13/base_object-inl.h +0 -353
- package/src/headers/13/base_object.h +0 -229
- package/src/headers/13/connect_wrap.h +0 -26
- package/src/headers/13/connection_wrap.h +0 -30
- package/src/headers/13/debug_utils-inl.h +0 -223
- package/src/headers/13/diagnosticfilename-inl.h +0 -33
- package/src/headers/13/env-inl.h +0 -1293
- package/src/headers/13/env.h +0 -1469
- package/src/headers/13/handle_wrap.h +0 -117
- package/src/headers/13/histogram-inl.h +0 -83
- package/src/headers/13/histogram.h +0 -98
- package/src/headers/13/inspector_io.h +0 -78
- package/src/headers/13/inspector_socket.h +0 -60
- package/src/headers/13/inspector_socket_server.h +0 -110
- package/src/headers/13/js_native_api.h +0 -541
- package/src/headers/13/js_native_api_v8.h +0 -303
- package/src/headers/13/js_native_api_v8_internals.h +0 -38
- package/src/headers/13/js_stream.h +0 -52
- package/src/headers/13/json_utils.h +0 -160
- package/src/headers/13/node_api.h +0 -239
- package/src/headers/13/node_api_types.h +0 -44
- package/src/headers/13/node_binding.h +0 -99
- package/src/headers/13/node_context_data.h +0 -39
- package/src/headers/13/node_contextify.h +0 -161
- package/src/headers/13/node_crypto.h +0 -800
- package/src/headers/13/node_crypto_common.h +0 -138
- package/src/headers/13/node_crypto_groups.h +0 -415
- package/src/headers/13/node_dir.h +0 -52
- package/src/headers/13/node_dtrace.h +0 -86
- package/src/headers/13/node_errors.h +0 -210
- package/src/headers/13/node_file.h +0 -364
- package/src/headers/13/node_http2_state.h +0 -144
- package/src/headers/13/node_internals.h +0 -405
- package/src/headers/13/node_main_instance.h +0 -97
- package/src/headers/13/node_mem-inl.h +0 -112
- package/src/headers/13/node_mem.h +0 -41
- package/src/headers/13/node_metadata.h +0 -109
- package/src/headers/13/node_mutex.h +0 -247
- package/src/headers/13/node_native_module.h +0 -99
- package/src/headers/13/node_native_module_env.h +0 -65
- package/src/headers/13/node_object_wrap.h +0 -132
- package/src/headers/13/node_perf.h +0 -181
- package/src/headers/13/node_perf_common.h +0 -97
- package/src/headers/13/node_platform.h +0 -190
- package/src/headers/13/node_process.h +0 -41
- package/src/headers/13/node_root_certs.h +0 -3424
- package/src/headers/13/node_sockaddr-inl.h +0 -170
- package/src/headers/13/node_sockaddr.h +0 -123
- package/src/headers/13/node_union_bytes.h +0 -103
- package/src/headers/13/node_v8_platform-inl.h +0 -184
- package/src/headers/13/node_wasi.h +0 -108
- package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/13/node_win32_etw_provider.h +0 -99
- package/src/headers/13/pipe_wrap.h +0 -78
- package/src/headers/13/req_wrap-inl.h +0 -170
- package/src/headers/13/spawn_sync.h +0 -242
- package/src/headers/13/stream_wrap.h +0 -130
- package/src/headers/13/string_decoder-inl.h +0 -37
- package/src/headers/13/string_decoder.h +0 -50
- package/src/headers/13/tcp_wrap.h +0 -101
- package/src/headers/13/threadpoolwork-inl.h +0 -57
- package/src/headers/13/tls_wrap.h +0 -221
- package/src/headers/13/tracing/node_trace_buffer.h +0 -83
- package/src/headers/13/tracing/node_trace_writer.h +0 -75
- package/src/headers/13/tracing/trace_event_common.h +0 -1109
- package/src/headers/13/tracing/traced_value.h +0 -70
- package/src/headers/13/v8abbr.h +0 -124
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
namespace node {
|
|
33
33
|
|
|
34
34
|
class Environment;
|
|
35
|
+
class ExternalReferenceRegistry;
|
|
35
36
|
|
|
36
37
|
// Rules:
|
|
37
38
|
//
|
|
@@ -77,6 +78,7 @@ class HandleWrap : public AsyncWrap {
|
|
|
77
78
|
|
|
78
79
|
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
79
80
|
Environment* env);
|
|
81
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
80
82
|
|
|
81
83
|
protected:
|
|
82
84
|
HandleWrap(Environment* env,
|
|
@@ -85,6 +87,7 @@ class HandleWrap : public AsyncWrap {
|
|
|
85
87
|
AsyncWrap::ProviderType provider);
|
|
86
88
|
virtual void OnClose() {}
|
|
87
89
|
void OnGCCollect() final;
|
|
90
|
+
bool IsNotIndicativeOfMemoryLeakAtExit() const override;
|
|
88
91
|
|
|
89
92
|
void MarkAsInitialized();
|
|
90
93
|
void MarkAsUninitialized();
|
|
@@ -93,19 +96,20 @@ class HandleWrap : public AsyncWrap {
|
|
|
93
96
|
return state_ == kClosing || state_ == kClosed;
|
|
94
97
|
}
|
|
95
98
|
|
|
99
|
+
static void OnClose(uv_handle_t* handle);
|
|
100
|
+
enum { kInitialized, kClosing, kClosed } state_;
|
|
101
|
+
|
|
96
102
|
private:
|
|
97
103
|
friend class Environment;
|
|
98
104
|
friend void GetActiveHandles(const v8::FunctionCallbackInfo<v8::Value>&);
|
|
99
|
-
static void OnClose(uv_handle_t* handle);
|
|
100
105
|
|
|
101
106
|
// handle_wrap_queue_ needs to be at a fixed offset from the start of the
|
|
102
107
|
// class because it is used by src/node_postmortem_metadata.cc to calculate
|
|
103
108
|
// offsets and generate debug symbols for HandleWrap, which assumes that the
|
|
104
109
|
// position of members in memory are predictable. For more information please
|
|
105
|
-
// refer to `doc/
|
|
110
|
+
// refer to `doc/contributing/node-postmortem-support.md`
|
|
106
111
|
friend int GenDebugSymbols();
|
|
107
112
|
ListNode<HandleWrap> handle_wrap_queue_;
|
|
108
|
-
enum { kInitialized, kClosing, kClosed } state_;
|
|
109
113
|
uv_handle_t* const handle_;
|
|
110
114
|
};
|
|
111
115
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
#ifndef SRC_HISTOGRAM_INL_H_
|
|
2
|
+
#define SRC_HISTOGRAM_INL_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "histogram.h"
|
|
7
|
+
#include "base_object-inl.h"
|
|
8
|
+
#include "node_internals.h"
|
|
9
|
+
|
|
10
|
+
namespace node {
|
|
11
|
+
|
|
12
|
+
void Histogram::Reset() {
|
|
13
|
+
Mutex::ScopedLock lock(mutex_);
|
|
14
|
+
hdr_reset(histogram_.get());
|
|
15
|
+
exceeds_ = 0;
|
|
16
|
+
count_ = 0;
|
|
17
|
+
prev_ = 0;
|
|
18
|
+
}
|
|
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 {
|
|
35
|
+
Mutex::ScopedLock lock(mutex_);
|
|
36
|
+
return hdr_min(histogram_.get());
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
int64_t Histogram::Max() const {
|
|
40
|
+
Mutex::ScopedLock lock(mutex_);
|
|
41
|
+
return hdr_max(histogram_.get());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
double Histogram::Mean() const {
|
|
45
|
+
Mutex::ScopedLock lock(mutex_);
|
|
46
|
+
return hdr_mean(histogram_.get());
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
double Histogram::Stddev() const {
|
|
50
|
+
Mutex::ScopedLock lock(mutex_);
|
|
51
|
+
return hdr_stddev(histogram_.get());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
int64_t Histogram::Percentile(double percentile) const {
|
|
55
|
+
Mutex::ScopedLock lock(mutex_);
|
|
56
|
+
CHECK_GT(percentile, 0);
|
|
57
|
+
CHECK_LE(percentile, 100);
|
|
58
|
+
return hdr_value_at_percentile(histogram_.get(), percentile);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
template <typename Iterator>
|
|
62
|
+
void Histogram::Percentiles(Iterator&& fn) {
|
|
63
|
+
Mutex::ScopedLock lock(mutex_);
|
|
64
|
+
hdr_iter iter;
|
|
65
|
+
hdr_iter_percentile_init(&iter, histogram_.get(), 1);
|
|
66
|
+
while (hdr_iter_next(&iter)) {
|
|
67
|
+
double key = iter.specifics.percentiles.percentile;
|
|
68
|
+
fn(key, iter.value);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
bool Histogram::Record(int64_t value) {
|
|
73
|
+
Mutex::ScopedLock lock(mutex_);
|
|
74
|
+
bool recorded = hdr_record_value(histogram_.get(), value);
|
|
75
|
+
if (!recorded)
|
|
76
|
+
exceeds_++;
|
|
77
|
+
else
|
|
78
|
+
count_++;
|
|
79
|
+
return recorded;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
uint64_t Histogram::RecordDelta() {
|
|
83
|
+
Mutex::ScopedLock lock(mutex_);
|
|
84
|
+
uint64_t time = uv_hrtime();
|
|
85
|
+
int64_t delta = 0;
|
|
86
|
+
if (prev_ > 0) {
|
|
87
|
+
CHECK_GE(time, prev_);
|
|
88
|
+
delta = time - prev_;
|
|
89
|
+
if (hdr_record_value(histogram_.get(), delta))
|
|
90
|
+
count_++;
|
|
91
|
+
else
|
|
92
|
+
exceeds_++;
|
|
93
|
+
}
|
|
94
|
+
prev_ = time;
|
|
95
|
+
return delta;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
size_t Histogram::GetMemorySize() const {
|
|
99
|
+
Mutex::ScopedLock lock(mutex_);
|
|
100
|
+
return hdr_get_memory_size(histogram_.get());
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
} // namespace node
|
|
104
|
+
|
|
105
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
106
|
+
|
|
107
|
+
#endif // SRC_HISTOGRAM_INL_H_
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
#ifndef SRC_HISTOGRAM_H_
|
|
2
|
+
#define SRC_HISTOGRAM_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "hdr_histogram.h"
|
|
7
|
+
#include "base_object.h"
|
|
8
|
+
#include "memory_tracker.h"
|
|
9
|
+
#include "node_messaging.h"
|
|
10
|
+
#include "util.h"
|
|
11
|
+
#include "v8.h"
|
|
12
|
+
#include "uv.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
|
+
explicit HistogramImpl(
|
|
73
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
74
|
+
explicit HistogramImpl(std::shared_ptr<Histogram> histogram);
|
|
75
|
+
|
|
76
|
+
Histogram* operator->() { return histogram_.get(); }
|
|
77
|
+
|
|
78
|
+
const std::shared_ptr<Histogram>& histogram() const { return histogram_; }
|
|
79
|
+
|
|
80
|
+
private:
|
|
81
|
+
std::shared_ptr<Histogram> histogram_;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
class HistogramBase : public BaseObject, public HistogramImpl {
|
|
85
|
+
public:
|
|
86
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
87
|
+
Environment* env);
|
|
88
|
+
static void Initialize(Environment* env, v8::Local<v8::Object> target);
|
|
89
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
90
|
+
|
|
91
|
+
static BaseObjectPtr<HistogramBase> Create(
|
|
92
|
+
Environment* env,
|
|
93
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
94
|
+
|
|
95
|
+
static BaseObjectPtr<HistogramBase> Create(
|
|
96
|
+
Environment* env,
|
|
97
|
+
std::shared_ptr<Histogram> histogram);
|
|
98
|
+
|
|
99
|
+
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
100
|
+
|
|
101
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
102
|
+
SET_MEMORY_INFO_NAME(HistogramBase)
|
|
103
|
+
SET_SELF_SIZE(HistogramBase)
|
|
104
|
+
|
|
105
|
+
static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
106
|
+
static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
107
|
+
static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
108
|
+
static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
109
|
+
|
|
110
|
+
static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
111
|
+
static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
112
|
+
static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
113
|
+
static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
114
|
+
static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
115
|
+
static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
116
|
+
static void GetPercentile(
|
|
117
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
118
|
+
static void GetPercentileBigInt(
|
|
119
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
120
|
+
static void GetPercentiles(
|
|
121
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
122
|
+
static void GetPercentilesBigInt(
|
|
123
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
124
|
+
static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
125
|
+
static void Record(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
126
|
+
static void RecordDelta(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
127
|
+
static void Add(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
128
|
+
|
|
129
|
+
HistogramBase(
|
|
130
|
+
Environment* env,
|
|
131
|
+
v8::Local<v8::Object> wrap,
|
|
132
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
133
|
+
|
|
134
|
+
HistogramBase(
|
|
135
|
+
Environment* env,
|
|
136
|
+
v8::Local<v8::Object> wrap,
|
|
137
|
+
std::shared_ptr<Histogram> histogram);
|
|
138
|
+
|
|
139
|
+
TransferMode GetTransferMode() const override {
|
|
140
|
+
return TransferMode::kCloneable;
|
|
141
|
+
}
|
|
142
|
+
std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
|
|
143
|
+
|
|
144
|
+
class HistogramTransferData : public worker::TransferData {
|
|
145
|
+
public:
|
|
146
|
+
explicit HistogramTransferData(const HistogramBase* histogram)
|
|
147
|
+
: histogram_(histogram->histogram()) {}
|
|
148
|
+
|
|
149
|
+
explicit HistogramTransferData(std::shared_ptr<Histogram> histogram)
|
|
150
|
+
: histogram_(std::move(histogram)) {}
|
|
151
|
+
|
|
152
|
+
BaseObjectPtr<BaseObject> Deserialize(
|
|
153
|
+
Environment* env,
|
|
154
|
+
v8::Local<v8::Context> context,
|
|
155
|
+
std::unique_ptr<worker::TransferData> self) override;
|
|
156
|
+
|
|
157
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
158
|
+
SET_MEMORY_INFO_NAME(HistogramTransferData)
|
|
159
|
+
SET_SELF_SIZE(HistogramTransferData)
|
|
160
|
+
|
|
161
|
+
private:
|
|
162
|
+
std::shared_ptr<Histogram> histogram_;
|
|
163
|
+
};
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
class IntervalHistogram : public HandleWrap, public HistogramImpl {
|
|
167
|
+
public:
|
|
168
|
+
enum class StartFlags {
|
|
169
|
+
NONE,
|
|
170
|
+
RESET
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
174
|
+
|
|
175
|
+
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
176
|
+
Environment* env);
|
|
177
|
+
|
|
178
|
+
static BaseObjectPtr<IntervalHistogram> Create(
|
|
179
|
+
Environment* env,
|
|
180
|
+
int32_t interval,
|
|
181
|
+
std::function<void(Histogram&)> on_interval,
|
|
182
|
+
const Histogram::Options& options);
|
|
183
|
+
|
|
184
|
+
IntervalHistogram(
|
|
185
|
+
Environment* env,
|
|
186
|
+
v8::Local<v8::Object> wrap,
|
|
187
|
+
AsyncWrap::ProviderType type,
|
|
188
|
+
int32_t interval,
|
|
189
|
+
std::function<void(Histogram&)> on_interval,
|
|
190
|
+
const Histogram::Options& options = Histogram::Options {});
|
|
191
|
+
|
|
192
|
+
static void GetCountBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
193
|
+
static void GetMinBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
194
|
+
static void GetMaxBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
195
|
+
static void GetExceedsBigInt(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
196
|
+
|
|
197
|
+
static void GetCount(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
198
|
+
static void GetMin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
199
|
+
static void GetMax(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
200
|
+
static void GetMean(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
201
|
+
static void GetExceeds(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
202
|
+
static void GetStddev(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
203
|
+
static void GetPercentile(
|
|
204
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
205
|
+
static void GetPercentileBigInt(
|
|
206
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
207
|
+
static void GetPercentiles(
|
|
208
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
209
|
+
static void GetPercentilesBigInt(
|
|
210
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
211
|
+
static void DoReset(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
212
|
+
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
213
|
+
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
214
|
+
|
|
215
|
+
TransferMode GetTransferMode() const override {
|
|
216
|
+
return TransferMode::kCloneable;
|
|
217
|
+
}
|
|
218
|
+
std::unique_ptr<worker::TransferData> CloneForMessaging() const override;
|
|
219
|
+
|
|
220
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
221
|
+
SET_MEMORY_INFO_NAME(IntervalHistogram)
|
|
222
|
+
SET_SELF_SIZE(IntervalHistogram)
|
|
223
|
+
|
|
224
|
+
private:
|
|
225
|
+
static void TimerCB(uv_timer_t* handle);
|
|
226
|
+
void OnStart(StartFlags flags = StartFlags::RESET);
|
|
227
|
+
void OnStop();
|
|
228
|
+
|
|
229
|
+
bool enabled_ = false;
|
|
230
|
+
int32_t interval_ = 0;
|
|
231
|
+
std::function<void(Histogram&)> on_interval_;
|
|
232
|
+
uv_timer_t timer_;
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
} // namespace node
|
|
236
|
+
|
|
237
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
238
|
+
|
|
239
|
+
#endif // SRC_HISTOGRAM_H_
|
|
@@ -59,8 +59,6 @@ class Agent {
|
|
|
59
59
|
// --inspect command line flag) or if inspector JS API had been used.
|
|
60
60
|
bool IsActive();
|
|
61
61
|
|
|
62
|
-
// Option is set to wait for session connection
|
|
63
|
-
bool WillWaitForConnect();
|
|
64
62
|
// Blocks till frontend connects and sends "runIfWaitingForDebugger"
|
|
65
63
|
void WaitForConnect();
|
|
66
64
|
// Blocks till all the sessions with "WaitForDisconnectOnShutdown" disconnect
|
|
@@ -84,7 +82,7 @@ class Agent {
|
|
|
84
82
|
|
|
85
83
|
void SetParentHandle(std::unique_ptr<ParentInspectorHandle> parent_handle);
|
|
86
84
|
std::unique_ptr<ParentInspectorHandle> GetParentHandle(
|
|
87
|
-
|
|
85
|
+
uint64_t thread_id, const std::string& url);
|
|
88
86
|
|
|
89
87
|
// Called to create inspector sessions that can be used from the same thread.
|
|
90
88
|
// The inspector responds by using the delegate to send messages back.
|
|
@@ -116,9 +114,10 @@ class Agent {
|
|
|
116
114
|
// Interface for interacting with inspectors in worker threads
|
|
117
115
|
std::shared_ptr<WorkerManager> GetWorkerManager();
|
|
118
116
|
|
|
117
|
+
inline Environment* env() const { return parent_env_; }
|
|
118
|
+
|
|
119
119
|
private:
|
|
120
|
-
void ToggleAsyncHook(v8::Isolate* isolate,
|
|
121
|
-
const v8::Global<v8::Function>& fn);
|
|
120
|
+
void ToggleAsyncHook(v8::Isolate* isolate, v8::Local<v8::Function> fn);
|
|
122
121
|
|
|
123
122
|
node::Environment* parent_env_;
|
|
124
123
|
// Encapsulates majority of the Inspector functionality
|
|
@@ -137,8 +136,6 @@ class Agent {
|
|
|
137
136
|
|
|
138
137
|
bool pending_enable_async_hook_ = false;
|
|
139
138
|
bool pending_disable_async_hook_ = false;
|
|
140
|
-
v8::Global<v8::Function> enable_async_hook_function_;
|
|
141
|
-
v8::Global<v8::Function> disable_async_hook_function_;
|
|
142
139
|
};
|
|
143
140
|
|
|
144
141
|
} // namespace inspector
|
|
File without changes
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#error("This header can only be used when inspector is enabled")
|
|
8
8
|
#endif
|
|
9
9
|
|
|
10
|
+
#include <unordered_set>
|
|
10
11
|
#include "inspector_agent.h"
|
|
11
12
|
|
|
12
13
|
namespace node {
|
|
@@ -39,7 +40,9 @@ class V8ProfilerConnection {
|
|
|
39
40
|
// The optional `params` should be formatted in JSON.
|
|
40
41
|
// The strings should be in one byte characters - which is enough for
|
|
41
42
|
// the commands we use here.
|
|
42
|
-
|
|
43
|
+
uint32_t DispatchMessage(const char* method,
|
|
44
|
+
const char* params = nullptr,
|
|
45
|
+
bool is_profile_request = false);
|
|
43
46
|
|
|
44
47
|
// Use DispatchMessage() to dispatch necessary inspector messages
|
|
45
48
|
// to start and end the profiling.
|
|
@@ -58,12 +61,19 @@ class V8ProfilerConnection {
|
|
|
58
61
|
// which will be then written as a JSON.
|
|
59
62
|
virtual v8::MaybeLocal<v8::Object> GetProfile(
|
|
60
63
|
v8::Local<v8::Object> result) = 0;
|
|
61
|
-
virtual void WriteProfile(v8::Local<v8::
|
|
64
|
+
virtual void WriteProfile(v8::Local<v8::Object> result);
|
|
65
|
+
|
|
66
|
+
bool HasProfileId(uint32_t id) const {
|
|
67
|
+
return profile_ids_.find(id) != profile_ids_.end();
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
void RemoveProfileId(uint32_t id) { profile_ids_.erase(id); }
|
|
62
71
|
|
|
63
72
|
private:
|
|
64
|
-
|
|
73
|
+
uint32_t next_id() { return id_++; }
|
|
65
74
|
std::unique_ptr<inspector::InspectorSession> session_;
|
|
66
|
-
|
|
75
|
+
uint32_t id_ = 1;
|
|
76
|
+
std::unordered_set<uint32_t> profile_ids_;
|
|
67
77
|
|
|
68
78
|
protected:
|
|
69
79
|
Environment* env_ = nullptr;
|
|
@@ -82,8 +92,10 @@ class V8CoverageConnection : public V8ProfilerConnection {
|
|
|
82
92
|
std::string GetDirectory() const override;
|
|
83
93
|
std::string GetFilename() const override;
|
|
84
94
|
v8::MaybeLocal<v8::Object> GetProfile(v8::Local<v8::Object> result) override;
|
|
85
|
-
void WriteProfile(v8::Local<v8::
|
|
95
|
+
void WriteProfile(v8::Local<v8::Object> result) override;
|
|
86
96
|
void WriteSourceMapCache();
|
|
97
|
+
void TakeCoverage();
|
|
98
|
+
void StopCoverage();
|
|
87
99
|
|
|
88
100
|
private:
|
|
89
101
|
std::unique_ptr<inspector::InspectorSession> session_;
|
|
File without changes
|
|
File without changes
|