@encharm/cws 4.4.1 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node137.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +13 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{18 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/22/js_native_api.h +619 -0
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/22/js_native_api_v8.h +485 -0
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{16 → 22}/node_version.h +21 -9
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/{16/tracing → 24}/agent.h +1 -1
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -0
- package/src/headers/24/amaro_version.h +6 -0
- package/src/headers/24/application.h +165 -0
- package/src/headers/24/async_context_frame.h +33 -0
- package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
- package/src/headers/{16 → 24}/async_wrap.h +86 -88
- package/src/headers/{16 → 24}/base_object-inl.h +75 -119
- package/src/headers/{16 → 24}/base_object.h +84 -40
- package/src/headers/24/base_object_types.h +74 -0
- package/src/headers/24/bindingdata.h +272 -0
- package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/24/blob_serializer_deserializer.h +132 -0
- package/src/headers/{18 → 24}/callback_queue.h +1 -0
- package/src/headers/{18 → 24}/cares_wrap.h +68 -144
- package/src/headers/24/child_process_permission.h +31 -0
- package/src/headers/24/cid.h +127 -0
- package/src/headers/24/cjs_module_lexer_version.h +6 -0
- package/src/headers/24/cleanup_queue-inl.h +36 -0
- package/src/headers/24/cleanup_queue.h +79 -0
- package/src/headers/24/compile_cache.h +113 -0
- package/src/headers/24/cppgc_helpers-inl.h +65 -0
- package/src/headers/24/cppgc_helpers.h +162 -0
- package/src/headers/24/crypto/crypto_aes.h +97 -0
- package/src/headers/24/crypto/crypto_argon2.h +86 -0
- package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
- package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
- package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
- package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
- package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
- package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
- package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
- package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
- package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
- package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
- package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
- package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
- package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
- package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
- package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
- package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
- package/src/headers/{16 → 24}/debug_utils.h +31 -22
- package/src/headers/24/defs.h +254 -0
- package/src/headers/24/embedded_data.h +17 -0
- package/src/headers/24/encoding_binding.h +60 -0
- package/src/headers/24/endpoint.h +421 -0
- package/src/headers/{16 → 24}/env-inl.h +198 -540
- package/src/headers/24/env.h +1257 -0
- package/src/headers/24/env_properties.h +561 -0
- package/src/headers/24/fs_permission.h +167 -0
- package/src/headers/{16 → 24}/handle_wrap.h +4 -2
- package/src/headers/{16 → 24}/histogram-inl.h +34 -15
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/{18 → 24}/inspector_agent.h +23 -2
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/{18 → 24}/js_native_api.h +74 -30
- package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
- package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
- package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/{18 → 24}/json_utils.h +19 -8
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
- package/src/headers/{16 → 24}/memory_tracker.h +58 -9
- package/src/headers/24/module_wrap.h +229 -0
- package/src/headers/24/ncrypto.h +1625 -0
- package/src/headers/24/network_agent.h +118 -0
- package/src/headers/24/network_inspector.h +45 -0
- package/src/headers/24/network_resource_manager.h +29 -0
- package/src/headers/{16 → 24}/node.h +560 -72
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/{16 → 24}/node_api_types.h +13 -11
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/{16 → 24}/node_blob.h +46 -78
- package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
- package/src/headers/{16 → 24}/node_bob.h +2 -6
- package/src/headers/{14 → 24}/node_buffer.h +1 -1
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/{14 → 24}/node_constants.h +3 -5
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/{18 → 24}/node_crypto.h +7 -2
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/{16 → 24}/node_errors.h +146 -32
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/{18 → 24}/node_external_reference.h +44 -22
- package/src/headers/{16 → 24}/node_file-inl.h +156 -50
- package/src/headers/{18 → 24}/node_file.h +129 -15
- package/src/headers/{16 → 24}/node_http2.h +53 -18
- package/src/headers/{14 → 24}/node_http2_state.h +35 -25
- package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
- package/src/headers/{16 → 24}/node_http_common.h +63 -59
- package/src/headers/{18 → 24}/node_i18n.h +5 -18
- package/src/headers/{16 → 24}/node_internals.h +131 -76
- package/src/headers/24/node_json.h +24 -0
- package/src/headers/24/node_large_page.h +34 -0
- package/src/headers/24/node_locks.h +180 -0
- package/src/headers/{14 → 24}/node_main_instance.h +15 -44
- package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
- package/src/headers/{16 → 24}/node_messaging.h +27 -11
- package/src/headers/{16 → 24}/node_metadata.h +44 -2
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/{16 → 24}/node_options-inl.h +93 -46
- package/src/headers/{16 → 24}/node_options.h +251 -63
- package/src/headers/{16 → 24}/node_perf.h +6 -25
- package/src/headers/{16 → 24}/node_perf_common.h +23 -10
- package/src/headers/24/node_platform.h +286 -0
- package/src/headers/24/node_process.h +111 -0
- package/src/headers/24/node_realm-inl.h +153 -0
- package/src/headers/24/node_realm.h +236 -0
- package/src/headers/{18 → 24}/node_report.h +13 -17
- package/src/headers/{18 → 24}/node_revert.h +3 -3
- package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
- package/src/headers/24/node_sea.h +74 -0
- package/src/headers/24/node_shadow_realm.h +46 -0
- package/src/headers/24/node_snapshot_builder.h +57 -0
- package/src/headers/24/node_snapshotable.h +174 -0
- package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
- package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
- package/src/headers/24/node_string.h +101 -0
- package/src/headers/24/node_task_runner.h +92 -0
- package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/24/node_threadsafe_cow.h +105 -0
- package/src/headers/24/node_union_bytes.h +81 -0
- package/src/headers/24/node_url.h +101 -0
- package/src/headers/24/node_url_pattern.h +118 -0
- package/src/headers/24/node_v8.h +77 -0
- package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
- package/src/headers/{18 → 24}/node_version.h +18 -6
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/{18 → 24}/node_watchdog.h +2 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/{16 → 24}/node_worker.h +24 -10
- package/src/headers/24/packet.h +155 -0
- package/src/headers/24/path.h +33 -0
- package/src/headers/24/permission/addon_permission.h +31 -0
- package/src/headers/24/permission/child_process_permission.h +31 -0
- package/src/headers/24/permission/fs_permission.h +167 -0
- package/src/headers/24/permission/inspector_permission.h +31 -0
- package/src/headers/24/permission/permission.h +100 -0
- package/src/headers/24/permission/permission_base.h +65 -0
- package/src/headers/24/permission/wasi_permission.h +31 -0
- package/src/headers/24/permission/worker_permission.h +31 -0
- package/src/headers/24/permission.h +100 -0
- package/src/headers/24/permission_base.h +65 -0
- package/src/headers/24/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
- package/src/headers/{16 → 24}/req_wrap.h +3 -1
- package/src/headers/24/runtime_agent.h +41 -0
- package/src/headers/24/session.h +528 -0
- package/src/headers/24/sessionticket.h +108 -0
- package/src/headers/{18 → 24}/spawn_sync.h +9 -8
- package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
- package/src/headers/{16 → 24}/stream_base.h +43 -19
- package/src/headers/{16 → 24}/stream_pipe.h +7 -4
- package/src/headers/{18 → 24}/stream_wrap.h +2 -3
- package/src/headers/24/streams.h +370 -0
- package/src/headers/{16 → 24}/string_bytes.h +8 -21
- package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
- package/src/headers/{18 → 24}/string_decoder.h +0 -1
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
- package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/{16 → 24}/timer_wrap.h +7 -4
- package/src/headers/24/timers.h +75 -0
- package/src/headers/24/tlscontext.h +228 -0
- package/src/headers/24/tokens.h +256 -0
- package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/{16 → 24}/tty_wrap.h +0 -1
- package/src/headers/{18 → 24}/udp_wrap.h +8 -5
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/{16 → 24}/util-inl.h +267 -131
- package/src/headers/{16 → 24}/util.h +338 -146
- package/src/headers/24/v8-external-memory-accounter.h +60 -0
- package/src/headers/24/v8-fast-api-calls.h +819 -0
- package/src/headers/24/v8-inspector.h +426 -0
- package/src/headers/24/wasi_permission.h +31 -0
- package/src/headers/24/worker_agent.h +40 -0
- package/src/headers/24/worker_inspector.h +124 -0
- package/src/headers/24/worker_permission.h +31 -0
- package/src/headers/24/zlib_version.h +6 -0
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
- /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
- /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
- /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
- /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{16 → 24}/inspector_io.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
- /package/src/headers/{16 → 24}/js_stream.h +0 -0
- /package/src/headers/{16 → 24}/node_dir.h +0 -0
- /package/src/headers/{18 → 24}/node_mem.h +0 -0
- /package/src/headers/{18 → 24}/node_mutex.h +0 -0
- /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
- /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
- /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
- /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_URL_H_
|
|
2
|
-
#define SRC_NODE_URL_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "node.h"
|
|
7
|
-
|
|
8
|
-
#include <string>
|
|
9
|
-
|
|
10
|
-
namespace node {
|
|
11
|
-
namespace url {
|
|
12
|
-
|
|
13
|
-
#define PARSESTATES(XX) \
|
|
14
|
-
XX(kSchemeStart) \
|
|
15
|
-
XX(kScheme) \
|
|
16
|
-
XX(kNoScheme) \
|
|
17
|
-
XX(kSpecialRelativeOrAuthority) \
|
|
18
|
-
XX(kPathOrAuthority) \
|
|
19
|
-
XX(kRelative) \
|
|
20
|
-
XX(kRelativeSlash) \
|
|
21
|
-
XX(kSpecialAuthoritySlashes) \
|
|
22
|
-
XX(kSpecialAuthorityIgnoreSlashes) \
|
|
23
|
-
XX(kAuthority) \
|
|
24
|
-
XX(kHost) \
|
|
25
|
-
XX(kHostname) \
|
|
26
|
-
XX(kPort) \
|
|
27
|
-
XX(kFile) \
|
|
28
|
-
XX(kFileSlash) \
|
|
29
|
-
XX(kFileHost) \
|
|
30
|
-
XX(kPathStart) \
|
|
31
|
-
XX(kPath) \
|
|
32
|
-
XX(kCannotBeBase) \
|
|
33
|
-
XX(kQuery) \
|
|
34
|
-
XX(kFragment)
|
|
35
|
-
|
|
36
|
-
#define FLAGS(XX) \
|
|
37
|
-
XX(URL_FLAGS_NONE, 0) \
|
|
38
|
-
XX(URL_FLAGS_FAILED, 0x01) \
|
|
39
|
-
XX(URL_FLAGS_CANNOT_BE_BASE, 0x02) \
|
|
40
|
-
XX(URL_FLAGS_INVALID_PARSE_STATE, 0x04) \
|
|
41
|
-
XX(URL_FLAGS_TERMINATED, 0x08) \
|
|
42
|
-
XX(URL_FLAGS_SPECIAL, 0x10) \
|
|
43
|
-
XX(URL_FLAGS_HAS_USERNAME, 0x20) \
|
|
44
|
-
XX(URL_FLAGS_HAS_PASSWORD, 0x40) \
|
|
45
|
-
XX(URL_FLAGS_HAS_HOST, 0x80) \
|
|
46
|
-
XX(URL_FLAGS_HAS_PATH, 0x100) \
|
|
47
|
-
XX(URL_FLAGS_HAS_QUERY, 0x200) \
|
|
48
|
-
XX(URL_FLAGS_HAS_FRAGMENT, 0x400) \
|
|
49
|
-
XX(URL_FLAGS_IS_DEFAULT_SCHEME_PORT, 0x800) \
|
|
50
|
-
|
|
51
|
-
enum url_parse_state {
|
|
52
|
-
kUnknownState = -1,
|
|
53
|
-
#define XX(name) name,
|
|
54
|
-
PARSESTATES(XX)
|
|
55
|
-
#undef XX
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
enum url_flags {
|
|
59
|
-
#define XX(name, val) name = val,
|
|
60
|
-
FLAGS(XX)
|
|
61
|
-
#undef XX
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
struct url_data {
|
|
65
|
-
int32_t flags = URL_FLAGS_NONE;
|
|
66
|
-
int port = -1;
|
|
67
|
-
std::string scheme;
|
|
68
|
-
std::string username;
|
|
69
|
-
std::string password;
|
|
70
|
-
std::string host;
|
|
71
|
-
std::string query;
|
|
72
|
-
std::string fragment;
|
|
73
|
-
std::vector<std::string> path;
|
|
74
|
-
std::string href;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
namespace table_data {
|
|
78
|
-
extern const char hex[1024];
|
|
79
|
-
extern const uint8_t C0_CONTROL_ENCODE_SET[32];
|
|
80
|
-
extern const uint8_t FRAGMENT_ENCODE_SET[32];
|
|
81
|
-
extern const uint8_t PATH_ENCODE_SET[32];
|
|
82
|
-
extern const uint8_t USERINFO_ENCODE_SET[32];
|
|
83
|
-
extern const uint8_t QUERY_ENCODE_SET_NONSPECIAL[32];
|
|
84
|
-
extern const uint8_t QUERY_ENCODE_SET_SPECIAL[32];
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
class URL {
|
|
88
|
-
public:
|
|
89
|
-
static void Parse(const char* input,
|
|
90
|
-
size_t len,
|
|
91
|
-
enum url_parse_state state_override,
|
|
92
|
-
struct url_data* url,
|
|
93
|
-
bool has_url,
|
|
94
|
-
const struct url_data* base,
|
|
95
|
-
bool has_base);
|
|
96
|
-
|
|
97
|
-
static std::string SerializeURL(const struct url_data* url, bool exclude);
|
|
98
|
-
|
|
99
|
-
URL(const char* input, const size_t len) {
|
|
100
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
URL(const char* input, const size_t len, const URL* base) {
|
|
104
|
-
if (base != nullptr)
|
|
105
|
-
Parse(input, len, kUnknownState,
|
|
106
|
-
&context_, false,
|
|
107
|
-
&(base->context_), true);
|
|
108
|
-
else
|
|
109
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
URL(const char* input, const size_t len,
|
|
113
|
-
const char* base, const size_t baselen) {
|
|
114
|
-
if (base != nullptr && baselen > 0) {
|
|
115
|
-
URL _base(base, baselen);
|
|
116
|
-
Parse(input, len, kUnknownState,
|
|
117
|
-
&context_, false,
|
|
118
|
-
&(_base.context_), true);
|
|
119
|
-
} else {
|
|
120
|
-
Parse(input, len, kUnknownState, &context_, false, nullptr, false);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
explicit URL(const std::string& input) :
|
|
125
|
-
URL(input.c_str(), input.length()) {}
|
|
126
|
-
|
|
127
|
-
URL(const std::string& input, const URL* base) :
|
|
128
|
-
URL(input.c_str(), input.length(), base) {}
|
|
129
|
-
|
|
130
|
-
URL(const std::string& input, const URL& base) :
|
|
131
|
-
URL(input.c_str(), input.length(), &base) {}
|
|
132
|
-
|
|
133
|
-
URL(const std::string& input, const std::string& base) :
|
|
134
|
-
URL(input.c_str(), input.length(), base.c_str(), base.length()) {}
|
|
135
|
-
|
|
136
|
-
int32_t flags() const {
|
|
137
|
-
return context_.flags;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
int port() const {
|
|
141
|
-
return context_.port;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
const std::string& protocol() const {
|
|
145
|
-
return context_.scheme;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
const std::string& username() const {
|
|
149
|
-
return context_.username;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const std::string& password() const {
|
|
153
|
-
return context_.password;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
const std::string& host() const {
|
|
157
|
-
return context_.host;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const std::string& query() const {
|
|
161
|
-
return context_.query;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
const std::string& fragment() const {
|
|
165
|
-
return context_.fragment;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
std::string path() const {
|
|
169
|
-
std::string ret;
|
|
170
|
-
for (const std::string& element : context_.path) {
|
|
171
|
-
ret += '/' + element;
|
|
172
|
-
}
|
|
173
|
-
return ret;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
std::string href() const {
|
|
177
|
-
return SerializeURL(&context_, false);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
// Get the path of the file: URL in a format consumable by native file system
|
|
181
|
-
// APIs. Returns an empty string if something went wrong.
|
|
182
|
-
std::string ToFilePath() const;
|
|
183
|
-
// Get the file URL from native file system path.
|
|
184
|
-
static URL FromFilePath(const std::string& file_path);
|
|
185
|
-
|
|
186
|
-
v8::MaybeLocal<v8::Value> ToObject(Environment* env) const;
|
|
187
|
-
|
|
188
|
-
URL(const URL&) = default;
|
|
189
|
-
URL& operator=(const URL&) = default;
|
|
190
|
-
URL(URL&&) = default;
|
|
191
|
-
URL& operator=(URL&&) = default;
|
|
192
|
-
|
|
193
|
-
URL() : URL("") {}
|
|
194
|
-
|
|
195
|
-
private:
|
|
196
|
-
struct url_data context_;
|
|
197
|
-
};
|
|
198
|
-
|
|
199
|
-
} // namespace url
|
|
200
|
-
|
|
201
|
-
} // namespace node
|
|
202
|
-
|
|
203
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
204
|
-
|
|
205
|
-
#endif // SRC_NODE_URL_H_
|
package/src/headers/16/node_v8.h
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_V8_H_
|
|
2
|
-
#define SRC_NODE_V8_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "aliased_buffer.h"
|
|
7
|
-
#include "base_object.h"
|
|
8
|
-
#include "node_snapshotable.h"
|
|
9
|
-
#include "util.h"
|
|
10
|
-
#include "v8.h"
|
|
11
|
-
|
|
12
|
-
namespace node {
|
|
13
|
-
class Environment;
|
|
14
|
-
struct InternalFieldInfo;
|
|
15
|
-
|
|
16
|
-
namespace v8_utils {
|
|
17
|
-
class BindingData : public SnapshotableObject {
|
|
18
|
-
public:
|
|
19
|
-
BindingData(Environment* env, v8::Local<v8::Object> obj);
|
|
20
|
-
|
|
21
|
-
SERIALIZABLE_OBJECT_METHODS()
|
|
22
|
-
static constexpr FastStringKey type_name{"node::v8::BindingData"};
|
|
23
|
-
static constexpr EmbedderObjectType type_int =
|
|
24
|
-
EmbedderObjectType::k_v8_binding_data;
|
|
25
|
-
|
|
26
|
-
AliasedFloat64Array heap_statistics_buffer;
|
|
27
|
-
AliasedFloat64Array heap_space_statistics_buffer;
|
|
28
|
-
AliasedFloat64Array heap_code_statistics_buffer;
|
|
29
|
-
|
|
30
|
-
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
31
|
-
SET_SELF_SIZE(BindingData)
|
|
32
|
-
SET_MEMORY_INFO_NAME(BindingData)
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
} // namespace v8_utils
|
|
36
|
-
|
|
37
|
-
} // namespace node
|
|
38
|
-
|
|
39
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
40
|
-
|
|
41
|
-
#endif // SRC_NODE_V8_H_
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_V8_PLATFORM_INL_H_
|
|
2
|
-
#define SRC_NODE_V8_PLATFORM_INL_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include <memory>
|
|
7
|
-
|
|
8
|
-
#include "env-inl.h"
|
|
9
|
-
#include "node.h"
|
|
10
|
-
#include "node_metadata.h"
|
|
11
|
-
#include "node_platform.h"
|
|
12
|
-
#include "node_options.h"
|
|
13
|
-
#include "tracing/node_trace_writer.h"
|
|
14
|
-
#include "tracing/trace_event.h"
|
|
15
|
-
#include "tracing/traced_value.h"
|
|
16
|
-
#include "util.h"
|
|
17
|
-
|
|
18
|
-
namespace node {
|
|
19
|
-
|
|
20
|
-
// Ensures that __metadata trace events are only emitted
|
|
21
|
-
// when tracing is enabled.
|
|
22
|
-
class NodeTraceStateObserver
|
|
23
|
-
: public v8::TracingController::TraceStateObserver {
|
|
24
|
-
public:
|
|
25
|
-
inline void OnTraceEnabled() override {
|
|
26
|
-
std::string title = GetProcessTitle("");
|
|
27
|
-
if (!title.empty()) {
|
|
28
|
-
// Only emit the metadata event if the title can be retrieved
|
|
29
|
-
// successfully. Ignore it otherwise.
|
|
30
|
-
TRACE_EVENT_METADATA1(
|
|
31
|
-
"__metadata", "process_name", "name", TRACE_STR_COPY(title.c_str()));
|
|
32
|
-
}
|
|
33
|
-
TRACE_EVENT_METADATA1("__metadata",
|
|
34
|
-
"version",
|
|
35
|
-
"node",
|
|
36
|
-
per_process::metadata.versions.node.c_str());
|
|
37
|
-
TRACE_EVENT_METADATA1(
|
|
38
|
-
"__metadata", "thread_name", "name", "JavaScriptMainThread");
|
|
39
|
-
|
|
40
|
-
auto trace_process = tracing::TracedValue::Create();
|
|
41
|
-
trace_process->BeginDictionary("versions");
|
|
42
|
-
|
|
43
|
-
#define V(key) \
|
|
44
|
-
trace_process->SetString(#key, per_process::metadata.versions.key.c_str());
|
|
45
|
-
|
|
46
|
-
NODE_VERSIONS_KEYS(V)
|
|
47
|
-
#undef V
|
|
48
|
-
|
|
49
|
-
trace_process->EndDictionary();
|
|
50
|
-
|
|
51
|
-
trace_process->SetString("arch", per_process::metadata.arch.c_str());
|
|
52
|
-
trace_process->SetString("platform",
|
|
53
|
-
per_process::metadata.platform.c_str());
|
|
54
|
-
|
|
55
|
-
trace_process->BeginDictionary("release");
|
|
56
|
-
trace_process->SetString("name",
|
|
57
|
-
per_process::metadata.release.name.c_str());
|
|
58
|
-
#if NODE_VERSION_IS_LTS
|
|
59
|
-
trace_process->SetString("lts", per_process::metadata.release.lts.c_str());
|
|
60
|
-
#endif
|
|
61
|
-
trace_process->EndDictionary();
|
|
62
|
-
TRACE_EVENT_METADATA1(
|
|
63
|
-
"__metadata", "node", "process", std::move(trace_process));
|
|
64
|
-
|
|
65
|
-
// This only runs the first time tracing is enabled
|
|
66
|
-
controller_->RemoveTraceStateObserver(this);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
inline void OnTraceDisabled() override {
|
|
70
|
-
// Do nothing here. This should never be called because the
|
|
71
|
-
// observer removes itself when OnTraceEnabled() is called.
|
|
72
|
-
UNREACHABLE();
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
explicit NodeTraceStateObserver(v8::TracingController* controller)
|
|
76
|
-
: controller_(controller) {}
|
|
77
|
-
~NodeTraceStateObserver() override = default;
|
|
78
|
-
|
|
79
|
-
private:
|
|
80
|
-
v8::TracingController* controller_;
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
struct V8Platform {
|
|
84
|
-
bool initialized_ = false;
|
|
85
|
-
|
|
86
|
-
#if NODE_USE_V8_PLATFORM
|
|
87
|
-
inline void Initialize(int thread_pool_size) {
|
|
88
|
-
CHECK(!initialized_);
|
|
89
|
-
initialized_ = true;
|
|
90
|
-
tracing_agent_ = std::make_unique<tracing::Agent>();
|
|
91
|
-
node::tracing::TraceEventHelper::SetAgent(tracing_agent_.get());
|
|
92
|
-
node::tracing::TracingController* controller =
|
|
93
|
-
tracing_agent_->GetTracingController();
|
|
94
|
-
trace_state_observer_ =
|
|
95
|
-
std::make_unique<NodeTraceStateObserver>(controller);
|
|
96
|
-
controller->AddTraceStateObserver(trace_state_observer_.get());
|
|
97
|
-
tracing_file_writer_ = tracing_agent_->DefaultHandle();
|
|
98
|
-
// Only start the tracing agent if we enabled any tracing categories.
|
|
99
|
-
if (!per_process::cli_options->trace_event_categories.empty()) {
|
|
100
|
-
StartTracingAgent();
|
|
101
|
-
}
|
|
102
|
-
// Tracing must be initialized before platform threads are created.
|
|
103
|
-
platform_ = new NodePlatform(thread_pool_size, controller);
|
|
104
|
-
v8::V8::InitializePlatform(platform_);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
inline void Dispose() {
|
|
108
|
-
if (!initialized_)
|
|
109
|
-
return;
|
|
110
|
-
initialized_ = false;
|
|
111
|
-
|
|
112
|
-
StopTracingAgent();
|
|
113
|
-
platform_->Shutdown();
|
|
114
|
-
delete platform_;
|
|
115
|
-
platform_ = nullptr;
|
|
116
|
-
// Destroy tracing after the platform (and platform threads) have been
|
|
117
|
-
// stopped.
|
|
118
|
-
tracing_agent_.reset(nullptr);
|
|
119
|
-
trace_state_observer_.reset(nullptr);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
inline void DrainVMTasks(v8::Isolate* isolate) {
|
|
123
|
-
platform_->DrainTasks(isolate);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
inline void StartTracingAgent() {
|
|
127
|
-
// Attach a new NodeTraceWriter only if this function hasn't been called
|
|
128
|
-
// before.
|
|
129
|
-
if (tracing_file_writer_.IsDefaultHandle()) {
|
|
130
|
-
std::vector<std::string> categories =
|
|
131
|
-
SplitString(per_process::cli_options->trace_event_categories, ',');
|
|
132
|
-
|
|
133
|
-
tracing_file_writer_ = tracing_agent_->AddClient(
|
|
134
|
-
std::set<std::string>(std::make_move_iterator(categories.begin()),
|
|
135
|
-
std::make_move_iterator(categories.end())),
|
|
136
|
-
std::unique_ptr<tracing::AsyncTraceWriter>(
|
|
137
|
-
new tracing::NodeTraceWriter(
|
|
138
|
-
per_process::cli_options->trace_event_file_pattern)),
|
|
139
|
-
tracing::Agent::kUseDefaultCategories);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
inline void StopTracingAgent() { tracing_file_writer_.reset(); }
|
|
144
|
-
|
|
145
|
-
inline tracing::AgentWriterHandle* GetTracingAgentWriter() {
|
|
146
|
-
return &tracing_file_writer_;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
inline NodePlatform* Platform() { return platform_; }
|
|
150
|
-
|
|
151
|
-
std::unique_ptr<NodeTraceStateObserver> trace_state_observer_;
|
|
152
|
-
std::unique_ptr<tracing::Agent> tracing_agent_;
|
|
153
|
-
tracing::AgentWriterHandle tracing_file_writer_;
|
|
154
|
-
NodePlatform* platform_;
|
|
155
|
-
#else // !NODE_USE_V8_PLATFORM
|
|
156
|
-
inline void Initialize(int thread_pool_size) {}
|
|
157
|
-
inline void Dispose() {}
|
|
158
|
-
inline void DrainVMTasks(v8::Isolate* isolate) {}
|
|
159
|
-
inline void StartTracingAgent() {
|
|
160
|
-
if (!per_process::cli_options->trace_event_categories.empty()) {
|
|
161
|
-
fprintf(stderr,
|
|
162
|
-
"Node compiled with NODE_USE_V8_PLATFORM=0, "
|
|
163
|
-
"so event tracing is not available.\n");
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
inline void StopTracingAgent() {}
|
|
167
|
-
|
|
168
|
-
inline tracing::AgentWriterHandle* GetTracingAgentWriter() { return nullptr; }
|
|
169
|
-
|
|
170
|
-
inline NodePlatform* Platform() { return nullptr; }
|
|
171
|
-
#endif // !NODE_USE_V8_PLATFORM
|
|
172
|
-
};
|
|
173
|
-
|
|
174
|
-
namespace per_process {
|
|
175
|
-
extern struct V8Platform v8_platform;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
inline void StartTracingAgent() {
|
|
179
|
-
return per_process::v8_platform.StartTracingAgent();
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
inline tracing::AgentWriterHandle* GetTracingAgentWriter() {
|
|
183
|
-
return per_process::v8_platform.GetTracingAgentWriter();
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
inline void DisposePlatform() {
|
|
187
|
-
per_process::v8_platform.Dispose();
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
} // namespace node
|
|
191
|
-
|
|
192
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
193
|
-
|
|
194
|
-
#endif // SRC_NODE_V8_PLATFORM_INL_H_
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_NODE_WASI_H_
|
|
2
|
-
#define SRC_NODE_WASI_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "base_object.h"
|
|
7
|
-
#include "node_mem.h"
|
|
8
|
-
#include "uvwasi.h"
|
|
9
|
-
|
|
10
|
-
namespace node {
|
|
11
|
-
namespace wasi {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class WASI : public BaseObject,
|
|
15
|
-
public mem::NgLibMemoryManager<WASI, uvwasi_mem_t> {
|
|
16
|
-
public:
|
|
17
|
-
WASI(Environment* env,
|
|
18
|
-
v8::Local<v8::Object> object,
|
|
19
|
-
uvwasi_options_t* options);
|
|
20
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
21
|
-
|
|
22
|
-
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
23
|
-
SET_MEMORY_INFO_NAME(WASI)
|
|
24
|
-
SET_SELF_SIZE(WASI)
|
|
25
|
-
|
|
26
|
-
static void ArgsGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
27
|
-
static void ArgsSizesGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
28
|
-
static void ClockResGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
29
|
-
static void ClockTimeGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
30
|
-
static void EnvironGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
31
|
-
static void EnvironSizesGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
32
|
-
static void FdAdvise(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
33
|
-
static void FdAllocate(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
34
|
-
static void FdClose(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
35
|
-
static void FdDatasync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
36
|
-
static void FdFdstatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
37
|
-
static void FdFdstatSetFlags(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
38
|
-
static void FdFdstatSetRights(
|
|
39
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
40
|
-
static void FdFilestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
41
|
-
static void FdFilestatSetSize(
|
|
42
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
43
|
-
static void FdFilestatSetTimes(
|
|
44
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
45
|
-
static void FdPread(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
46
|
-
static void FdPrestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
47
|
-
static void FdPrestatDirName(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
48
|
-
static void FdPwrite(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
49
|
-
static void FdRead(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
50
|
-
static void FdReaddir(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
51
|
-
static void FdRenumber(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
52
|
-
static void FdSeek(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
53
|
-
static void FdSync(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
54
|
-
static void FdTell(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
55
|
-
static void FdWrite(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
56
|
-
static void PathCreateDirectory(
|
|
57
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
58
|
-
static void PathFilestatGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
59
|
-
static void PathFilestatSetTimes(
|
|
60
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
61
|
-
static void PathLink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
62
|
-
static void PathOpen(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
63
|
-
static void PathReadlink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
64
|
-
static void PathRemoveDirectory(
|
|
65
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
66
|
-
static void PathRename(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
67
|
-
static void PathSymlink(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
68
|
-
static void PathUnlinkFile(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
69
|
-
static void PollOneoff(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
70
|
-
static void ProcExit(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
71
|
-
static void ProcRaise(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
72
|
-
static void RandomGet(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
73
|
-
static void SchedYield(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
74
|
-
static void SockRecv(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
75
|
-
static void SockSend(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
76
|
-
static void SockShutdown(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
77
|
-
|
|
78
|
-
static void _SetMemory(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
79
|
-
|
|
80
|
-
// Implementation for mem::NgLibMemoryManager
|
|
81
|
-
void CheckAllocatedSize(size_t previous_size) const;
|
|
82
|
-
void IncreaseAllocatedSize(size_t size);
|
|
83
|
-
void DecreaseAllocatedSize(size_t size);
|
|
84
|
-
|
|
85
|
-
private:
|
|
86
|
-
~WASI() override;
|
|
87
|
-
inline void readUInt8(char* memory, uint8_t* value, uint32_t offset);
|
|
88
|
-
inline void readUInt16(char* memory, uint16_t* value, uint32_t offset);
|
|
89
|
-
inline void readUInt32(char* memory, uint32_t* value, uint32_t offset);
|
|
90
|
-
inline void readUInt64(char* memory, uint64_t* value, uint32_t offset);
|
|
91
|
-
inline void writeUInt8(char* memory, uint8_t value, uint32_t offset);
|
|
92
|
-
inline void writeUInt16(char* memory, uint16_t value, uint32_t offset);
|
|
93
|
-
inline void writeUInt32(char* memory, uint32_t value, uint32_t offset);
|
|
94
|
-
inline void writeUInt64(char* memory, uint64_t value, uint32_t offset);
|
|
95
|
-
uvwasi_errno_t backingStore(char** store, size_t* byte_length);
|
|
96
|
-
uvwasi_t uvw_;
|
|
97
|
-
v8::Global<v8::Object> memory_;
|
|
98
|
-
uvwasi_mem_t alloc_info_;
|
|
99
|
-
size_t current_uvwasi_memory_ = 0;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
} // namespace wasi
|
|
104
|
-
} // namespace node
|
|
105
|
-
|
|
106
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
107
|
-
|
|
108
|
-
#endif // SRC_NODE_WASI_H_
|
|
@@ -1,152 +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_NODE_WATCHDOG_H_
|
|
23
|
-
#define SRC_NODE_WATCHDOG_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#include <vector>
|
|
28
|
-
#include "handle_wrap.h"
|
|
29
|
-
#include "memory_tracker-inl.h"
|
|
30
|
-
#include "node_mutex.h"
|
|
31
|
-
#include "uv.h"
|
|
32
|
-
#include "v8.h"
|
|
33
|
-
|
|
34
|
-
#ifdef __POSIX__
|
|
35
|
-
#include <pthread.h>
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
namespace node {
|
|
39
|
-
|
|
40
|
-
enum class SignalPropagation {
|
|
41
|
-
kContinuePropagation,
|
|
42
|
-
kStopPropagation,
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
class Watchdog {
|
|
46
|
-
public:
|
|
47
|
-
explicit Watchdog(v8::Isolate* isolate,
|
|
48
|
-
uint64_t ms,
|
|
49
|
-
bool* timed_out = nullptr);
|
|
50
|
-
~Watchdog();
|
|
51
|
-
v8::Isolate* isolate() { return isolate_; }
|
|
52
|
-
|
|
53
|
-
private:
|
|
54
|
-
static void Run(void* arg);
|
|
55
|
-
static void Timer(uv_timer_t* timer);
|
|
56
|
-
|
|
57
|
-
v8::Isolate* isolate_;
|
|
58
|
-
uv_thread_t thread_;
|
|
59
|
-
uv_loop_t loop_;
|
|
60
|
-
uv_async_t async_;
|
|
61
|
-
uv_timer_t timer_;
|
|
62
|
-
bool* timed_out_;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
class SigintWatchdogBase {
|
|
66
|
-
public:
|
|
67
|
-
virtual ~SigintWatchdogBase() = default;
|
|
68
|
-
virtual SignalPropagation HandleSigint() = 0;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
class SigintWatchdog : public SigintWatchdogBase {
|
|
72
|
-
public:
|
|
73
|
-
explicit SigintWatchdog(v8::Isolate* isolate,
|
|
74
|
-
bool* received_signal = nullptr);
|
|
75
|
-
~SigintWatchdog();
|
|
76
|
-
v8::Isolate* isolate() { return isolate_; }
|
|
77
|
-
SignalPropagation HandleSigint() override;
|
|
78
|
-
|
|
79
|
-
private:
|
|
80
|
-
v8::Isolate* isolate_;
|
|
81
|
-
bool* received_signal_;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
class TraceSigintWatchdog : public HandleWrap, public SigintWatchdogBase {
|
|
85
|
-
public:
|
|
86
|
-
static void Init(Environment* env, v8::Local<v8::Object> target);
|
|
87
|
-
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
88
|
-
static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
89
|
-
static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
90
|
-
|
|
91
|
-
SignalPropagation HandleSigint() override;
|
|
92
|
-
|
|
93
|
-
inline void MemoryInfo(node::MemoryTracker* tracker) const override {
|
|
94
|
-
tracker->TrackInlineField("handle_", handle_);
|
|
95
|
-
}
|
|
96
|
-
SET_MEMORY_INFO_NAME(TraceSigintWatchdog)
|
|
97
|
-
SET_SELF_SIZE(TraceSigintWatchdog)
|
|
98
|
-
|
|
99
|
-
private:
|
|
100
|
-
enum class SignalFlags { None, FromIdle, FromInterrupt };
|
|
101
|
-
|
|
102
|
-
TraceSigintWatchdog(Environment* env, v8::Local<v8::Object> object);
|
|
103
|
-
void HandleInterrupt();
|
|
104
|
-
|
|
105
|
-
bool interrupting = false;
|
|
106
|
-
uv_async_t handle_;
|
|
107
|
-
SignalFlags signal_flag_ = SignalFlags::None;
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
class SigintWatchdogHelper {
|
|
111
|
-
public:
|
|
112
|
-
static SigintWatchdogHelper* GetInstance() { return &instance; }
|
|
113
|
-
void Register(SigintWatchdogBase* watchdog);
|
|
114
|
-
void Unregister(SigintWatchdogBase* watchdog);
|
|
115
|
-
bool HasPendingSignal();
|
|
116
|
-
|
|
117
|
-
int Start();
|
|
118
|
-
bool Stop();
|
|
119
|
-
|
|
120
|
-
private:
|
|
121
|
-
SigintWatchdogHelper();
|
|
122
|
-
~SigintWatchdogHelper();
|
|
123
|
-
|
|
124
|
-
static bool InformWatchdogsAboutSignal();
|
|
125
|
-
static SigintWatchdogHelper instance;
|
|
126
|
-
|
|
127
|
-
int start_stop_count_;
|
|
128
|
-
|
|
129
|
-
Mutex mutex_;
|
|
130
|
-
Mutex list_mutex_;
|
|
131
|
-
std::vector<SigintWatchdogBase*> watchdogs_;
|
|
132
|
-
bool has_pending_signal_;
|
|
133
|
-
|
|
134
|
-
#ifdef __POSIX__
|
|
135
|
-
pthread_t thread_;
|
|
136
|
-
uv_sem_t sem_;
|
|
137
|
-
bool has_running_thread_;
|
|
138
|
-
bool stopping_;
|
|
139
|
-
|
|
140
|
-
static void* RunSigintWatchdog(void* arg);
|
|
141
|
-
static void HandleSignal(int signum, siginfo_t* info, void* ucontext);
|
|
142
|
-
#else
|
|
143
|
-
bool watchdog_disabled_;
|
|
144
|
-
static BOOL WINAPI WinCtrlCHandlerRoutine(DWORD dwCtrlType);
|
|
145
|
-
#endif
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
} // namespace node
|
|
149
|
-
|
|
150
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
151
|
-
|
|
152
|
-
#endif // SRC_NODE_WATCHDOG_H_
|