@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
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_HANDLE_WRAP_H_
|
|
23
|
-
#define SRC_HANDLE_WRAP_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#include "async_wrap.h"
|
|
28
|
-
#include "util.h"
|
|
29
|
-
#include "uv.h"
|
|
30
|
-
#include "v8.h"
|
|
31
|
-
|
|
32
|
-
namespace node {
|
|
33
|
-
|
|
34
|
-
class Environment;
|
|
35
|
-
|
|
36
|
-
// Rules:
|
|
37
|
-
//
|
|
38
|
-
// - Do not throw from handle methods. Set errno.
|
|
39
|
-
//
|
|
40
|
-
// - MakeCallback may only be made directly off the event loop.
|
|
41
|
-
// That is there can be no JavaScript stack frames underneath it.
|
|
42
|
-
// (Is there any way to assert that?)
|
|
43
|
-
//
|
|
44
|
-
// - No use of v8::WeakReferenceCallback. The close callback signifies that
|
|
45
|
-
// we're done with a handle - external resources can be freed.
|
|
46
|
-
//
|
|
47
|
-
// - Reusable?
|
|
48
|
-
//
|
|
49
|
-
// - The uv_close_cb is used to free the c++ object. The close callback
|
|
50
|
-
// is not made into javascript land.
|
|
51
|
-
//
|
|
52
|
-
// - uv_ref, uv_unref counts are managed at this layer to avoid needless
|
|
53
|
-
// js/c++ boundary crossing. At the javascript layer that should all be
|
|
54
|
-
// taken care of.
|
|
55
|
-
|
|
56
|
-
class HandleWrap : public AsyncWrap {
|
|
57
|
-
public:
|
|
58
|
-
static void Close(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
59
|
-
static void Ref(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
60
|
-
static void Unref(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
61
|
-
static void HasRef(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
62
|
-
|
|
63
|
-
static inline bool IsAlive(const HandleWrap* wrap) {
|
|
64
|
-
return wrap != nullptr && wrap->state_ != kClosed;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
static inline bool HasRef(const HandleWrap* wrap) {
|
|
68
|
-
return IsAlive(wrap) && uv_has_ref(wrap->GetHandle());
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
inline uv_handle_t* GetHandle() const { return handle_; }
|
|
72
|
-
|
|
73
|
-
virtual void Close(
|
|
74
|
-
v8::Local<v8::Value> close_callback = v8::Local<v8::Value>());
|
|
75
|
-
|
|
76
|
-
static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
|
|
77
|
-
Environment* env);
|
|
78
|
-
|
|
79
|
-
protected:
|
|
80
|
-
HandleWrap(Environment* env,
|
|
81
|
-
v8::Local<v8::Object> object,
|
|
82
|
-
uv_handle_t* handle,
|
|
83
|
-
AsyncWrap::ProviderType provider);
|
|
84
|
-
virtual void OnClose() {}
|
|
85
|
-
|
|
86
|
-
void MarkAsInitialized();
|
|
87
|
-
void MarkAsUninitialized();
|
|
88
|
-
|
|
89
|
-
inline bool IsHandleClosing() const {
|
|
90
|
-
return state_ == kClosing || state_ == kClosed;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private:
|
|
94
|
-
friend class Environment;
|
|
95
|
-
friend void GetActiveHandles(const v8::FunctionCallbackInfo<v8::Value>&);
|
|
96
|
-
static void OnClose(uv_handle_t* handle);
|
|
97
|
-
|
|
98
|
-
// handle_wrap_queue_ needs to be at a fixed offset from the start of the
|
|
99
|
-
// class because it is used by src/node_postmortem_metadata.cc to calculate
|
|
100
|
-
// offsets and generate debug symbols for HandleWrap, which assumes that the
|
|
101
|
-
// position of members in memory are predictable. For more information please
|
|
102
|
-
// refer to `doc/guides/node-postmortem-support.md`
|
|
103
|
-
friend int GenDebugSymbols();
|
|
104
|
-
ListNode<HandleWrap> handle_wrap_queue_;
|
|
105
|
-
enum { kInitialized, kClosing, kClosed } state_;
|
|
106
|
-
uv_handle_t* const handle_;
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
} // namespace node
|
|
111
|
-
|
|
112
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
113
|
-
|
|
114
|
-
#endif // SRC_HANDLE_WRAP_H_
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_INSPECTOR_AGENT_H_
|
|
2
|
-
#define SRC_INSPECTOR_AGENT_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include <memory>
|
|
7
|
-
|
|
8
|
-
#include <stddef.h>
|
|
9
|
-
|
|
10
|
-
#if !HAVE_INSPECTOR
|
|
11
|
-
#error("This header can only be used when inspector is enabled")
|
|
12
|
-
#endif
|
|
13
|
-
|
|
14
|
-
#include "node_options.h"
|
|
15
|
-
#include "node_persistent.h"
|
|
16
|
-
#include "v8.h"
|
|
17
|
-
|
|
18
|
-
namespace v8_inspector {
|
|
19
|
-
class StringView;
|
|
20
|
-
} // namespace v8_inspector
|
|
21
|
-
|
|
22
|
-
namespace node {
|
|
23
|
-
// Forward declaration to break recursive dependency chain with src/env.h.
|
|
24
|
-
class Environment;
|
|
25
|
-
struct ContextInfo;
|
|
26
|
-
|
|
27
|
-
namespace inspector {
|
|
28
|
-
class InspectorIo;
|
|
29
|
-
class ParentInspectorHandle;
|
|
30
|
-
class NodeInspectorClient;
|
|
31
|
-
class WorkerManager;
|
|
32
|
-
|
|
33
|
-
class InspectorSession {
|
|
34
|
-
public:
|
|
35
|
-
virtual ~InspectorSession() {}
|
|
36
|
-
virtual void Dispatch(const v8_inspector::StringView& message) = 0;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
class InspectorSessionDelegate {
|
|
40
|
-
public:
|
|
41
|
-
virtual ~InspectorSessionDelegate() = default;
|
|
42
|
-
virtual void SendMessageToFrontend(const v8_inspector::StringView& message)
|
|
43
|
-
= 0;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
class Agent {
|
|
47
|
-
public:
|
|
48
|
-
explicit Agent(node::Environment* env);
|
|
49
|
-
~Agent();
|
|
50
|
-
|
|
51
|
-
// Create client_, may create io_ if option enabled
|
|
52
|
-
bool Start(const std::string& path,
|
|
53
|
-
std::shared_ptr<DebugOptions> options,
|
|
54
|
-
bool is_worker);
|
|
55
|
-
// Stop and destroy io_
|
|
56
|
-
void Stop();
|
|
57
|
-
|
|
58
|
-
bool IsListening() { return io_ != nullptr; }
|
|
59
|
-
// Returns true if the Node inspector is actually in use. It will be true
|
|
60
|
-
// if either the user explicitly opted into inspector (e.g. with the
|
|
61
|
-
// --inspect command line flag) or if inspector JS API had been used.
|
|
62
|
-
bool IsActive();
|
|
63
|
-
|
|
64
|
-
// Option is set to wait for session connection
|
|
65
|
-
bool WillWaitForConnect();
|
|
66
|
-
// Blocks till frontend connects and sends "runIfWaitingForDebugger"
|
|
67
|
-
void WaitForConnect();
|
|
68
|
-
// Blocks till all the sessions with "WaitForDisconnectOnShutdown" disconnect
|
|
69
|
-
void WaitForDisconnect();
|
|
70
|
-
void FatalException(v8::Local<v8::Value> error,
|
|
71
|
-
v8::Local<v8::Message> message);
|
|
72
|
-
|
|
73
|
-
// Async stack traces instrumentation.
|
|
74
|
-
void AsyncTaskScheduled(const v8_inspector::StringView& taskName, void* task,
|
|
75
|
-
bool recurring);
|
|
76
|
-
void AsyncTaskCanceled(void* task);
|
|
77
|
-
void AsyncTaskStarted(void* task);
|
|
78
|
-
void AsyncTaskFinished(void* task);
|
|
79
|
-
void AllAsyncTasksCanceled();
|
|
80
|
-
|
|
81
|
-
void RegisterAsyncHook(v8::Isolate* isolate,
|
|
82
|
-
v8::Local<v8::Function> enable_function,
|
|
83
|
-
v8::Local<v8::Function> disable_function);
|
|
84
|
-
void EnableAsyncHook();
|
|
85
|
-
void DisableAsyncHook();
|
|
86
|
-
|
|
87
|
-
void AddWorkerInspector(int thread_id, const std::string& url, Agent* agent);
|
|
88
|
-
|
|
89
|
-
// Called to create inspector sessions that can be used from the main thread.
|
|
90
|
-
// The inspector responds by using the delegate to send messages back.
|
|
91
|
-
std::unique_ptr<InspectorSession> Connect(
|
|
92
|
-
std::unique_ptr<InspectorSessionDelegate> delegate,
|
|
93
|
-
bool prevent_shutdown);
|
|
94
|
-
|
|
95
|
-
void PauseOnNextJavascriptStatement(const std::string& reason);
|
|
96
|
-
|
|
97
|
-
InspectorIo* io() {
|
|
98
|
-
return io_.get();
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Can only be called from the main thread.
|
|
102
|
-
bool StartIoThread();
|
|
103
|
-
|
|
104
|
-
// Calls StartIoThread() from off the main thread.
|
|
105
|
-
void RequestIoThreadStart();
|
|
106
|
-
|
|
107
|
-
std::shared_ptr<DebugOptions> options() { return debug_options_; }
|
|
108
|
-
void ContextCreated(v8::Local<v8::Context> context, const ContextInfo& info);
|
|
109
|
-
|
|
110
|
-
// Interface for interacting with inspectors in worker threads
|
|
111
|
-
std::shared_ptr<WorkerManager> GetWorkerManager();
|
|
112
|
-
|
|
113
|
-
private:
|
|
114
|
-
void ToggleAsyncHook(v8::Isolate* isolate,
|
|
115
|
-
const node::Persistent<v8::Function>& fn);
|
|
116
|
-
|
|
117
|
-
node::Environment* parent_env_;
|
|
118
|
-
// Encapsulates majority of the Inspector functionality
|
|
119
|
-
std::shared_ptr<NodeInspectorClient> client_;
|
|
120
|
-
// Interface for transports, e.g. WebSocket server
|
|
121
|
-
std::unique_ptr<InspectorIo> io_;
|
|
122
|
-
std::unique_ptr<ParentInspectorHandle> parent_handle_;
|
|
123
|
-
std::string path_;
|
|
124
|
-
std::shared_ptr<DebugOptions> debug_options_;
|
|
125
|
-
|
|
126
|
-
bool pending_enable_async_hook_ = false;
|
|
127
|
-
bool pending_disable_async_hook_ = false;
|
|
128
|
-
node::Persistent<v8::Function> enable_async_hook_function_;
|
|
129
|
-
node::Persistent<v8::Function> disable_async_hook_function_;
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
} // namespace inspector
|
|
133
|
-
} // namespace node
|
|
134
|
-
|
|
135
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
136
|
-
|
|
137
|
-
#endif // SRC_INSPECTOR_AGENT_H_
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_INSPECTOR_IO_H_
|
|
2
|
-
#define SRC_INSPECTOR_IO_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "inspector_socket_server.h"
|
|
7
|
-
#include "node_mutex.h"
|
|
8
|
-
#include "uv.h"
|
|
9
|
-
|
|
10
|
-
#include <memory>
|
|
11
|
-
#include <stddef.h>
|
|
12
|
-
|
|
13
|
-
#if !HAVE_INSPECTOR
|
|
14
|
-
#error("This header can only be used when inspector is enabled")
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
namespace v8_inspector {
|
|
19
|
-
class StringBuffer;
|
|
20
|
-
class StringView;
|
|
21
|
-
} // namespace v8_inspector
|
|
22
|
-
|
|
23
|
-
namespace node {
|
|
24
|
-
// Forward declaration to break recursive dependency chain with src/env.h.
|
|
25
|
-
class Environment;
|
|
26
|
-
namespace inspector {
|
|
27
|
-
|
|
28
|
-
std::string FormatWsAddress(const std::string& host, int port,
|
|
29
|
-
const std::string& target_id,
|
|
30
|
-
bool include_protocol);
|
|
31
|
-
|
|
32
|
-
class InspectorIoDelegate;
|
|
33
|
-
class MainThreadHandle;
|
|
34
|
-
class RequestQueue;
|
|
35
|
-
|
|
36
|
-
// kKill closes connections and stops the server, kStop only stops the server
|
|
37
|
-
enum class TransportAction {
|
|
38
|
-
kKill,
|
|
39
|
-
kSendMessage,
|
|
40
|
-
kStop
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
class InspectorIo {
|
|
44
|
-
public:
|
|
45
|
-
// Start the inspector agent thread, waiting for it to initialize
|
|
46
|
-
// bool Start();
|
|
47
|
-
// Returns empty pointer if thread was not started
|
|
48
|
-
static std::unique_ptr<InspectorIo> Start(
|
|
49
|
-
std::shared_ptr<MainThreadHandle> main_thread, const std::string& path,
|
|
50
|
-
std::shared_ptr<DebugOptions> options);
|
|
51
|
-
|
|
52
|
-
// Will block till the transport thread shuts down
|
|
53
|
-
~InspectorIo();
|
|
54
|
-
|
|
55
|
-
void StopAcceptingNewConnections();
|
|
56
|
-
const std::string& host() const { return options_->host(); }
|
|
57
|
-
int port() const { return port_; }
|
|
58
|
-
std::vector<std::string> GetTargetIds() const;
|
|
59
|
-
|
|
60
|
-
private:
|
|
61
|
-
InspectorIo(std::shared_ptr<MainThreadHandle> handle,
|
|
62
|
-
const std::string& path,
|
|
63
|
-
std::shared_ptr<DebugOptions> options);
|
|
64
|
-
|
|
65
|
-
// Wrapper for agent->ThreadMain()
|
|
66
|
-
static void ThreadMain(void* agent);
|
|
67
|
-
|
|
68
|
-
// Runs a uv_loop_t
|
|
69
|
-
void ThreadMain();
|
|
70
|
-
|
|
71
|
-
// This is a thread-safe object that will post async tasks. It lives as long
|
|
72
|
-
// as an Inspector object lives (almost as long as an Isolate).
|
|
73
|
-
std::shared_ptr<MainThreadHandle> main_thread_;
|
|
74
|
-
// Used to post on a frontend interface thread, lives while the server is
|
|
75
|
-
// running
|
|
76
|
-
std::shared_ptr<RequestQueue> request_queue_;
|
|
77
|
-
std::shared_ptr<DebugOptions> options_;
|
|
78
|
-
|
|
79
|
-
// The IO thread runs its own uv_loop to implement the TCP server off
|
|
80
|
-
// the main thread.
|
|
81
|
-
uv_thread_t thread_;
|
|
82
|
-
|
|
83
|
-
// For setting up interthread communications
|
|
84
|
-
Mutex thread_start_lock_;
|
|
85
|
-
ConditionVariable thread_start_condition_;
|
|
86
|
-
std::string script_name_;
|
|
87
|
-
int port_ = -1;
|
|
88
|
-
// May be accessed from any thread
|
|
89
|
-
const std::string id_;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
} // namespace inspector
|
|
93
|
-
} // namespace node
|
|
94
|
-
|
|
95
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
96
|
-
|
|
97
|
-
#endif // SRC_INSPECTOR_IO_H_
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_INSPECTOR_SOCKET_H_
|
|
2
|
-
#define SRC_INSPECTOR_SOCKET_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "util-inl.h"
|
|
7
|
-
#include "uv.h"
|
|
8
|
-
|
|
9
|
-
#include <string>
|
|
10
|
-
#include <vector>
|
|
11
|
-
|
|
12
|
-
namespace node {
|
|
13
|
-
namespace inspector {
|
|
14
|
-
|
|
15
|
-
class ProtocolHandler;
|
|
16
|
-
|
|
17
|
-
// HTTP Wrapper around a uv_tcp_t
|
|
18
|
-
class InspectorSocket {
|
|
19
|
-
public:
|
|
20
|
-
class Delegate {
|
|
21
|
-
public:
|
|
22
|
-
virtual void OnHttpGet(const std::string& host,
|
|
23
|
-
const std::string& path) = 0;
|
|
24
|
-
virtual void OnSocketUpgrade(const std::string& host,
|
|
25
|
-
const std::string& path,
|
|
26
|
-
const std::string& accept_key) = 0;
|
|
27
|
-
virtual void OnWsFrame(const std::vector<char>& frame) = 0;
|
|
28
|
-
virtual ~Delegate() {}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
using DelegatePointer = std::unique_ptr<Delegate>;
|
|
32
|
-
using Pointer = std::unique_ptr<InspectorSocket>;
|
|
33
|
-
|
|
34
|
-
static Pointer Accept(uv_stream_t* server, DelegatePointer delegate);
|
|
35
|
-
|
|
36
|
-
~InspectorSocket();
|
|
37
|
-
|
|
38
|
-
void AcceptUpgrade(const std::string& accept_key);
|
|
39
|
-
void CancelHandshake();
|
|
40
|
-
void Write(const char* data, size_t len);
|
|
41
|
-
void SwitchProtocol(ProtocolHandler* handler);
|
|
42
|
-
std::string GetHost();
|
|
43
|
-
|
|
44
|
-
private:
|
|
45
|
-
static void Shutdown(ProtocolHandler*);
|
|
46
|
-
InspectorSocket() = default;
|
|
47
|
-
|
|
48
|
-
DeleteFnPtr<ProtocolHandler, Shutdown> protocol_handler_;
|
|
49
|
-
|
|
50
|
-
DISALLOW_COPY_AND_ASSIGN(InspectorSocket);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
} // namespace inspector
|
|
55
|
-
} // namespace node
|
|
56
|
-
|
|
57
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
58
|
-
|
|
59
|
-
#endif // SRC_INSPECTOR_SOCKET_H_
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_INSPECTOR_SOCKET_SERVER_H_
|
|
2
|
-
#define SRC_INSPECTOR_SOCKET_SERVER_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "inspector_agent.h"
|
|
7
|
-
#include "inspector_socket.h"
|
|
8
|
-
#include "uv.h"
|
|
9
|
-
|
|
10
|
-
#include <map>
|
|
11
|
-
#include <string>
|
|
12
|
-
#include <vector>
|
|
13
|
-
|
|
14
|
-
#if !HAVE_INSPECTOR
|
|
15
|
-
#error("This header can only be used when inspector is enabled")
|
|
16
|
-
#endif
|
|
17
|
-
|
|
18
|
-
namespace node {
|
|
19
|
-
namespace inspector {
|
|
20
|
-
|
|
21
|
-
class InspectorSocketServer;
|
|
22
|
-
class SocketSession;
|
|
23
|
-
class ServerSocket;
|
|
24
|
-
|
|
25
|
-
class SocketServerDelegate {
|
|
26
|
-
public:
|
|
27
|
-
virtual void AssignServer(InspectorSocketServer* server) = 0;
|
|
28
|
-
virtual void StartSession(int session_id, const std::string& target_id) = 0;
|
|
29
|
-
virtual void EndSession(int session_id) = 0;
|
|
30
|
-
virtual void MessageReceived(int session_id, const std::string& message) = 0;
|
|
31
|
-
virtual std::vector<std::string> GetTargetIds() = 0;
|
|
32
|
-
virtual std::string GetTargetTitle(const std::string& id) = 0;
|
|
33
|
-
virtual std::string GetTargetUrl(const std::string& id) = 0;
|
|
34
|
-
virtual ~SocketServerDelegate() {}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
// HTTP Server, writes messages requested as TransportActions, and responds
|
|
38
|
-
// to HTTP requests and WS upgrades.
|
|
39
|
-
|
|
40
|
-
class InspectorSocketServer {
|
|
41
|
-
public:
|
|
42
|
-
InspectorSocketServer(std::unique_ptr<SocketServerDelegate> delegate,
|
|
43
|
-
uv_loop_t* loop,
|
|
44
|
-
const std::string& host,
|
|
45
|
-
int port,
|
|
46
|
-
FILE* out = stderr);
|
|
47
|
-
~InspectorSocketServer();
|
|
48
|
-
|
|
49
|
-
// Start listening on host/port
|
|
50
|
-
bool Start();
|
|
51
|
-
|
|
52
|
-
// Called by the TransportAction sent with InspectorIo::Write():
|
|
53
|
-
// kKill and kStop
|
|
54
|
-
void Stop();
|
|
55
|
-
// kSendMessage
|
|
56
|
-
void Send(int session_id, const std::string& message);
|
|
57
|
-
// kKill
|
|
58
|
-
void TerminateConnections();
|
|
59
|
-
int Port() const;
|
|
60
|
-
|
|
61
|
-
// Session connection lifecycle
|
|
62
|
-
void Accept(int server_port, uv_stream_t* server_socket);
|
|
63
|
-
bool HandleGetRequest(int session_id, const std::string& host,
|
|
64
|
-
const std::string& path);
|
|
65
|
-
void SessionStarted(int session_id, const std::string& target_id,
|
|
66
|
-
const std::string& ws_id);
|
|
67
|
-
void SessionTerminated(int session_id);
|
|
68
|
-
void MessageReceived(int session_id, const std::string& message) {
|
|
69
|
-
delegate_->MessageReceived(session_id, message);
|
|
70
|
-
}
|
|
71
|
-
SocketSession* Session(int session_id);
|
|
72
|
-
bool done() const {
|
|
73
|
-
return server_sockets_.empty() && connected_sessions_.empty();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static void CloseServerSocket(ServerSocket*);
|
|
77
|
-
using ServerSocketPtr = DeleteFnPtr<ServerSocket, CloseServerSocket>;
|
|
78
|
-
|
|
79
|
-
private:
|
|
80
|
-
void SendListResponse(InspectorSocket* socket, const std::string& host,
|
|
81
|
-
SocketSession* session);
|
|
82
|
-
std::string GetFrontendURL(bool is_compat,
|
|
83
|
-
const std::string &formatted_address);
|
|
84
|
-
bool TargetExists(const std::string& id);
|
|
85
|
-
|
|
86
|
-
enum class ServerState {kNew, kRunning, kStopped};
|
|
87
|
-
uv_loop_t* loop_;
|
|
88
|
-
std::unique_ptr<SocketServerDelegate> delegate_;
|
|
89
|
-
const std::string host_;
|
|
90
|
-
int port_;
|
|
91
|
-
std::vector<ServerSocketPtr> server_sockets_;
|
|
92
|
-
std::map<int, std::pair<std::string, std::unique_ptr<SocketSession>>>
|
|
93
|
-
connected_sessions_;
|
|
94
|
-
int next_session_id_;
|
|
95
|
-
FILE* out_;
|
|
96
|
-
ServerState state_;
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
} // namespace inspector
|
|
100
|
-
} // namespace node
|
|
101
|
-
|
|
102
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
103
|
-
|
|
104
|
-
#endif // SRC_INSPECTOR_SOCKET_SERVER_H_
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_JS_STREAM_H_
|
|
2
|
-
#define SRC_JS_STREAM_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "async_wrap.h"
|
|
7
|
-
#include "env.h"
|
|
8
|
-
#include "stream_base.h"
|
|
9
|
-
#include "v8.h"
|
|
10
|
-
|
|
11
|
-
namespace node {
|
|
12
|
-
|
|
13
|
-
class JSStream : public AsyncWrap, public StreamBase {
|
|
14
|
-
public:
|
|
15
|
-
static void Initialize(v8::Local<v8::Object> target,
|
|
16
|
-
v8::Local<v8::Value> unused,
|
|
17
|
-
v8::Local<v8::Context> context);
|
|
18
|
-
|
|
19
|
-
bool IsAlive() override;
|
|
20
|
-
bool IsClosing() override;
|
|
21
|
-
int ReadStart() override;
|
|
22
|
-
int ReadStop() override;
|
|
23
|
-
|
|
24
|
-
int DoShutdown(ShutdownWrap* req_wrap) override;
|
|
25
|
-
int DoWrite(WriteWrap* w,
|
|
26
|
-
uv_buf_t* bufs,
|
|
27
|
-
size_t count,
|
|
28
|
-
uv_stream_t* send_handle) override;
|
|
29
|
-
|
|
30
|
-
SET_NO_MEMORY_INFO()
|
|
31
|
-
SET_MEMORY_INFO_NAME(JSStream)
|
|
32
|
-
SET_SELF_SIZE(JSStream)
|
|
33
|
-
|
|
34
|
-
protected:
|
|
35
|
-
JSStream(Environment* env, v8::Local<v8::Object> obj);
|
|
36
|
-
|
|
37
|
-
AsyncWrap* GetAsyncWrap() override;
|
|
38
|
-
|
|
39
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
40
|
-
static void ReadBuffer(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
41
|
-
static void EmitEOF(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
42
|
-
|
|
43
|
-
static void OnAllocImpl(size_t size, uv_buf_t* buf, void* ctx);
|
|
44
|
-
static void OnReadImpl(ssize_t nread,
|
|
45
|
-
const uv_buf_t* buf,
|
|
46
|
-
uv_handle_type pending,
|
|
47
|
-
void* ctx);
|
|
48
|
-
|
|
49
|
-
template <class Wrap>
|
|
50
|
-
static void Finish(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
} // namespace node
|
|
54
|
-
|
|
55
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
56
|
-
|
|
57
|
-
#endif // SRC_JS_STREAM_H_
|