@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,397 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_OPTIONS_H_
|
|
2
|
-
#define SRC_NODE_OPTIONS_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include <string>
|
|
7
|
-
#include <vector>
|
|
8
|
-
#include <unordered_map>
|
|
9
|
-
#include <memory>
|
|
10
|
-
#include "node_constants.h"
|
|
11
|
-
|
|
12
|
-
namespace node {
|
|
13
|
-
|
|
14
|
-
struct HostPort {
|
|
15
|
-
std::string host_name;
|
|
16
|
-
int port;
|
|
17
|
-
|
|
18
|
-
void Update(const HostPort& other) {
|
|
19
|
-
if (!other.host_name.empty()) host_name = other.host_name;
|
|
20
|
-
if (other.port >= 0) port = other.port;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
class Options {
|
|
25
|
-
public:
|
|
26
|
-
virtual void CheckOptions(std::vector<std::string>* errors) {}
|
|
27
|
-
virtual ~Options() {}
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
// These options are currently essentially per-Environment, but it can be nice
|
|
31
|
-
// to keep them separate since they are a group of options applying to a very
|
|
32
|
-
// specific part of Node. It might also make more sense for them to be
|
|
33
|
-
// per-Isolate, rather than per-Environment.
|
|
34
|
-
class DebugOptions : public Options {
|
|
35
|
-
public:
|
|
36
|
-
bool inspector_enabled = false;
|
|
37
|
-
bool deprecated_debug = false;
|
|
38
|
-
bool break_first_line = false;
|
|
39
|
-
bool break_node_first_line = false;
|
|
40
|
-
HostPort host_port = {"127.0.0.1", -1};
|
|
41
|
-
enum { kDefaultInspectorPort = 9229 };
|
|
42
|
-
|
|
43
|
-
bool deprecated_invocation() const {
|
|
44
|
-
return deprecated_debug &&
|
|
45
|
-
inspector_enabled &&
|
|
46
|
-
break_first_line;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
bool invalid_invocation() const {
|
|
50
|
-
return deprecated_debug && !inspector_enabled;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
bool wait_for_connect() const {
|
|
54
|
-
return break_first_line || break_node_first_line;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const std::string& host() {
|
|
58
|
-
return host_port.host_name;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
int port() {
|
|
62
|
-
return host_port.port < 0 ? kDefaultInspectorPort : host_port.port;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
class EnvironmentOptions : public Options {
|
|
67
|
-
public:
|
|
68
|
-
std::shared_ptr<DebugOptions> debug_options { new DebugOptions() };
|
|
69
|
-
bool abort_on_uncaught_exception = false;
|
|
70
|
-
bool experimental_modules = false;
|
|
71
|
-
bool experimental_repl_await = false;
|
|
72
|
-
bool experimental_vm_modules = false;
|
|
73
|
-
bool experimental_worker = false;
|
|
74
|
-
bool expose_internals = false;
|
|
75
|
-
bool no_deprecation = false;
|
|
76
|
-
bool no_force_async_hooks_checks = false;
|
|
77
|
-
bool no_warnings = false;
|
|
78
|
-
bool pending_deprecation = false;
|
|
79
|
-
bool preserve_symlinks = false;
|
|
80
|
-
bool preserve_symlinks_main = false;
|
|
81
|
-
bool prof_process = false;
|
|
82
|
-
std::string redirect_warnings;
|
|
83
|
-
bool throw_deprecation = false;
|
|
84
|
-
bool trace_deprecation = false;
|
|
85
|
-
bool trace_sync_io = false;
|
|
86
|
-
bool trace_warnings = false;
|
|
87
|
-
std::string unhandled_rejections;
|
|
88
|
-
std::string userland_loader;
|
|
89
|
-
|
|
90
|
-
bool syntax_check_only = false;
|
|
91
|
-
bool has_eval_string = false;
|
|
92
|
-
std::string eval_string;
|
|
93
|
-
bool print_eval = false;
|
|
94
|
-
bool force_repl = false;
|
|
95
|
-
|
|
96
|
-
bool insecure_http_parser = false;
|
|
97
|
-
bool tls_min_v1_0 = false;
|
|
98
|
-
bool tls_min_v1_1 = false;
|
|
99
|
-
bool tls_min_v1_2 = false;
|
|
100
|
-
bool tls_max_v1_2 = false;
|
|
101
|
-
|
|
102
|
-
std::vector<std::string> preload_modules;
|
|
103
|
-
|
|
104
|
-
std::vector<std::string> user_argv;
|
|
105
|
-
|
|
106
|
-
inline DebugOptions* get_debug_options();
|
|
107
|
-
void CheckOptions(std::vector<std::string>* errors);
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
class PerIsolateOptions : public Options {
|
|
111
|
-
public:
|
|
112
|
-
std::shared_ptr<EnvironmentOptions> per_env { new EnvironmentOptions() };
|
|
113
|
-
bool track_heap_objects = false;
|
|
114
|
-
|
|
115
|
-
inline EnvironmentOptions* get_per_env_options();
|
|
116
|
-
void CheckOptions(std::vector<std::string>* errors);
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
class PerProcessOptions : public Options {
|
|
120
|
-
public:
|
|
121
|
-
std::shared_ptr<PerIsolateOptions> per_isolate { new PerIsolateOptions() };
|
|
122
|
-
|
|
123
|
-
std::string title;
|
|
124
|
-
std::string trace_event_categories;
|
|
125
|
-
std::string trace_event_file_pattern = "node_trace.${rotation}.log";
|
|
126
|
-
uint64_t max_http_header_size = 8 * 1024;
|
|
127
|
-
int64_t v8_thread_pool_size = 4;
|
|
128
|
-
bool zero_fill_all_buffers = false;
|
|
129
|
-
|
|
130
|
-
std::vector<std::string> security_reverts;
|
|
131
|
-
bool print_bash_completion = false;
|
|
132
|
-
bool print_help = false;
|
|
133
|
-
bool print_v8_help = false;
|
|
134
|
-
bool print_version = false;
|
|
135
|
-
|
|
136
|
-
#ifdef NODE_HAVE_I18N_SUPPORT
|
|
137
|
-
std::string icu_data_dir;
|
|
138
|
-
#endif
|
|
139
|
-
|
|
140
|
-
// TODO(addaleax): Some of these could probably be per-Environment.
|
|
141
|
-
#if HAVE_OPENSSL
|
|
142
|
-
std::string openssl_config;
|
|
143
|
-
std::string tls_cipher_list = DEFAULT_CIPHER_LIST_CORE;
|
|
144
|
-
#ifdef NODE_OPENSSL_CERT_STORE
|
|
145
|
-
bool ssl_openssl_cert_store = true;
|
|
146
|
-
#else
|
|
147
|
-
bool ssl_openssl_cert_store = false;
|
|
148
|
-
#endif
|
|
149
|
-
bool use_openssl_ca = false;
|
|
150
|
-
bool use_bundled_ca = false;
|
|
151
|
-
#if NODE_FIPS_MODE
|
|
152
|
-
bool enable_fips_crypto = false;
|
|
153
|
-
bool force_fips_crypto = false;
|
|
154
|
-
#endif
|
|
155
|
-
#endif
|
|
156
|
-
|
|
157
|
-
inline PerIsolateOptions* get_per_isolate_options();
|
|
158
|
-
void CheckOptions(std::vector<std::string>* errors);
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
// The actual options parser, as opposed to the structs containing them:
|
|
162
|
-
|
|
163
|
-
namespace options_parser {
|
|
164
|
-
|
|
165
|
-
HostPort SplitHostPort(const std::string& arg,
|
|
166
|
-
std::vector<std::string>* errors);
|
|
167
|
-
void GetOptions(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
168
|
-
|
|
169
|
-
enum OptionEnvvarSettings {
|
|
170
|
-
kAllowedInEnvironment,
|
|
171
|
-
kDisallowedInEnvironment
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
enum OptionType {
|
|
175
|
-
kNoOp,
|
|
176
|
-
kV8Option,
|
|
177
|
-
kBoolean,
|
|
178
|
-
kInteger,
|
|
179
|
-
kUInteger,
|
|
180
|
-
kString,
|
|
181
|
-
kHostPort,
|
|
182
|
-
kStringList,
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
template <typename Options>
|
|
186
|
-
class OptionsParser {
|
|
187
|
-
public:
|
|
188
|
-
virtual ~OptionsParser() {}
|
|
189
|
-
|
|
190
|
-
typedef Options TargetType;
|
|
191
|
-
|
|
192
|
-
struct NoOp {};
|
|
193
|
-
struct V8Option {};
|
|
194
|
-
|
|
195
|
-
// These methods add a single option to the parser. Optionally, it can be
|
|
196
|
-
// specified whether the option should be allowed from environment variable
|
|
197
|
-
// sources (i.e. NODE_OPTIONS).
|
|
198
|
-
void AddOption(const char* name,
|
|
199
|
-
const char* help_text,
|
|
200
|
-
bool Options::* field,
|
|
201
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
202
|
-
void AddOption(const char* name,
|
|
203
|
-
const char* help_text,
|
|
204
|
-
uint64_t Options::* field,
|
|
205
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
206
|
-
void AddOption(const char* name,
|
|
207
|
-
const char* help_text,
|
|
208
|
-
int64_t Options::* field,
|
|
209
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
210
|
-
void AddOption(const char* name,
|
|
211
|
-
const char* help_text,
|
|
212
|
-
std::string Options::* field,
|
|
213
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
214
|
-
void AddOption(const char* name,
|
|
215
|
-
const char* help_text,
|
|
216
|
-
std::vector<std::string> Options::* field,
|
|
217
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
218
|
-
void AddOption(const char* name,
|
|
219
|
-
const char* help_text,
|
|
220
|
-
HostPort Options::* field,
|
|
221
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
222
|
-
void AddOption(const char* name,
|
|
223
|
-
const char* help_text,
|
|
224
|
-
NoOp no_op_tag,
|
|
225
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
226
|
-
void AddOption(const char* name,
|
|
227
|
-
const char* help_text,
|
|
228
|
-
V8Option v8_option_tag,
|
|
229
|
-
OptionEnvvarSettings env_setting = kDisallowedInEnvironment);
|
|
230
|
-
|
|
231
|
-
// Adds aliases. An alias can be of the form "--option-a" -> "--option-b",
|
|
232
|
-
// or have a more complex group expansion, like
|
|
233
|
-
// "--option-a" -> { "--option-b", "--harmony-foobar", "--eval", "42" }
|
|
234
|
-
// If `from` has the form "--option-a=", the alias will only be expanded if
|
|
235
|
-
// the option is presented in that form (i.e. with a '=').
|
|
236
|
-
// If `from` has the form "--option-a <arg>", the alias will only be expanded
|
|
237
|
-
// if the option has a non-option argument (not starting with -) following it.
|
|
238
|
-
void AddAlias(const char* from, const char* to);
|
|
239
|
-
void AddAlias(const char* from, const std::vector<std::string>& to);
|
|
240
|
-
void AddAlias(const char* from,
|
|
241
|
-
const std::initializer_list<std::string>& to);
|
|
242
|
-
|
|
243
|
-
// Add implications from some arbitrary option to a boolean one, either
|
|
244
|
-
// in a way that makes `from` set `to` to true or to false.
|
|
245
|
-
void Implies(const char* from, const char* to);
|
|
246
|
-
void ImpliesNot(const char* from, const char* to);
|
|
247
|
-
|
|
248
|
-
// Insert options from another options parser into this one, along with
|
|
249
|
-
// a method that yields the target options type from this parser's options
|
|
250
|
-
// type.
|
|
251
|
-
template <typename ChildOptions>
|
|
252
|
-
void Insert(OptionsParser<ChildOptions>* child_options_parser,
|
|
253
|
-
ChildOptions* (Options::* get_child)());
|
|
254
|
-
|
|
255
|
-
// Parse a sequence of options into an options struct, a list of
|
|
256
|
-
// arguments that were parsed as options, a list of unknown/JS engine options,
|
|
257
|
-
// and leave the remainder in the input `args` vector.
|
|
258
|
-
//
|
|
259
|
-
// For example, an `args` input of
|
|
260
|
-
//
|
|
261
|
-
// node --foo --harmony-bar --fizzle=42 -- /path/to/cow moo
|
|
262
|
-
//
|
|
263
|
-
// expands as
|
|
264
|
-
//
|
|
265
|
-
// - `args` -> { "node", "/path/to/cow", "moo" }
|
|
266
|
-
// - `exec_args` -> { "--foo", "--harmony-bar", "--fizzle=42" }
|
|
267
|
-
// - `v8_args` -> `{ "node", "--harmony-bar" }
|
|
268
|
-
// - `options->foo == true`, `options->fizzle == 42`.
|
|
269
|
-
//
|
|
270
|
-
// If `*error` is set, the result of the parsing should be discarded and the
|
|
271
|
-
// contents of any of the argument vectors should be considered undefined.
|
|
272
|
-
virtual void Parse(std::vector<std::string>* const args,
|
|
273
|
-
std::vector<std::string>* const exec_args,
|
|
274
|
-
std::vector<std::string>* const v8_args,
|
|
275
|
-
Options* const options,
|
|
276
|
-
OptionEnvvarSettings required_env_settings,
|
|
277
|
-
std::vector<std::string>* const errors);
|
|
278
|
-
|
|
279
|
-
private:
|
|
280
|
-
// We support the wide variety of different option types by remembering
|
|
281
|
-
// how to access them, given a certain `Options` struct.
|
|
282
|
-
|
|
283
|
-
// Represents a field within `Options`.
|
|
284
|
-
class BaseOptionField {
|
|
285
|
-
public:
|
|
286
|
-
virtual ~BaseOptionField() {}
|
|
287
|
-
virtual void* LookupImpl(Options* options) const = 0;
|
|
288
|
-
};
|
|
289
|
-
|
|
290
|
-
// Represents a field of type T within `Options`.
|
|
291
|
-
template <typename T>
|
|
292
|
-
class OptionField : public BaseOptionField {
|
|
293
|
-
public:
|
|
294
|
-
typedef T Type;
|
|
295
|
-
|
|
296
|
-
T* Lookup(Options* options) const {
|
|
297
|
-
return static_cast<T*>(this->LookupImpl(options));
|
|
298
|
-
}
|
|
299
|
-
};
|
|
300
|
-
|
|
301
|
-
// Represents a field of type T within `Options` that can be looked up
|
|
302
|
-
// as a C++ member field.
|
|
303
|
-
template <typename T>
|
|
304
|
-
class SimpleOptionField : public OptionField<T> {
|
|
305
|
-
public:
|
|
306
|
-
explicit SimpleOptionField(T Options::* field) : field_(field) {}
|
|
307
|
-
void* LookupImpl(Options* options) const override {
|
|
308
|
-
return static_cast<void*>(&(options->*field_));
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
private:
|
|
312
|
-
T Options::* field_;
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
template <typename T>
|
|
316
|
-
inline T* Lookup(std::shared_ptr<BaseOptionField> field,
|
|
317
|
-
Options* options) const {
|
|
318
|
-
return std::static_pointer_cast<OptionField<T>>(field)->Lookup(options);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
// An option consists of:
|
|
322
|
-
// - A type.
|
|
323
|
-
// - A way to store/access the property value.
|
|
324
|
-
// - The information of whether it may occur in an env var or not.
|
|
325
|
-
struct OptionInfo {
|
|
326
|
-
OptionType type;
|
|
327
|
-
std::shared_ptr<BaseOptionField> field;
|
|
328
|
-
OptionEnvvarSettings env_setting;
|
|
329
|
-
std::string help_text;
|
|
330
|
-
};
|
|
331
|
-
|
|
332
|
-
// An implied option is composed of the information on where to store a
|
|
333
|
-
// specific boolean value (if another specific option is encountered).
|
|
334
|
-
struct Implication {
|
|
335
|
-
std::shared_ptr<OptionField<bool>> target_field;
|
|
336
|
-
bool target_value;
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
// These are helpers that make `Insert()` support properties of other
|
|
340
|
-
// options structs, if we know how to access them.
|
|
341
|
-
template <typename OriginalField, typename ChildOptions>
|
|
342
|
-
static auto Convert(
|
|
343
|
-
std::shared_ptr<OriginalField> original,
|
|
344
|
-
ChildOptions* (Options::* get_child)());
|
|
345
|
-
template <typename ChildOptions>
|
|
346
|
-
static auto Convert(
|
|
347
|
-
typename OptionsParser<ChildOptions>::OptionInfo original,
|
|
348
|
-
ChildOptions* (Options::* get_child)());
|
|
349
|
-
template <typename ChildOptions>
|
|
350
|
-
static auto Convert(
|
|
351
|
-
typename OptionsParser<ChildOptions>::Implication original,
|
|
352
|
-
ChildOptions* (Options::* get_child)());
|
|
353
|
-
|
|
354
|
-
std::unordered_map<std::string, OptionInfo> options_;
|
|
355
|
-
std::unordered_map<std::string, std::vector<std::string>> aliases_;
|
|
356
|
-
std::unordered_multimap<std::string, Implication> implications_;
|
|
357
|
-
|
|
358
|
-
template <typename OtherOptions>
|
|
359
|
-
friend class OptionsParser;
|
|
360
|
-
|
|
361
|
-
friend void GetOptions(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
class DebugOptionsParser : public OptionsParser<DebugOptions> {
|
|
365
|
-
public:
|
|
366
|
-
DebugOptionsParser();
|
|
367
|
-
|
|
368
|
-
static DebugOptionsParser instance;
|
|
369
|
-
};
|
|
370
|
-
|
|
371
|
-
class EnvironmentOptionsParser : public OptionsParser<EnvironmentOptions> {
|
|
372
|
-
public:
|
|
373
|
-
EnvironmentOptionsParser();
|
|
374
|
-
|
|
375
|
-
static EnvironmentOptionsParser instance;
|
|
376
|
-
};
|
|
377
|
-
|
|
378
|
-
class PerIsolateOptionsParser : public OptionsParser<PerIsolateOptions> {
|
|
379
|
-
public:
|
|
380
|
-
PerIsolateOptionsParser();
|
|
381
|
-
|
|
382
|
-
static PerIsolateOptionsParser instance;
|
|
383
|
-
};
|
|
384
|
-
|
|
385
|
-
class PerProcessOptionsParser : public OptionsParser<PerProcessOptions> {
|
|
386
|
-
public:
|
|
387
|
-
PerProcessOptionsParser();
|
|
388
|
-
|
|
389
|
-
static PerProcessOptionsParser instance;
|
|
390
|
-
};
|
|
391
|
-
|
|
392
|
-
} // namespace options_parser
|
|
393
|
-
} // namespace node
|
|
394
|
-
|
|
395
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
396
|
-
|
|
397
|
-
#endif // SRC_NODE_OPTIONS_H_
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_PERF_H_
|
|
2
|
-
#define SRC_NODE_PERF_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node.h"
|
|
7
|
-
#include "node_internals.h"
|
|
8
|
-
#include "node_perf_common.h"
|
|
9
|
-
#include "env.h"
|
|
10
|
-
#include "base_object-inl.h"
|
|
11
|
-
|
|
12
|
-
#include "v8.h"
|
|
13
|
-
#include "uv.h"
|
|
14
|
-
|
|
15
|
-
#include <string>
|
|
16
|
-
|
|
17
|
-
namespace node {
|
|
18
|
-
namespace performance {
|
|
19
|
-
|
|
20
|
-
using v8::FunctionCallbackInfo;
|
|
21
|
-
using v8::GCType;
|
|
22
|
-
using v8::Local;
|
|
23
|
-
using v8::Object;
|
|
24
|
-
using v8::Value;
|
|
25
|
-
|
|
26
|
-
extern const uint64_t timeOrigin;
|
|
27
|
-
|
|
28
|
-
double GetCurrentTimeInMicroseconds();
|
|
29
|
-
|
|
30
|
-
static inline const char* GetPerformanceMilestoneName(
|
|
31
|
-
enum PerformanceMilestone milestone) {
|
|
32
|
-
switch (milestone) {
|
|
33
|
-
#define V(name, label) case NODE_PERFORMANCE_MILESTONE_##name: return label;
|
|
34
|
-
NODE_PERFORMANCE_MILESTONES(V)
|
|
35
|
-
#undef V
|
|
36
|
-
default:
|
|
37
|
-
UNREACHABLE();
|
|
38
|
-
return 0;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static inline PerformanceMilestone ToPerformanceMilestoneEnum(const char* str) {
|
|
43
|
-
#define V(name, label) \
|
|
44
|
-
if (strcmp(str, label) == 0) return NODE_PERFORMANCE_MILESTONE_##name;
|
|
45
|
-
NODE_PERFORMANCE_MILESTONES(V)
|
|
46
|
-
#undef V
|
|
47
|
-
return NODE_PERFORMANCE_MILESTONE_INVALID;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
static inline PerformanceEntryType ToPerformanceEntryTypeEnum(
|
|
51
|
-
const char* type) {
|
|
52
|
-
#define V(name, label) \
|
|
53
|
-
if (strcmp(type, label) == 0) return NODE_PERFORMANCE_ENTRY_TYPE_##name;
|
|
54
|
-
NODE_PERFORMANCE_ENTRY_TYPES(V)
|
|
55
|
-
#undef V
|
|
56
|
-
return NODE_PERFORMANCE_ENTRY_TYPE_INVALID;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
class PerformanceEntry {
|
|
60
|
-
public:
|
|
61
|
-
static void Notify(Environment* env,
|
|
62
|
-
PerformanceEntryType type,
|
|
63
|
-
Local<Value> object);
|
|
64
|
-
|
|
65
|
-
static void New(const FunctionCallbackInfo<Value>& args);
|
|
66
|
-
|
|
67
|
-
PerformanceEntry(Environment* env,
|
|
68
|
-
const char* name,
|
|
69
|
-
const char* type,
|
|
70
|
-
uint64_t startTime,
|
|
71
|
-
uint64_t endTime) : env_(env),
|
|
72
|
-
name_(name),
|
|
73
|
-
type_(type),
|
|
74
|
-
startTime_(startTime),
|
|
75
|
-
endTime_(endTime) { }
|
|
76
|
-
|
|
77
|
-
virtual ~PerformanceEntry() { }
|
|
78
|
-
|
|
79
|
-
virtual const Local<Object> ToObject() const;
|
|
80
|
-
|
|
81
|
-
Environment* env() const { return env_; }
|
|
82
|
-
|
|
83
|
-
const std::string& name() const { return name_; }
|
|
84
|
-
|
|
85
|
-
const std::string& type() const { return type_; }
|
|
86
|
-
|
|
87
|
-
PerformanceEntryType kind() {
|
|
88
|
-
return ToPerformanceEntryTypeEnum(type().c_str());
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
double startTime() const { return startTimeNano() / 1e6; }
|
|
92
|
-
|
|
93
|
-
double duration() const { return durationNano() / 1e6; }
|
|
94
|
-
|
|
95
|
-
uint64_t startTimeNano() const { return startTime_ - timeOrigin; }
|
|
96
|
-
|
|
97
|
-
uint64_t durationNano() const { return endTime_ - startTime_; }
|
|
98
|
-
|
|
99
|
-
private:
|
|
100
|
-
Environment* env_;
|
|
101
|
-
const std::string name_;
|
|
102
|
-
const std::string type_;
|
|
103
|
-
const uint64_t startTime_;
|
|
104
|
-
const uint64_t endTime_;
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
enum PerformanceGCKind {
|
|
108
|
-
NODE_PERFORMANCE_GC_MAJOR = GCType::kGCTypeMarkSweepCompact,
|
|
109
|
-
NODE_PERFORMANCE_GC_MINOR = GCType::kGCTypeScavenge,
|
|
110
|
-
NODE_PERFORMANCE_GC_INCREMENTAL = GCType::kGCTypeIncrementalMarking,
|
|
111
|
-
NODE_PERFORMANCE_GC_WEAKCB = GCType::kGCTypeProcessWeakCallbacks
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
class GCPerformanceEntry : public PerformanceEntry {
|
|
115
|
-
public:
|
|
116
|
-
GCPerformanceEntry(Environment* env,
|
|
117
|
-
PerformanceGCKind gckind,
|
|
118
|
-
uint64_t startTime,
|
|
119
|
-
uint64_t endTime) :
|
|
120
|
-
PerformanceEntry(env, "gc", "gc", startTime, endTime),
|
|
121
|
-
gckind_(gckind) { }
|
|
122
|
-
|
|
123
|
-
PerformanceGCKind gckind() const { return gckind_; }
|
|
124
|
-
|
|
125
|
-
private:
|
|
126
|
-
PerformanceGCKind gckind_;
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
} // namespace performance
|
|
130
|
-
} // namespace node
|
|
131
|
-
|
|
132
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
133
|
-
|
|
134
|
-
#endif // SRC_NODE_PERF_H_
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_PERF_COMMON_H_
|
|
2
|
-
#define SRC_NODE_PERF_COMMON_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node.h"
|
|
7
|
-
#include "v8.h"
|
|
8
|
-
|
|
9
|
-
#include <algorithm>
|
|
10
|
-
#include <map>
|
|
11
|
-
#include <string>
|
|
12
|
-
|
|
13
|
-
namespace node {
|
|
14
|
-
namespace performance {
|
|
15
|
-
|
|
16
|
-
#define PERFORMANCE_NOW() uv_hrtime()
|
|
17
|
-
|
|
18
|
-
// These occur before the environment is created. Cache them
|
|
19
|
-
// here and add them to the milestones when the env is init'd.
|
|
20
|
-
extern uint64_t performance_node_start;
|
|
21
|
-
extern uint64_t performance_v8_start;
|
|
22
|
-
|
|
23
|
-
#define NODE_PERFORMANCE_MILESTONES(V) \
|
|
24
|
-
V(ENVIRONMENT, "environment") \
|
|
25
|
-
V(NODE_START, "nodeStart") \
|
|
26
|
-
V(V8_START, "v8Start") \
|
|
27
|
-
V(LOOP_START, "loopStart") \
|
|
28
|
-
V(LOOP_EXIT, "loopExit") \
|
|
29
|
-
V(BOOTSTRAP_COMPLETE, "bootstrapComplete")
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
#define NODE_PERFORMANCE_ENTRY_TYPES(V) \
|
|
33
|
-
V(NODE, "node") \
|
|
34
|
-
V(MARK, "mark") \
|
|
35
|
-
V(MEASURE, "measure") \
|
|
36
|
-
V(GC, "gc") \
|
|
37
|
-
V(FUNCTION, "function") \
|
|
38
|
-
V(HTTP2, "http2")
|
|
39
|
-
|
|
40
|
-
enum PerformanceMilestone {
|
|
41
|
-
#define V(name, _) NODE_PERFORMANCE_MILESTONE_##name,
|
|
42
|
-
NODE_PERFORMANCE_MILESTONES(V)
|
|
43
|
-
#undef V
|
|
44
|
-
NODE_PERFORMANCE_MILESTONE_INVALID
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
enum PerformanceEntryType {
|
|
48
|
-
#define V(name, _) NODE_PERFORMANCE_ENTRY_TYPE_##name,
|
|
49
|
-
NODE_PERFORMANCE_ENTRY_TYPES(V)
|
|
50
|
-
#undef V
|
|
51
|
-
NODE_PERFORMANCE_ENTRY_TYPE_INVALID
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
class performance_state {
|
|
55
|
-
public:
|
|
56
|
-
explicit performance_state(v8::Isolate* isolate) :
|
|
57
|
-
root(
|
|
58
|
-
isolate,
|
|
59
|
-
sizeof(performance_state_internal)),
|
|
60
|
-
milestones(
|
|
61
|
-
isolate,
|
|
62
|
-
offsetof(performance_state_internal, milestones),
|
|
63
|
-
NODE_PERFORMANCE_MILESTONE_INVALID,
|
|
64
|
-
root),
|
|
65
|
-
observers(
|
|
66
|
-
isolate,
|
|
67
|
-
offsetof(performance_state_internal, observers),
|
|
68
|
-
NODE_PERFORMANCE_ENTRY_TYPE_INVALID,
|
|
69
|
-
root) {
|
|
70
|
-
for (size_t i = 0; i < milestones.Length(); i++)
|
|
71
|
-
milestones[i] = -1.;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
AliasedBuffer<uint8_t, v8::Uint8Array> root;
|
|
75
|
-
AliasedBuffer<double, v8::Float64Array> milestones;
|
|
76
|
-
AliasedBuffer<uint32_t, v8::Uint32Array> observers;
|
|
77
|
-
|
|
78
|
-
uint64_t performance_last_gc_start_mark = 0;
|
|
79
|
-
|
|
80
|
-
void Mark(enum PerformanceMilestone milestone,
|
|
81
|
-
uint64_t ts = PERFORMANCE_NOW());
|
|
82
|
-
|
|
83
|
-
private:
|
|
84
|
-
struct performance_state_internal {
|
|
85
|
-
// doubles first so that they are always sizeof(double)-aligned
|
|
86
|
-
double milestones[NODE_PERFORMANCE_MILESTONE_INVALID];
|
|
87
|
-
uint32_t observers[NODE_PERFORMANCE_ENTRY_TYPE_INVALID];
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
} // namespace performance
|
|
92
|
-
} // namespace node
|
|
93
|
-
|
|
94
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
95
|
-
|
|
96
|
-
#endif // SRC_NODE_PERF_COMMON_H_
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_PERSISTENT_H_
|
|
2
|
-
#define SRC_NODE_PERSISTENT_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "v8.h"
|
|
7
|
-
|
|
8
|
-
namespace node {
|
|
9
|
-
|
|
10
|
-
template <typename T>
|
|
11
|
-
struct ResetInDestructorPersistentTraits {
|
|
12
|
-
static const bool kResetInDestructor = true;
|
|
13
|
-
template <typename S, typename M>
|
|
14
|
-
// Disallow copy semantics by leaving this unimplemented.
|
|
15
|
-
inline static void Copy(
|
|
16
|
-
const v8::Persistent<S, M>&,
|
|
17
|
-
v8::Persistent<T, ResetInDestructorPersistentTraits<T>>*);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
// v8::Persistent does not reset the object slot in its destructor. That is
|
|
21
|
-
// acknowledged as a flaw in the V8 API and expected to change in the future
|
|
22
|
-
// but for now node::Persistent is the easier and safer alternative.
|
|
23
|
-
template <typename T>
|
|
24
|
-
using Persistent = v8::Persistent<T, ResetInDestructorPersistentTraits<T>>;
|
|
25
|
-
|
|
26
|
-
} // namespace node
|
|
27
|
-
|
|
28
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
29
|
-
|
|
30
|
-
#endif // SRC_NODE_PERSISTENT_H_
|