@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
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
-
//
|
|
7
|
-
#include
|
|
6
|
+
// clang-format off
|
|
7
|
+
#include "node.h" // nghttp2.h needs ssize_t
|
|
8
|
+
// clang-format on
|
|
8
9
|
#include "nghttp2/nghttp2.h"
|
|
9
10
|
|
|
10
11
|
#include "env.h"
|
|
11
|
-
#include "allocated_buffer.h"
|
|
12
12
|
#include "aliased_struct.h"
|
|
13
13
|
#include "node_http2_state.h"
|
|
14
14
|
#include "node_http_common.h"
|
|
@@ -402,6 +402,10 @@ class Http2Stream : public AsyncWrap,
|
|
|
402
402
|
size_t i = 0;
|
|
403
403
|
for (const auto& header : current_headers_ )
|
|
404
404
|
fn(header, i++);
|
|
405
|
+
ClearHeaders();
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
void ClearHeaders() {
|
|
405
409
|
current_headers_.clear();
|
|
406
410
|
}
|
|
407
411
|
|
|
@@ -623,6 +627,15 @@ class Http2Session : public AsyncWrap,
|
|
|
623
627
|
flags_ |= kSessionStateClosed;
|
|
624
628
|
}
|
|
625
629
|
|
|
630
|
+
struct custom_settings_state {
|
|
631
|
+
size_t number;
|
|
632
|
+
nghttp2_settings_entry entries[MAX_ADDITIONAL_SETTINGS];
|
|
633
|
+
};
|
|
634
|
+
|
|
635
|
+
custom_settings_state& custom_settings(bool local) {
|
|
636
|
+
return local ? local_custom_settings_ : remote_custom_settings_;
|
|
637
|
+
}
|
|
638
|
+
|
|
626
639
|
#define IS_FLAG(name, flag) \
|
|
627
640
|
bool is_##name() const { return flags_ & flag; } \
|
|
628
641
|
void set_##name(bool on = true) { \
|
|
@@ -679,9 +692,7 @@ class Http2Session : public AsyncWrap,
|
|
|
679
692
|
|
|
680
693
|
bool has_pending_rststream(int32_t stream_id) {
|
|
681
694
|
return pending_rst_streams_.end() !=
|
|
682
|
-
|
|
683
|
-
pending_rst_streams_.end(),
|
|
684
|
-
stream_id);
|
|
695
|
+
std::ranges::find(pending_rst_streams_, stream_id);
|
|
685
696
|
}
|
|
686
697
|
|
|
687
698
|
// Handle reads/writes from the underlying network transport.
|
|
@@ -699,6 +710,7 @@ class Http2Session : public AsyncWrap,
|
|
|
699
710
|
static void Consume(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
700
711
|
static void Receive(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
701
712
|
static void Destroy(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
713
|
+
static void HasPendingData(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
702
714
|
static void Settings(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
703
715
|
static void Request(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
704
716
|
static void SetNextStreamID(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -710,8 +722,9 @@ class Http2Session : public AsyncWrap,
|
|
|
710
722
|
static void Ping(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
711
723
|
static void AltSvc(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
712
724
|
static void Origin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
725
|
+
static void SetGracefulClose(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
713
726
|
|
|
714
|
-
template <get_setting fn>
|
|
727
|
+
template <get_setting fn, bool local>
|
|
715
728
|
static void RefreshSettings(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
716
729
|
|
|
717
730
|
uv_loop_t* event_loop() const {
|
|
@@ -722,6 +735,7 @@ class Http2Session : public AsyncWrap,
|
|
|
722
735
|
|
|
723
736
|
BaseObjectPtr<Http2Ping> PopPing();
|
|
724
737
|
bool AddPing(const uint8_t* data, v8::Local<v8::Function> callback);
|
|
738
|
+
bool HasPendingData() const;
|
|
725
739
|
|
|
726
740
|
BaseObjectPtr<Http2Settings> PopSettings();
|
|
727
741
|
bool AddSettings(v8::Local<v8::Function> callback);
|
|
@@ -735,6 +749,9 @@ class Http2Session : public AsyncWrap,
|
|
|
735
749
|
current_session_memory_ -= amount;
|
|
736
750
|
}
|
|
737
751
|
|
|
752
|
+
void UpdateLocalCustomSettings(size_t count_,
|
|
753
|
+
nghttp2_settings_entry* entries_);
|
|
754
|
+
|
|
738
755
|
// Tell our custom memory allocator that this rcbuf is independent of
|
|
739
756
|
// this session now, and may outlive it.
|
|
740
757
|
void StopTrackingRcbuf(nghttp2_rcbuf* buf);
|
|
@@ -769,9 +786,18 @@ class Http2Session : public AsyncWrap,
|
|
|
769
786
|
|
|
770
787
|
Statistics statistics_ = {};
|
|
771
788
|
|
|
789
|
+
bool IsGracefulCloseInitiated() const {
|
|
790
|
+
return graceful_close_initiated_;
|
|
791
|
+
}
|
|
792
|
+
void SetGracefulCloseInitiated(bool value) {
|
|
793
|
+
graceful_close_initiated_ = value;
|
|
794
|
+
}
|
|
795
|
+
|
|
772
796
|
private:
|
|
773
797
|
void EmitStatistics();
|
|
774
798
|
|
|
799
|
+
void FetchAllowedRemoteCustomSettings();
|
|
800
|
+
|
|
775
801
|
// Frame Padding Strategies
|
|
776
802
|
ssize_t OnDWordAlignedPadding(size_t frameLength,
|
|
777
803
|
size_t maxPayloadLen);
|
|
@@ -788,6 +814,8 @@ class Http2Session : public AsyncWrap,
|
|
|
788
814
|
void HandleAltSvcFrame(const nghttp2_frame* frame);
|
|
789
815
|
void HandleOriginFrame(const nghttp2_frame* frame);
|
|
790
816
|
|
|
817
|
+
void DecrefHeaders(const nghttp2_frame* frame);
|
|
818
|
+
|
|
791
819
|
// nghttp2 callbacks
|
|
792
820
|
static int OnBeginHeadersCallback(
|
|
793
821
|
nghttp2_session* session,
|
|
@@ -837,11 +865,11 @@ class Http2Session : public AsyncWrap,
|
|
|
837
865
|
const nghttp2_frame* frame,
|
|
838
866
|
size_t maxPayloadLen,
|
|
839
867
|
void* user_data);
|
|
840
|
-
static int OnNghttpError(
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
868
|
+
static int OnNghttpError(nghttp2_session* session,
|
|
869
|
+
int lib_error_code,
|
|
870
|
+
const char* message,
|
|
871
|
+
size_t len,
|
|
872
|
+
void* user_data);
|
|
845
873
|
static int OnSendData(
|
|
846
874
|
nghttp2_session* session,
|
|
847
875
|
nghttp2_frame* frame,
|
|
@@ -897,7 +925,7 @@ class Http2Session : public AsyncWrap,
|
|
|
897
925
|
// When processing input data, either stream_buf_ab_ or stream_buf_allocation_
|
|
898
926
|
// will be set. stream_buf_ab_ is lazily created from stream_buf_allocation_.
|
|
899
927
|
v8::Global<v8::ArrayBuffer> stream_buf_ab_;
|
|
900
|
-
|
|
928
|
+
std::unique_ptr<v8::BackingStore> stream_buf_allocation_;
|
|
901
929
|
size_t stream_buf_offset_ = 0;
|
|
902
930
|
// Custom error code for errors that originated inside one of the callbacks
|
|
903
931
|
// called by nghttp2_session_mem_recv.
|
|
@@ -909,6 +937,9 @@ class Http2Session : public AsyncWrap,
|
|
|
909
937
|
size_t max_outstanding_settings_ = kDefaultMaxSettings;
|
|
910
938
|
std::queue<BaseObjectPtr<Http2Settings>> outstanding_settings_;
|
|
911
939
|
|
|
940
|
+
struct custom_settings_state local_custom_settings_;
|
|
941
|
+
struct custom_settings_state remote_custom_settings_;
|
|
942
|
+
|
|
912
943
|
std::vector<NgHttp2StreamWrite> outgoing_buffers_;
|
|
913
944
|
std::vector<uint8_t> outgoing_storage_;
|
|
914
945
|
size_t outgoing_length_ = 0;
|
|
@@ -928,8 +959,13 @@ class Http2Session : public AsyncWrap,
|
|
|
928
959
|
void CopyDataIntoOutgoing(const uint8_t* src, size_t src_length);
|
|
929
960
|
void ClearOutgoing(int status);
|
|
930
961
|
|
|
962
|
+
void MaybeNotifyGracefulCloseComplete();
|
|
963
|
+
|
|
931
964
|
friend class Http2Scope;
|
|
932
965
|
friend class Http2StreamListener;
|
|
966
|
+
|
|
967
|
+
// Flag to indicate that JavaScript has initiated a graceful closure
|
|
968
|
+
bool graceful_close_initiated_ = false;
|
|
933
969
|
};
|
|
934
970
|
|
|
935
971
|
struct Http2SessionPerformanceEntryTraits {
|
|
@@ -1012,8 +1048,7 @@ class Http2Settings : public AsyncWrap {
|
|
|
1012
1048
|
static void RefreshDefaults(Http2State* http2_state);
|
|
1013
1049
|
|
|
1014
1050
|
// Update the local or remote settings for the given session
|
|
1015
|
-
static void Update(Http2Session* session,
|
|
1016
|
-
get_setting fn);
|
|
1051
|
+
static void Update(Http2Session* session, get_setting fn, bool local);
|
|
1017
1052
|
|
|
1018
1053
|
private:
|
|
1019
1054
|
static size_t Init(
|
|
@@ -1029,7 +1064,7 @@ class Http2Settings : public AsyncWrap {
|
|
|
1029
1064
|
v8::Global<v8::Function> callback_;
|
|
1030
1065
|
uint64_t startTime_;
|
|
1031
1066
|
size_t count_ = 0;
|
|
1032
|
-
nghttp2_settings_entry entries_[IDX_SETTINGS_COUNT];
|
|
1067
|
+
nghttp2_settings_entry entries_[IDX_SETTINGS_COUNT + MAX_ADDITIONAL_SETTINGS];
|
|
1033
1068
|
};
|
|
1034
1069
|
|
|
1035
1070
|
class Origins {
|
|
@@ -1040,7 +1075,7 @@ class Origins {
|
|
|
1040
1075
|
~Origins() = default;
|
|
1041
1076
|
|
|
1042
1077
|
const nghttp2_origin_entry* operator*() const {
|
|
1043
|
-
return
|
|
1078
|
+
return static_cast<const nghttp2_origin_entry*>(bs_->Data());
|
|
1044
1079
|
}
|
|
1045
1080
|
|
|
1046
1081
|
size_t length() const {
|
|
@@ -1049,7 +1084,7 @@ class Origins {
|
|
|
1049
1084
|
|
|
1050
1085
|
private:
|
|
1051
1086
|
size_t count_;
|
|
1052
|
-
|
|
1087
|
+
std::unique_ptr<v8::BackingStore> bs_;
|
|
1053
1088
|
};
|
|
1054
1089
|
|
|
1055
1090
|
#define HTTP2_HIDDEN_CONSTANTS(V) \
|
|
@@ -21,6 +21,9 @@ namespace http2 {
|
|
|
21
21
|
IDX_SETTINGS_COUNT
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
// number of max additional settings, thus settings not implemented by nghttp2
|
|
25
|
+
const size_t MAX_ADDITIONAL_SETTINGS = 10;
|
|
26
|
+
|
|
24
27
|
enum Http2SessionStateIndex {
|
|
25
28
|
IDX_SESSION_STATE_EFFECTIVE_LOCAL_WINDOW_SIZE,
|
|
26
29
|
IDX_SESSION_STATE_EFFECTIVE_RECV_DATA_LENGTH,
|
|
@@ -55,6 +58,9 @@ namespace http2 {
|
|
|
55
58
|
IDX_OPTIONS_MAX_OUTSTANDING_SETTINGS,
|
|
56
59
|
IDX_OPTIONS_MAX_SESSION_MEMORY,
|
|
57
60
|
IDX_OPTIONS_MAX_SETTINGS,
|
|
61
|
+
IDX_OPTIONS_STREAM_RESET_RATE,
|
|
62
|
+
IDX_OPTIONS_STREAM_RESET_BURST,
|
|
63
|
+
IDX_OPTIONS_STRICT_HTTP_FIELD_WHITESPACE_VALIDATION,
|
|
58
64
|
IDX_OPTIONS_FLAGS
|
|
59
65
|
};
|
|
60
66
|
|
|
@@ -83,37 +89,36 @@ namespace http2 {
|
|
|
83
89
|
|
|
84
90
|
class Http2State : public BaseObject {
|
|
85
91
|
public:
|
|
86
|
-
Http2State(
|
|
87
|
-
: BaseObject(
|
|
88
|
-
root_buffer(
|
|
92
|
+
Http2State(Realm* realm, v8::Local<v8::Object> obj)
|
|
93
|
+
: BaseObject(realm, obj),
|
|
94
|
+
root_buffer(realm->isolate(), sizeof(http2_state_internal)),
|
|
89
95
|
session_state_buffer(
|
|
90
|
-
|
|
96
|
+
realm->isolate(),
|
|
91
97
|
offsetof(http2_state_internal, session_state_buffer),
|
|
92
98
|
IDX_SESSION_STATE_COUNT,
|
|
93
99
|
root_buffer),
|
|
94
|
-
stream_state_buffer(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
IDX_STREAM_STATS_COUNT,
|
|
103
|
-
root_buffer),
|
|
100
|
+
stream_state_buffer(realm->isolate(),
|
|
101
|
+
offsetof(http2_state_internal, stream_state_buffer),
|
|
102
|
+
IDX_STREAM_STATE_COUNT,
|
|
103
|
+
root_buffer),
|
|
104
|
+
stream_stats_buffer(realm->isolate(),
|
|
105
|
+
offsetof(http2_state_internal, stream_stats_buffer),
|
|
106
|
+
IDX_STREAM_STATS_COUNT,
|
|
107
|
+
root_buffer),
|
|
104
108
|
session_stats_buffer(
|
|
105
|
-
|
|
109
|
+
realm->isolate(),
|
|
106
110
|
offsetof(http2_state_internal, session_stats_buffer),
|
|
107
111
|
IDX_SESSION_STATS_COUNT,
|
|
108
112
|
root_buffer),
|
|
109
|
-
options_buffer(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
settings_buffer(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
options_buffer(realm->isolate(),
|
|
114
|
+
offsetof(http2_state_internal, options_buffer),
|
|
115
|
+
IDX_OPTIONS_FLAGS + 1,
|
|
116
|
+
root_buffer),
|
|
117
|
+
settings_buffer(
|
|
118
|
+
realm->isolate(),
|
|
119
|
+
offsetof(http2_state_internal, settings_buffer),
|
|
120
|
+
IDX_SETTINGS_COUNT + 1 + 1 + 2 * MAX_ADDITIONAL_SETTINGS,
|
|
121
|
+
root_buffer) {}
|
|
117
122
|
|
|
118
123
|
AliasedUint8Array root_buffer;
|
|
119
124
|
AliasedFloat64Array session_state_buffer;
|
|
@@ -127,7 +132,7 @@ class Http2State : public BaseObject {
|
|
|
127
132
|
SET_SELF_SIZE(Http2State)
|
|
128
133
|
SET_MEMORY_INFO_NAME(Http2State)
|
|
129
134
|
|
|
130
|
-
|
|
135
|
+
SET_BINDING_ID(http2_binding_data)
|
|
131
136
|
|
|
132
137
|
private:
|
|
133
138
|
struct http2_state_internal {
|
|
@@ -137,7 +142,12 @@ class Http2State : public BaseObject {
|
|
|
137
142
|
double stream_stats_buffer[IDX_STREAM_STATS_COUNT];
|
|
138
143
|
double session_stats_buffer[IDX_SESSION_STATS_COUNT];
|
|
139
144
|
uint32_t options_buffer[IDX_OPTIONS_FLAGS + 1];
|
|
140
|
-
|
|
145
|
+
// first + 1: number of actual nghttp2 supported settings
|
|
146
|
+
// second + 1: number of additional settings not supported by nghttp2
|
|
147
|
+
// 2 * MAX_ADDITIONAL_SETTINGS: settings id and value for each
|
|
148
|
+
// additional setting
|
|
149
|
+
uint32_t settings_buffer[IDX_SETTINGS_COUNT + 1 + 1 +
|
|
150
|
+
2 * MAX_ADDITIONAL_SETTINGS];
|
|
141
151
|
};
|
|
142
152
|
};
|
|
143
153
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#include "v8.h"
|
|
9
9
|
|
|
10
10
|
#include <algorithm>
|
|
11
|
+
#include "nbytes.h"
|
|
11
12
|
|
|
12
13
|
namespace node {
|
|
13
14
|
|
|
@@ -31,7 +32,7 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
|
|
|
31
32
|
count_ * sizeof(nv_t) +
|
|
32
33
|
header_string_len);
|
|
33
34
|
|
|
34
|
-
char* start = AlignUp(buf_.out(), alignof(nv_t));
|
|
35
|
+
char* start = nbytes::AlignUp(buf_.out(), alignof(nv_t));
|
|
35
36
|
char* header_contents = start + (count_ * sizeof(nv_t));
|
|
36
37
|
nv_t* const nva = reinterpret_cast<nv_t*>(start);
|
|
37
38
|
|
|
@@ -92,17 +93,13 @@ bool NgHeader<T>::IsZeroLength(
|
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
template <typename T>
|
|
95
|
-
bool NgHeader<T>::IsZeroLength(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
NgHeader<T>::rcbuf_t* value) {
|
|
99
|
-
|
|
96
|
+
bool NgHeader<T>::IsZeroLength(int32_t token,
|
|
97
|
+
NgHeader<T>::rcbuf_t* name,
|
|
98
|
+
NgHeader<T>::rcbuf_t* value) {
|
|
100
99
|
if (NgHeader<T>::rcbufferpointer_t::IsZeroLength(value))
|
|
101
100
|
return true;
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
return header_name != nullptr ||
|
|
105
|
-
NgHeader<T>::rcbufferpointer_t::IsZeroLength(name);
|
|
102
|
+
return NgHeader<T>::rcbufferpointer_t::IsZeroLength(name);
|
|
106
103
|
}
|
|
107
104
|
|
|
108
105
|
template <typename T>
|
|
@@ -131,7 +128,8 @@ NgHeader<T>::NgHeader(
|
|
|
131
128
|
|
|
132
129
|
template <typename T>
|
|
133
130
|
NgHeader<T>::NgHeader(NgHeader<T>&& other) noexcept
|
|
134
|
-
:
|
|
131
|
+
: env_(other.env_),
|
|
132
|
+
name_(std::move(other.name_)),
|
|
135
133
|
value_(std::move(other.value_)),
|
|
136
134
|
token_(other.token_),
|
|
137
135
|
flags_(other.flags_) {
|
|
@@ -24,61 +24,62 @@ class Environment;
|
|
|
24
24
|
V(PATH, ":path") \
|
|
25
25
|
V(PROTOCOL, ":protocol")
|
|
26
26
|
|
|
27
|
-
#define HTTP_REGULAR_HEADERS(V)
|
|
28
|
-
V(ACCEPT_ENCODING, "accept-encoding")
|
|
29
|
-
V(ACCEPT_LANGUAGE, "accept-language")
|
|
30
|
-
V(ACCEPT_RANGES, "accept-ranges")
|
|
31
|
-
V(ACCEPT, "accept")
|
|
32
|
-
V(ACCESS_CONTROL_ALLOW_CREDENTIALS, "access-control-allow-credentials")
|
|
33
|
-
V(ACCESS_CONTROL_ALLOW_HEADERS, "access-control-allow-headers")
|
|
34
|
-
V(ACCESS_CONTROL_ALLOW_METHODS, "access-control-allow-methods")
|
|
35
|
-
V(ACCESS_CONTROL_ALLOW_ORIGIN, "access-control-allow-origin")
|
|
36
|
-
V(ACCESS_CONTROL_EXPOSE_HEADERS, "access-control-expose-headers")
|
|
37
|
-
V(ACCESS_CONTROL_REQUEST_HEADERS, "access-control-request-headers")
|
|
38
|
-
V(ACCESS_CONTROL_REQUEST_METHOD, "access-control-request-method")
|
|
39
|
-
V(AGE, "age")
|
|
40
|
-
V(AUTHORIZATION, "authorization")
|
|
41
|
-
V(CACHE_CONTROL, "cache-control")
|
|
42
|
-
V(CONNECTION, "connection")
|
|
43
|
-
V(CONTENT_DISPOSITION, "content-disposition")
|
|
44
|
-
V(CONTENT_ENCODING, "content-encoding")
|
|
45
|
-
V(CONTENT_LENGTH, "content-length")
|
|
46
|
-
V(CONTENT_TYPE, "content-type")
|
|
47
|
-
V(COOKIE, "cookie")
|
|
48
|
-
V(DATE, "date")
|
|
49
|
-
V(ETAG, "etag")
|
|
50
|
-
V(FORWARDED, "forwarded")
|
|
51
|
-
V(HOST, "host")
|
|
52
|
-
V(IF_MODIFIED_SINCE, "if-modified-since")
|
|
53
|
-
V(IF_NONE_MATCH, "if-none-match")
|
|
54
|
-
V(IF_RANGE, "if-range")
|
|
55
|
-
V(LAST_MODIFIED, "last-modified")
|
|
56
|
-
V(LINK, "link")
|
|
57
|
-
V(LOCATION, "location")
|
|
58
|
-
V(RANGE, "range")
|
|
59
|
-
V(REFERER, "referer")
|
|
60
|
-
V(SERVER, "server")
|
|
61
|
-
V(SET_COOKIE, "set-cookie")
|
|
62
|
-
V(STRICT_TRANSPORT_SECURITY, "strict-transport-security")
|
|
63
|
-
V(TRANSFER_ENCODING, "transfer-encoding")
|
|
64
|
-
V(TE, "te")
|
|
65
|
-
V(UPGRADE_INSECURE_REQUESTS, "upgrade-insecure-requests")
|
|
66
|
-
V(UPGRADE, "upgrade")
|
|
67
|
-
V(USER_AGENT, "user-agent")
|
|
68
|
-
V(VARY, "vary")
|
|
69
|
-
V(X_CONTENT_TYPE_OPTIONS, "x-content-type-options")
|
|
70
|
-
V(X_FRAME_OPTIONS, "x-frame-options")
|
|
71
|
-
V(KEEP_ALIVE, "keep-alive")
|
|
72
|
-
V(PROXY_CONNECTION, "proxy-connection")
|
|
73
|
-
V(X_XSS_PROTECTION, "x-xss-protection")
|
|
74
|
-
V(ALT_SVC, "alt-svc")
|
|
75
|
-
V(CONTENT_SECURITY_POLICY, "content-security-policy")
|
|
76
|
-
V(EARLY_DATA, "early-data")
|
|
77
|
-
V(EXPECT_CT, "expect-ct")
|
|
78
|
-
V(ORIGIN, "origin")
|
|
79
|
-
V(PURPOSE, "purpose")
|
|
80
|
-
V(TIMING_ALLOW_ORIGIN, "timing-allow-origin")
|
|
81
|
-
V(X_FORWARDED_FOR, "x-forwarded-for")
|
|
27
|
+
#define HTTP_REGULAR_HEADERS(V) \
|
|
28
|
+
V(ACCEPT_ENCODING, "accept-encoding") \
|
|
29
|
+
V(ACCEPT_LANGUAGE, "accept-language") \
|
|
30
|
+
V(ACCEPT_RANGES, "accept-ranges") \
|
|
31
|
+
V(ACCEPT, "accept") \
|
|
32
|
+
V(ACCESS_CONTROL_ALLOW_CREDENTIALS, "access-control-allow-credentials") \
|
|
33
|
+
V(ACCESS_CONTROL_ALLOW_HEADERS, "access-control-allow-headers") \
|
|
34
|
+
V(ACCESS_CONTROL_ALLOW_METHODS, "access-control-allow-methods") \
|
|
35
|
+
V(ACCESS_CONTROL_ALLOW_ORIGIN, "access-control-allow-origin") \
|
|
36
|
+
V(ACCESS_CONTROL_EXPOSE_HEADERS, "access-control-expose-headers") \
|
|
37
|
+
V(ACCESS_CONTROL_REQUEST_HEADERS, "access-control-request-headers") \
|
|
38
|
+
V(ACCESS_CONTROL_REQUEST_METHOD, "access-control-request-method") \
|
|
39
|
+
V(AGE, "age") \
|
|
40
|
+
V(AUTHORIZATION, "authorization") \
|
|
41
|
+
V(CACHE_CONTROL, "cache-control") \
|
|
42
|
+
V(CONNECTION, "connection") \
|
|
43
|
+
V(CONTENT_DISPOSITION, "content-disposition") \
|
|
44
|
+
V(CONTENT_ENCODING, "content-encoding") \
|
|
45
|
+
V(CONTENT_LENGTH, "content-length") \
|
|
46
|
+
V(CONTENT_TYPE, "content-type") \
|
|
47
|
+
V(COOKIE, "cookie") \
|
|
48
|
+
V(DATE, "date") \
|
|
49
|
+
V(ETAG, "etag") \
|
|
50
|
+
V(FORWARDED, "forwarded") \
|
|
51
|
+
V(HOST, "host") \
|
|
52
|
+
V(IF_MODIFIED_SINCE, "if-modified-since") \
|
|
53
|
+
V(IF_NONE_MATCH, "if-none-match") \
|
|
54
|
+
V(IF_RANGE, "if-range") \
|
|
55
|
+
V(LAST_MODIFIED, "last-modified") \
|
|
56
|
+
V(LINK, "link") \
|
|
57
|
+
V(LOCATION, "location") \
|
|
58
|
+
V(RANGE, "range") \
|
|
59
|
+
V(REFERER, "referer") \
|
|
60
|
+
V(SERVER, "server") \
|
|
61
|
+
V(SET_COOKIE, "set-cookie") \
|
|
62
|
+
V(STRICT_TRANSPORT_SECURITY, "strict-transport-security") \
|
|
63
|
+
V(TRANSFER_ENCODING, "transfer-encoding") \
|
|
64
|
+
V(TE, "te") \
|
|
65
|
+
V(UPGRADE_INSECURE_REQUESTS, "upgrade-insecure-requests") \
|
|
66
|
+
V(UPGRADE, "upgrade") \
|
|
67
|
+
V(USER_AGENT, "user-agent") \
|
|
68
|
+
V(VARY, "vary") \
|
|
69
|
+
V(X_CONTENT_TYPE_OPTIONS, "x-content-type-options") \
|
|
70
|
+
V(X_FRAME_OPTIONS, "x-frame-options") \
|
|
71
|
+
V(KEEP_ALIVE, "keep-alive") \
|
|
72
|
+
V(PROXY_CONNECTION, "proxy-connection") \
|
|
73
|
+
V(X_XSS_PROTECTION, "x-xss-protection") \
|
|
74
|
+
V(ALT_SVC, "alt-svc") \
|
|
75
|
+
V(CONTENT_SECURITY_POLICY, "content-security-policy") \
|
|
76
|
+
V(EARLY_DATA, "early-data") \
|
|
77
|
+
V(EXPECT_CT, "expect-ct") \
|
|
78
|
+
V(ORIGIN, "origin") \
|
|
79
|
+
V(PURPOSE, "purpose") \
|
|
80
|
+
V(TIMING_ALLOW_ORIGIN, "timing-allow-origin") \
|
|
81
|
+
V(X_FORWARDED_FOR, "x-forwarded-for") \
|
|
82
|
+
V(PRIORITY, "priority")
|
|
82
83
|
|
|
83
84
|
#define HTTP_ADDITIONAL_HEADERS(V) \
|
|
84
85
|
V(ACCEPT_CHARSET, "accept-charset") \
|
|
@@ -196,7 +197,7 @@ enum http_status_codes {
|
|
|
196
197
|
// Unlike the HTTP/1 implementation, the HTTP/2 implementation is not limited
|
|
197
198
|
// to a fixed number of known supported HTTP methods. These constants, therefore
|
|
198
199
|
// are provided strictly as a convenience to users and are exposed via the
|
|
199
|
-
// require('http2').constants object.
|
|
200
|
+
// require('node:http2').constants object.
|
|
200
201
|
#define HTTP_KNOWN_METHODS(V) \
|
|
201
202
|
V(ACL, "ACL") \
|
|
202
203
|
V(BASELINE_CONTROL, "BASELINE-CONTROL") \
|
|
@@ -239,7 +240,7 @@ enum http_status_codes {
|
|
|
239
240
|
V(VERSION_CONTROL, "VERSION-CONTROL")
|
|
240
241
|
|
|
241
242
|
// NgHeaders takes as input a block of headers provided by the
|
|
242
|
-
// JavaScript side (see http2's
|
|
243
|
+
// JavaScript side (see http2's buildNgHeaderString function) and
|
|
243
244
|
// converts it into a array of ng header structs. This is done
|
|
244
245
|
// generically to handle both http/2 and (in the future) http/3,
|
|
245
246
|
// which use nearly identical structs. The template parameter
|
|
@@ -413,8 +414,11 @@ class NgRcBufPointer : public MemoryRetainer {
|
|
|
413
414
|
const char* header_name = reinterpret_cast<const char*>(ptr.data());
|
|
414
415
|
v8::Eternal<v8::String>& eternal = static_str_map[header_name];
|
|
415
416
|
if (eternal.IsEmpty()) {
|
|
416
|
-
v8::Local<v8::String> str
|
|
417
|
-
|
|
417
|
+
v8::Local<v8::String> str;
|
|
418
|
+
if (!GetInternalizedString(env, ptr).ToLocal(&str)) {
|
|
419
|
+
ptr.reset();
|
|
420
|
+
return {};
|
|
421
|
+
}
|
|
418
422
|
eternal.Set(env->isolate(), str);
|
|
419
423
|
return str;
|
|
420
424
|
}
|
|
@@ -38,34 +38,21 @@
|
|
|
38
38
|
namespace node {
|
|
39
39
|
namespace i18n {
|
|
40
40
|
|
|
41
|
-
bool InitializeICUDirectory(const std::string& path);
|
|
41
|
+
bool InitializeICUDirectory(const std::string& path, std::string* error);
|
|
42
42
|
|
|
43
43
|
void SetDefaultTimeZone(const char* tzid);
|
|
44
44
|
|
|
45
|
-
enum idna_mode {
|
|
45
|
+
enum class idna_mode {
|
|
46
46
|
// Default mode for maximum compatibility.
|
|
47
|
-
|
|
47
|
+
kDefault,
|
|
48
48
|
// Ignore all errors in IDNA conversion, if possible.
|
|
49
|
-
|
|
49
|
+
kLenient,
|
|
50
50
|
// Enforce STD3 rules (UseSTD3ASCIIRules) and DNS length restrictions
|
|
51
51
|
// (VerifyDnsLength). Corresponds to `beStrict` flag in the "domain to ASCII"
|
|
52
52
|
// algorithm.
|
|
53
|
-
|
|
53
|
+
kStrict
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
// Implements the WHATWG URL Standard "domain to ASCII" algorithm.
|
|
57
|
-
// https://url.spec.whatwg.org/#concept-domain-to-ascii
|
|
58
|
-
int32_t ToASCII(MaybeStackBuffer<char>* buf,
|
|
59
|
-
const char* input,
|
|
60
|
-
size_t length,
|
|
61
|
-
enum idna_mode mode = IDNA_DEFAULT);
|
|
62
|
-
|
|
63
|
-
// Implements the WHATWG URL Standard "domain to Unicode" algorithm.
|
|
64
|
-
// https://url.spec.whatwg.org/#concept-domain-to-unicode
|
|
65
|
-
int32_t ToUnicode(MaybeStackBuffer<char>* buf,
|
|
66
|
-
const char* input,
|
|
67
|
-
size_t length);
|
|
68
|
-
|
|
69
56
|
struct ConverterDeleter {
|
|
70
57
|
void operator()(UConverter* pointer) const { ucnv_close(pointer); }
|
|
71
58
|
};
|