@encharm/cws 4.4.0 → 4.5.1
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/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.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_node108.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_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 +20 -24
- package/src/Socket.h +0 -1
- package/src/headers/20/acorn_version.h +1 -1
- package/src/headers/20/connection_wrap.h +1 -0
- package/src/headers/20/crypto/crypto_keys.h +3 -0
- package/src/headers/20/crypto/crypto_tls.h +12 -3
- package/src/headers/20/crypto/crypto_util.h +3 -2
- package/src/headers/20/env_properties.h +3 -1
- package/src/headers/20/js_native_api.h +11 -1
- package/src/headers/20/js_native_api_v8.h +40 -3
- package/src/headers/20/js_native_api_v8_internals.h +6 -0
- package/src/headers/20/module_wrap.h +1 -1
- package/src/headers/20/node.h +2 -0
- package/src/headers/20/node_api.h +8 -7
- package/src/headers/20/node_constants.h +3 -0
- package/src/headers/20/node_contextify.h +24 -0
- package/src/headers/20/node_file-inl.h +32 -0
- package/src/headers/20/node_file.h +25 -12
- package/src/headers/20/node_options.h +9 -9
- package/src/headers/20/node_version.h +1 -1
- package/src/headers/20/permission/child_process_permission.h +2 -1
- package/src/headers/20/permission/fs_permission.h +11 -9
- package/src/headers/20/permission/inspector_permission.h +29 -0
- package/src/headers/20/permission/permission.h +4 -1
- package/src/headers/20/permission/permission_base.h +6 -2
- package/src/headers/20/permission/worker_permission.h +2 -1
- package/src/headers/20/undici_version.h +2 -2
- 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/{16 → 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/{18 → 22}/js_native_api.h +78 -30
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/{18 → 22}/js_native_api_v8.h +206 -161
- 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/{18 → 22}/node_version.h +20 -8
- 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/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-inl.h +0 -94
- 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-inl.h +0 -223
- 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_buffer.h +0 -92
- package/src/headers/14/node_constants.h +0 -84
- 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_http2_state.h +0 -149
- 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_main_instance.h +0 -96
- 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/threadpoolwork-inl.h +0 -57
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/trace_event.h +0 -720
- 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/aliased_struct-inl.h +0 -54
- package/src/headers/16/aliased_struct.h +0 -63
- 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/async_wrap.h +0 -246
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/base_object.h +0 -294
- package/src/headers/16/connect_wrap.h +0 -26
- package/src/headers/16/connection_wrap.h +0 -30
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_bio.h +0 -194
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/16/crypto/crypto_clienthello.h +0 -131
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_context.h +0 -147
- 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_keys.h +0 -412
- 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_tls.h +0 -292
- package/src/headers/16/crypto/crypto_util.h +0 -736
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/debug_utils.h +0 -184
- package/src/headers/16/diagnosticfilename-inl.h +0 -33
- package/src/headers/16/env-inl.h +0 -1277
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/handle_wrap.h +0 -121
- package/src/headers/16/histogram-inl.h +0 -88
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/inspector_io.h +0 -78
- package/src/headers/16/inspector_socket.h +0 -60
- package/src/headers/16/inspector_socket_server.h +0 -110
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_types.h +0 -160
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/js_native_api_v8_internals.h +0 -39
- package/src/headers/16/js_stream.h +0 -52
- package/src/headers/16/memory_tracker-inl.h +0 -356
- package/src/headers/16/memory_tracker.h +0 -284
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.h +0 -1132
- 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_api_types.h +0 -50
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_blob.h +0 -191
- package/src/headers/16/node_bob-inl.h +0 -37
- package/src/headers/16/node_bob.h +0 -111
- 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_dir.h +0 -52
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_errors.h +0 -277
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_file-inl.h +0 -306
- package/src/headers/16/node_http2.h +0 -1140
- package/src/headers/16/node_http_common-inl.h +0 -200
- package/src/headers/16/node_http_common.h +0 -531
- package/src/headers/16/node_internals.h +0 -421
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_mem-inl.h +0 -112
- package/src/headers/16/node_messaging.h +0 -373
- package/src/headers/16/node_metadata.h +0 -122
- 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_object_wrap.h +0 -132
- package/src/headers/16/node_options-inl.h +0 -477
- package/src/headers/16/node_options.h +0 -494
- package/src/headers/16/node_perf.h +0 -185
- package/src/headers/16/node_perf_common.h +0 -89
- 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_sockaddr-inl.h +0 -266
- package/src/headers/16/node_sockaddr.h +0 -405
- 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_version.h +0 -98
- 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/node_worker.h +0 -145
- package/src/headers/16/req_wrap.h +0 -77
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/stream_base-inl.h +0 -303
- package/src/headers/16/stream_base.h +0 -454
- package/src/headers/16/stream_pipe.h +0 -73
- package/src/headers/16/string_bytes.h +0 -122
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/tcp_wrap.h +0 -103
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/timer_wrap.h +0 -84
- package/src/headers/16/tracing/agent.h +0 -195
- 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/trace_event_common.h +0 -1109
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/tty_wrap.h +0 -66
- package/src/headers/16/util-inl.h +0 -575
- package/src/headers/16/util.h +0 -824
- 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/base_object-inl.h +0 -374
- package/src/headers/18/callback_queue-inl.h +0 -97
- package/src/headers/18/callback_queue.h +0 -78
- package/src/headers/18/cares_wrap.h +0 -523
- 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_cipher.h +0 -291
- 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_dh.h +0 -156
- package/src/headers/18/crypto/crypto_dsa.h +0 -77
- package/src/headers/18/crypto/crypto_ec.h +0 -170
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_hash.h +0 -89
- package/src/headers/18/crypto/crypto_hkdf.h +0 -65
- package/src/headers/18/crypto/crypto_hmac.h +0 -94
- package/src/headers/18/crypto/crypto_keygen.h +0 -305
- package/src/headers/18/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/18/crypto/crypto_random.h +0 -130
- package/src/headers/18/crypto/crypto_rsa.h +0 -141
- package/src/headers/18/crypto/crypto_scrypt.h +0 -87
- package/src/headers/18/crypto/crypto_sig.h +0 -168
- package/src/headers/18/crypto/crypto_spkac.h +0 -21
- package/src/headers/18/crypto/crypto_timing.h +0 -20
- 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_agent.h +0 -144
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_profiler.h +0 -149
- 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/json_utils.h +0 -161
- 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_crypto.h +0 -57
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_external_reference.h +0 -145
- package/src/headers/18/node_file.h +0 -426
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_i18n.h +0 -145
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_mem.h +0 -45
- package/src/headers/18/node_mutex.h +0 -323
- 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_process-inl.h +0 -26
- package/src/headers/18/node_report.h +0 -47
- package/src/headers/18/node_revert.h +0 -82
- package/src/headers/18/node_root_certs.h +0 -3246
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_stat_watcher.h +0 -72
- 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_v8_platform-inl.h +0 -194
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_watchdog.h +0 -152
- 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/pipe_wrap.h +0 -80
- package/src/headers/18/req_wrap-inl.h +0 -170
- package/src/headers/18/spawn_sync.h +0 -242
- package/src/headers/18/stream_wrap.h +0 -133
- package/src/headers/18/string_decoder-inl.h +0 -37
- package/src/headers/18/string_decoder.h +0 -50
- 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/udp_wrap.h +0 -227
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 20}/tracing/node_trace_buffer.h +0 -0
- /package/src/headers/{14 → 20}/tracing/node_trace_writer.h +0 -0
- /package/src/headers/{14 → 20}/tracing/traced_value.h +0 -0
- /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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
#ifndef SRC_BLOB_SERIALIZER_DESERIALIZER_H_
|
|
2
|
+
#define SRC_BLOB_SERIALIZER_DESERIALIZER_H_
|
|
3
|
+
|
|
4
|
+
#include <string>
|
|
5
|
+
#include <vector>
|
|
6
|
+
|
|
7
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
8
|
+
|
|
9
|
+
// This is related to the blob that is used in snapshots and single executable
|
|
10
|
+
// applications and has nothing to do with `node_blob.h`.
|
|
11
|
+
|
|
12
|
+
namespace node {
|
|
13
|
+
|
|
14
|
+
class BlobSerializerDeserializer {
|
|
15
|
+
public:
|
|
16
|
+
explicit BlobSerializerDeserializer(bool is_debug_v) : is_debug(is_debug_v) {}
|
|
17
|
+
|
|
18
|
+
template <typename... Args>
|
|
19
|
+
void Debug(const char* format, Args&&... args) const;
|
|
20
|
+
|
|
21
|
+
template <typename T>
|
|
22
|
+
std::string ToStr(const T& arg) const;
|
|
23
|
+
|
|
24
|
+
template <typename T>
|
|
25
|
+
std::string GetName() const;
|
|
26
|
+
|
|
27
|
+
bool is_debug = false;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
enum class StringLogMode {
|
|
31
|
+
kAddressOnly, // Can be used when the string contains binary content.
|
|
32
|
+
kAddressAndContent,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Child classes are expected to implement T Read<T>() where
|
|
36
|
+
// !std::is_arithmetic_v<T> && !std::is_same_v<T, std::string>
|
|
37
|
+
template <typename Impl>
|
|
38
|
+
class BlobDeserializer : public BlobSerializerDeserializer {
|
|
39
|
+
public:
|
|
40
|
+
explicit BlobDeserializer(bool is_debug_v, std::string_view s)
|
|
41
|
+
: BlobSerializerDeserializer(is_debug_v), sink(s) {}
|
|
42
|
+
~BlobDeserializer() = default;
|
|
43
|
+
|
|
44
|
+
size_t read_total = 0;
|
|
45
|
+
std::string_view sink;
|
|
46
|
+
|
|
47
|
+
Impl* impl() { return static_cast<Impl*>(this); }
|
|
48
|
+
const Impl* impl() const { return static_cast<const Impl*>(this); }
|
|
49
|
+
|
|
50
|
+
// Helper for reading numeric types.
|
|
51
|
+
template <typename T>
|
|
52
|
+
T ReadArithmetic();
|
|
53
|
+
|
|
54
|
+
// Layout of vectors:
|
|
55
|
+
// [ 4/8 bytes ] count
|
|
56
|
+
// [ ... ] contents (count * size of individual elements)
|
|
57
|
+
template <typename T>
|
|
58
|
+
std::vector<T> ReadVector();
|
|
59
|
+
|
|
60
|
+
// ReadString() creates a copy of the data. ReadStringView() doesn't.
|
|
61
|
+
std::string ReadString();
|
|
62
|
+
std::string_view ReadStringView(StringLogMode mode);
|
|
63
|
+
|
|
64
|
+
// Helper for reading an array of numeric types.
|
|
65
|
+
template <typename T>
|
|
66
|
+
void ReadArithmetic(T* out, size_t count);
|
|
67
|
+
|
|
68
|
+
// Helper for reading numeric vectors.
|
|
69
|
+
template <typename Number>
|
|
70
|
+
std::vector<Number> ReadArithmeticVector(size_t count);
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
// Helper for reading non-numeric vectors.
|
|
74
|
+
template <typename T>
|
|
75
|
+
std::vector<T> ReadNonArithmeticVector(size_t count);
|
|
76
|
+
|
|
77
|
+
template <typename T>
|
|
78
|
+
T ReadElement();
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// Child classes are expected to implement size_t Write<T>(const T&) where
|
|
82
|
+
// !std::is_arithmetic_v<T> && !std::is_same_v<T, std::string>
|
|
83
|
+
template <typename Impl>
|
|
84
|
+
class BlobSerializer : public BlobSerializerDeserializer {
|
|
85
|
+
public:
|
|
86
|
+
explicit BlobSerializer(bool is_debug_v)
|
|
87
|
+
: BlobSerializerDeserializer(is_debug_v) {}
|
|
88
|
+
~BlobSerializer() = default;
|
|
89
|
+
|
|
90
|
+
Impl* impl() { return static_cast<Impl*>(this); }
|
|
91
|
+
const Impl* impl() const { return static_cast<const Impl*>(this); }
|
|
92
|
+
|
|
93
|
+
std::vector<char> sink;
|
|
94
|
+
|
|
95
|
+
// Helper for writing numeric types.
|
|
96
|
+
template <typename T>
|
|
97
|
+
size_t WriteArithmetic(const T& data);
|
|
98
|
+
|
|
99
|
+
// Layout of vectors:
|
|
100
|
+
// [ 4/8 bytes ] count
|
|
101
|
+
// [ ... ] contents (count * size of individual elements)
|
|
102
|
+
template <typename T>
|
|
103
|
+
size_t WriteVector(const std::vector<T>& data);
|
|
104
|
+
|
|
105
|
+
// The layout of a written string:
|
|
106
|
+
// [ 4/8 bytes ] length
|
|
107
|
+
// [ |length| bytes ] contents
|
|
108
|
+
size_t WriteStringView(std::string_view data, StringLogMode mode);
|
|
109
|
+
size_t WriteString(const std::string& data);
|
|
110
|
+
|
|
111
|
+
// Helper for writing an array of numeric types.
|
|
112
|
+
template <typename T>
|
|
113
|
+
size_t WriteArithmetic(const T* data, size_t count);
|
|
114
|
+
|
|
115
|
+
// Helper for writing numeric vectors.
|
|
116
|
+
template <typename Number>
|
|
117
|
+
size_t WriteArithmeticVector(const std::vector<Number>& data);
|
|
118
|
+
|
|
119
|
+
private:
|
|
120
|
+
// Helper for writing non-numeric vectors.
|
|
121
|
+
template <typename T>
|
|
122
|
+
size_t WriteNonArithmeticVector(const std::vector<T>& data);
|
|
123
|
+
|
|
124
|
+
template <typename T>
|
|
125
|
+
size_t WriteElement(const T& data);
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
} // namespace node
|
|
129
|
+
|
|
130
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
131
|
+
|
|
132
|
+
#endif // SRC_BLOB_SERIALIZER_DESERIALIZER_H_
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
#include "base_object.h"
|
|
10
10
|
#include "env.h"
|
|
11
11
|
#include "memory_tracker.h"
|
|
12
|
-
#include "util.h"
|
|
13
12
|
#include "node.h"
|
|
13
|
+
#include "node_internals.h"
|
|
14
|
+
#include "util.h"
|
|
14
15
|
|
|
15
16
|
#include "ares.h"
|
|
16
17
|
#include "v8.h"
|
|
@@ -29,6 +30,9 @@ namespace cares_wrap {
|
|
|
29
30
|
|
|
30
31
|
constexpr int ns_t_cname_or_a = -1;
|
|
31
32
|
constexpr int DNS_ESETSRVPENDING = -1000;
|
|
33
|
+
constexpr uint8_t DNS_ORDER_VERBATIM = 0;
|
|
34
|
+
constexpr uint8_t DNS_ORDER_IPV4_FIRST = 1;
|
|
35
|
+
constexpr uint8_t DNS_ORDER_IPV6_FIRST = 2;
|
|
32
36
|
|
|
33
37
|
class ChannelWrap;
|
|
34
38
|
|
|
@@ -194,16 +198,16 @@ class GetAddrInfoReqWrap final : public ReqWrap<uv_getaddrinfo_t> {
|
|
|
194
198
|
public:
|
|
195
199
|
GetAddrInfoReqWrap(Environment* env,
|
|
196
200
|
v8::Local<v8::Object> req_wrap_obj,
|
|
197
|
-
|
|
201
|
+
uint8_t order);
|
|
198
202
|
|
|
199
203
|
SET_NO_MEMORY_INFO()
|
|
200
204
|
SET_MEMORY_INFO_NAME(GetAddrInfoReqWrap)
|
|
201
205
|
SET_SELF_SIZE(GetAddrInfoReqWrap)
|
|
202
206
|
|
|
203
|
-
|
|
207
|
+
uint8_t order() const { return order_; }
|
|
204
208
|
|
|
205
209
|
private:
|
|
206
|
-
const
|
|
210
|
+
const uint8_t order_;
|
|
207
211
|
};
|
|
208
212
|
|
|
209
213
|
class GetNameInfoReqWrap final : public ReqWrap<uv_getnameinfo_t> {
|
|
@@ -242,18 +246,20 @@ class QueryWrap final : public AsyncWrap {
|
|
|
242
246
|
return Traits::Send(this, name);
|
|
243
247
|
}
|
|
244
248
|
|
|
245
|
-
void AresQuery(const char* name,
|
|
249
|
+
void AresQuery(const char* name,
|
|
250
|
+
ares_dns_class_t dnsclass,
|
|
251
|
+
ares_dns_rec_type_t type) {
|
|
246
252
|
channel_->EnsureServers();
|
|
247
253
|
TRACE_EVENT_NESTABLE_ASYNC_BEGIN1(
|
|
248
254
|
TRACING_CATEGORY_NODE2(dns, native), trace_name_, this,
|
|
249
255
|
"name", TRACE_STR_COPY(name));
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
256
|
+
ares_query_dnsrec(channel_->cares_channel(),
|
|
257
|
+
name,
|
|
258
|
+
dnsclass,
|
|
259
|
+
type,
|
|
260
|
+
Callback,
|
|
261
|
+
MakeCallbackPointer(),
|
|
262
|
+
nullptr);
|
|
257
263
|
}
|
|
258
264
|
|
|
259
265
|
void ParseError(int status) {
|
|
@@ -300,19 +306,20 @@ class QueryWrap final : public AsyncWrap {
|
|
|
300
306
|
return wrap;
|
|
301
307
|
}
|
|
302
308
|
|
|
303
|
-
static void Callback(
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
unsigned char* answer_buf,
|
|
308
|
-
int answer_len) {
|
|
309
|
+
static void Callback(void* arg,
|
|
310
|
+
ares_status_t status,
|
|
311
|
+
size_t timeouts,
|
|
312
|
+
const ares_dns_record_t* dnsrec) {
|
|
309
313
|
QueryWrap<Traits>* wrap = FromCallbackPointer(arg);
|
|
310
314
|
if (wrap == nullptr) return;
|
|
311
315
|
|
|
312
316
|
unsigned char* buf_copy = nullptr;
|
|
317
|
+
size_t answer_len = 0;
|
|
313
318
|
if (status == ARES_SUCCESS) {
|
|
314
|
-
|
|
315
|
-
|
|
319
|
+
// No need to explicitly call ares_free_string here,
|
|
320
|
+
// as it is a wrapper around free, which is already
|
|
321
|
+
// invoked when MallocedBuffer is destructed.
|
|
322
|
+
ares_dns_write(dnsrec, &buf_copy, &answer_len);
|
|
316
323
|
}
|
|
317
324
|
|
|
318
325
|
wrap->response_data_ = std::make_unique<ResponseData>();
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// This is an auto generated file, please do not edit.
|
|
2
|
+
// Refer to tools/dep_updaters/update-cjs-module-lexer.sh
|
|
3
|
+
#ifndef SRC_CJS_MODULE_LEXER_VERSION_H_
|
|
4
|
+
#define SRC_CJS_MODULE_LEXER_VERSION_H_
|
|
5
|
+
#define CJS_MODULE_LEXER_VERSION "1.4.1"
|
|
6
|
+
#endif // SRC_CJS_MODULE_LEXER_VERSION_H_
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#ifndef SRC_CLEANUP_QUEUE_INL_H_
|
|
2
|
+
#define SRC_CLEANUP_QUEUE_INL_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "base_object.h"
|
|
7
|
+
#include "cleanup_queue.h"
|
|
8
|
+
#include "memory_tracker-inl.h"
|
|
9
|
+
#include "util.h"
|
|
10
|
+
|
|
11
|
+
namespace node {
|
|
12
|
+
|
|
13
|
+
inline void CleanupQueue::MemoryInfo(MemoryTracker* tracker) const {
|
|
14
|
+
ForEachBaseObject([&](BaseObject* obj) {
|
|
15
|
+
if (obj->IsDoneInitializing()) tracker->Track(obj);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
inline size_t CleanupQueue::SelfSize() const {
|
|
20
|
+
return sizeof(CleanupQueue) +
|
|
21
|
+
cleanup_hooks_.size() * sizeof(CleanupHookCallback);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
bool CleanupQueue::empty() const {
|
|
25
|
+
return cleanup_hooks_.empty();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
void CleanupQueue::Add(Callback cb, void* arg) {
|
|
29
|
+
auto insertion_info =
|
|
30
|
+
cleanup_hooks_.emplace(cb, arg, cleanup_hook_counter_++);
|
|
31
|
+
// Make sure there was no existing element with these values.
|
|
32
|
+
CHECK_EQ(insertion_info.second, true);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
void CleanupQueue::Remove(Callback cb, void* arg) {
|
|
36
|
+
CleanupHookCallback search{cb, arg, 0};
|
|
37
|
+
cleanup_hooks_.erase(search);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
template <typename T>
|
|
41
|
+
void CleanupQueue::ForEachBaseObject(T&& iterator) const {
|
|
42
|
+
std::vector<CleanupHookCallback> callbacks = GetOrdered();
|
|
43
|
+
|
|
44
|
+
for (const auto& hook : callbacks) {
|
|
45
|
+
BaseObject* obj = GetBaseObject(hook);
|
|
46
|
+
if (obj != nullptr) iterator(obj);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
BaseObject* CleanupQueue::GetBaseObject(
|
|
51
|
+
const CleanupHookCallback& callback) const {
|
|
52
|
+
if (callback.fn_ == BaseObject::DeleteMe)
|
|
53
|
+
return static_cast<BaseObject*>(callback.arg_);
|
|
54
|
+
else
|
|
55
|
+
return nullptr;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
} // namespace node
|
|
59
|
+
|
|
60
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
61
|
+
|
|
62
|
+
#endif // SRC_CLEANUP_QUEUE_INL_H_
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#ifndef SRC_CLEANUP_QUEUE_H_
|
|
2
|
+
#define SRC_CLEANUP_QUEUE_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <cstddef>
|
|
7
|
+
#include <cstdint>
|
|
8
|
+
#include <unordered_set>
|
|
9
|
+
#include <vector>
|
|
10
|
+
|
|
11
|
+
#include "memory_tracker.h"
|
|
12
|
+
|
|
13
|
+
namespace node {
|
|
14
|
+
|
|
15
|
+
class BaseObject;
|
|
16
|
+
|
|
17
|
+
class CleanupQueue : public MemoryRetainer {
|
|
18
|
+
public:
|
|
19
|
+
typedef void (*Callback)(void*);
|
|
20
|
+
|
|
21
|
+
CleanupQueue() = default;
|
|
22
|
+
|
|
23
|
+
// Not copyable.
|
|
24
|
+
CleanupQueue(const CleanupQueue&) = delete;
|
|
25
|
+
|
|
26
|
+
SET_MEMORY_INFO_NAME(CleanupQueue)
|
|
27
|
+
inline void MemoryInfo(node::MemoryTracker* tracker) const override;
|
|
28
|
+
inline size_t SelfSize() const override;
|
|
29
|
+
|
|
30
|
+
inline bool empty() const;
|
|
31
|
+
|
|
32
|
+
inline void Add(Callback cb, void* arg);
|
|
33
|
+
inline void Remove(Callback cb, void* arg);
|
|
34
|
+
void Drain();
|
|
35
|
+
|
|
36
|
+
template <typename T>
|
|
37
|
+
inline void ForEachBaseObject(T&& iterator) const;
|
|
38
|
+
|
|
39
|
+
private:
|
|
40
|
+
class CleanupHookCallback {
|
|
41
|
+
public:
|
|
42
|
+
CleanupHookCallback(Callback fn,
|
|
43
|
+
void* arg,
|
|
44
|
+
uint64_t insertion_order_counter)
|
|
45
|
+
: fn_(fn),
|
|
46
|
+
arg_(arg),
|
|
47
|
+
insertion_order_counter_(insertion_order_counter) {}
|
|
48
|
+
|
|
49
|
+
// Only hashes `arg_`, since that is usually enough to identify the hook.
|
|
50
|
+
struct Hash {
|
|
51
|
+
size_t operator()(const CleanupHookCallback& cb) const;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
// Compares by `fn_` and `arg_` being equal.
|
|
55
|
+
struct Equal {
|
|
56
|
+
bool operator()(const CleanupHookCallback& a,
|
|
57
|
+
const CleanupHookCallback& b) const;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
private:
|
|
61
|
+
friend class CleanupQueue;
|
|
62
|
+
Callback fn_;
|
|
63
|
+
void* arg_;
|
|
64
|
+
|
|
65
|
+
// We keep track of the insertion order for these objects, so that we can
|
|
66
|
+
// call the callbacks in reverse order when we are cleaning up.
|
|
67
|
+
uint64_t insertion_order_counter_;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
std::vector<CleanupHookCallback> GetOrdered() const;
|
|
71
|
+
inline BaseObject* GetBaseObject(const CleanupHookCallback& callback) const;
|
|
72
|
+
|
|
73
|
+
// Use an unordered_set, so that we have efficient insertion and removal.
|
|
74
|
+
std::unordered_set<CleanupHookCallback,
|
|
75
|
+
CleanupHookCallback::Hash,
|
|
76
|
+
CleanupHookCallback::Equal>
|
|
77
|
+
cleanup_hooks_;
|
|
78
|
+
uint64_t cleanup_hook_counter_ = 0;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
} // namespace node
|
|
82
|
+
|
|
83
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
84
|
+
|
|
85
|
+
#endif // SRC_CLEANUP_QUEUE_H_
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#ifndef SRC_COMPILE_CACHE_H_
|
|
2
|
+
#define SRC_COMPILE_CACHE_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <cinttypes>
|
|
7
|
+
#include <memory>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <string_view>
|
|
10
|
+
#include <unordered_map>
|
|
11
|
+
#include "v8.h"
|
|
12
|
+
|
|
13
|
+
namespace node {
|
|
14
|
+
class Environment;
|
|
15
|
+
|
|
16
|
+
// TODO(joyeecheung): move it into a CacheHandler class.
|
|
17
|
+
enum class CachedCodeType : uint8_t {
|
|
18
|
+
kCommonJS = 0,
|
|
19
|
+
kESM,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
struct CompileCacheEntry {
|
|
23
|
+
std::unique_ptr<v8::ScriptCompiler::CachedData> cache{nullptr};
|
|
24
|
+
uint32_t cache_key;
|
|
25
|
+
uint32_t code_hash;
|
|
26
|
+
uint32_t code_size;
|
|
27
|
+
|
|
28
|
+
std::string cache_filename;
|
|
29
|
+
std::string source_filename;
|
|
30
|
+
CachedCodeType type;
|
|
31
|
+
bool refreshed = false;
|
|
32
|
+
bool persisted = false;
|
|
33
|
+
|
|
34
|
+
// Copy the cache into a new store for V8 to consume. Caller takes
|
|
35
|
+
// ownership.
|
|
36
|
+
v8::ScriptCompiler::CachedData* CopyCache() const;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
#define COMPILE_CACHE_STATUS(V) \
|
|
40
|
+
V(FAILED) /* Failed to enable the cache */ \
|
|
41
|
+
V(ENABLED) /* Was not enabled before, and now enabled. */ \
|
|
42
|
+
V(ALREADY_ENABLED) /* Was already enabled. */ \
|
|
43
|
+
V(DISABLED) /* Has been disabled by NODE_DISABLE_COMPILE_CACHE. */
|
|
44
|
+
|
|
45
|
+
enum class CompileCacheEnableStatus : uint8_t {
|
|
46
|
+
#define V(status) status,
|
|
47
|
+
COMPILE_CACHE_STATUS(V)
|
|
48
|
+
#undef V
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
struct CompileCacheEnableResult {
|
|
52
|
+
CompileCacheEnableStatus status;
|
|
53
|
+
std::string cache_directory;
|
|
54
|
+
std::string message; // Set in case of failure.
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
class CompileCacheHandler {
|
|
58
|
+
public:
|
|
59
|
+
explicit CompileCacheHandler(Environment* env);
|
|
60
|
+
CompileCacheEnableResult Enable(Environment* env, const std::string& dir);
|
|
61
|
+
|
|
62
|
+
void Persist();
|
|
63
|
+
|
|
64
|
+
CompileCacheEntry* GetOrInsert(v8::Local<v8::String> code,
|
|
65
|
+
v8::Local<v8::String> filename,
|
|
66
|
+
CachedCodeType type);
|
|
67
|
+
void MaybeSave(CompileCacheEntry* entry,
|
|
68
|
+
v8::Local<v8::Function> func,
|
|
69
|
+
bool rejected);
|
|
70
|
+
void MaybeSave(CompileCacheEntry* entry,
|
|
71
|
+
v8::Local<v8::Module> mod,
|
|
72
|
+
bool rejected);
|
|
73
|
+
std::string_view cache_dir() { return compile_cache_dir_; }
|
|
74
|
+
|
|
75
|
+
private:
|
|
76
|
+
void ReadCacheFile(CompileCacheEntry* entry);
|
|
77
|
+
|
|
78
|
+
template <typename T>
|
|
79
|
+
void MaybeSaveImpl(CompileCacheEntry* entry,
|
|
80
|
+
v8::Local<T> func_or_mod,
|
|
81
|
+
bool rejected);
|
|
82
|
+
|
|
83
|
+
template <typename... Args>
|
|
84
|
+
inline void Debug(const char* format, Args&&... args) const;
|
|
85
|
+
|
|
86
|
+
static constexpr size_t kMagicNumberOffset = 0;
|
|
87
|
+
static constexpr size_t kCodeSizeOffset = 1;
|
|
88
|
+
static constexpr size_t kCacheSizeOffset = 2;
|
|
89
|
+
static constexpr size_t kCodeHashOffset = 3;
|
|
90
|
+
static constexpr size_t kCacheHashOffset = 4;
|
|
91
|
+
static constexpr size_t kHeaderCount = 5;
|
|
92
|
+
|
|
93
|
+
v8::Isolate* isolate_ = nullptr;
|
|
94
|
+
bool is_debug_ = false;
|
|
95
|
+
|
|
96
|
+
std::string compile_cache_dir_;
|
|
97
|
+
std::unordered_map<uint32_t, std::unique_ptr<CompileCacheEntry>>
|
|
98
|
+
compiler_cache_store_;
|
|
99
|
+
};
|
|
100
|
+
} // namespace node
|
|
101
|
+
|
|
102
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
103
|
+
|
|
104
|
+
#endif // SRC_COMPILE_CACHE_H_
|
|
@@ -66,7 +66,7 @@ class ClientHelloParser {
|
|
|
66
66
|
void Parse(const uint8_t* data, size_t avail);
|
|
67
67
|
|
|
68
68
|
inline void Reset();
|
|
69
|
-
inline void Start(OnHelloCb onhello_cb, OnEndCb onend_cb, void*
|
|
69
|
+
inline void Start(OnHelloCb onhello_cb, OnEndCb onend_cb, void* cb_arg);
|
|
70
70
|
inline void End();
|
|
71
71
|
inline bool IsPaused() const;
|
|
72
72
|
inline bool IsEnded() const;
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
-
#include "crypto/crypto_util.h"
|
|
7
6
|
#include "base_object.h"
|
|
7
|
+
#include "crypto/crypto_keys.h"
|
|
8
|
+
#include "crypto/crypto_util.h"
|
|
8
9
|
#include "env.h"
|
|
9
10
|
#include "memory_tracker.h"
|
|
10
11
|
#include "v8.h"
|
|
@@ -18,11 +19,10 @@ constexpr int kMaxSupportedVersion = TLS1_3_VERSION;
|
|
|
18
19
|
void GetRootCertificates(
|
|
19
20
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
20
21
|
|
|
21
|
-
void IsExtraRootCertsFileLoaded(
|
|
22
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
23
|
-
|
|
24
22
|
X509_STORE* NewRootCertStore();
|
|
25
23
|
|
|
24
|
+
X509_STORE* GetOrCreateRootCertStore();
|
|
25
|
+
|
|
26
26
|
BIOPointer LoadBIO(Environment* env, v8::Local<v8::Value> v);
|
|
27
27
|
|
|
28
28
|
class SecureContext final : public BaseObject {
|
|
@@ -43,6 +43,10 @@ class SecureContext final : public BaseObject {
|
|
|
43
43
|
|
|
44
44
|
const SSLCtxPointer& ctx() const { return ctx_; }
|
|
45
45
|
|
|
46
|
+
// Non-const ctx() that allows for non-default initialization of
|
|
47
|
+
// the SecureContext.
|
|
48
|
+
SSLCtxPointer& ctx() { return ctx_; }
|
|
49
|
+
|
|
46
50
|
SSLPointer CreateSSL();
|
|
47
51
|
|
|
48
52
|
void SetGetSessionCallback(GetSessionCb cb);
|
|
@@ -50,6 +54,19 @@ class SecureContext final : public BaseObject {
|
|
|
50
54
|
void SetNewSessionCallback(NewSessionCb cb);
|
|
51
55
|
void SetSelectSNIContextCallback(SelectSNIContextCb cb);
|
|
52
56
|
|
|
57
|
+
inline const X509Pointer& issuer() const { return issuer_; }
|
|
58
|
+
inline const X509Pointer& cert() const { return cert_; }
|
|
59
|
+
|
|
60
|
+
v8::Maybe<void> AddCert(Environment* env, BIOPointer&& bio);
|
|
61
|
+
v8::Maybe<void> SetCRL(Environment* env, const BIOPointer& bio);
|
|
62
|
+
v8::Maybe<void> UseKey(Environment* env, const KeyObjectData& key);
|
|
63
|
+
|
|
64
|
+
void SetCACert(const BIOPointer& bio);
|
|
65
|
+
void SetRootCerts();
|
|
66
|
+
|
|
67
|
+
void SetX509StoreFlag(unsigned long flags); // NOLINT(runtime/int)
|
|
68
|
+
X509_STORE* GetCertStoreOwnedByThisSecureContext();
|
|
69
|
+
|
|
53
70
|
// TODO(joyeecheung): track the memory used by OpenSSL types
|
|
54
71
|
SET_NO_MEMORY_INFO()
|
|
55
72
|
SET_MEMORY_INFO_NAME(SecureContext)
|
|
@@ -76,6 +93,8 @@ class SecureContext final : public BaseObject {
|
|
|
76
93
|
#endif // !OPENSSL_NO_ENGINE
|
|
77
94
|
static void SetCert(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
78
95
|
static void AddCACert(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
96
|
+
static void SetAllowPartialTrustChain(
|
|
97
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
79
98
|
static void AddCRL(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
80
99
|
static void AddRootCerts(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
81
100
|
static void SetCipherSuites(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -100,8 +119,6 @@ class SecureContext final : public BaseObject {
|
|
|
100
119
|
#endif // !OPENSSL_NO_ENGINE
|
|
101
120
|
static void GetTicketKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
102
121
|
static void SetTicketKeys(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
103
|
-
static void SetFreeListLength(
|
|
104
|
-
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
105
122
|
static void EnableTicketKeyCallback(
|
|
106
123
|
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
107
124
|
static void CtxGetter(const v8::FunctionCallbackInfo<v8::Value>& info);
|
|
@@ -130,9 +147,11 @@ class SecureContext final : public BaseObject {
|
|
|
130
147
|
SSLCtxPointer ctx_;
|
|
131
148
|
X509Pointer cert_;
|
|
132
149
|
X509Pointer issuer_;
|
|
150
|
+
// Non-owning cache for SSL_CTX_get_cert_store(ctx_.get())
|
|
151
|
+
X509_STORE* own_cert_store_cache_ = nullptr;
|
|
133
152
|
#ifndef OPENSSL_NO_ENGINE
|
|
134
153
|
bool client_cert_engine_provided_ = false;
|
|
135
|
-
EnginePointer private_key_engine_;
|
|
154
|
+
ncrypto::EnginePointer private_key_engine_;
|
|
136
155
|
#endif // !OPENSSL_NO_ENGINE
|
|
137
156
|
|
|
138
157
|
unsigned char ticket_key_name_[16];
|
|
@@ -140,6 +159,11 @@ class SecureContext final : public BaseObject {
|
|
|
140
159
|
unsigned char ticket_key_hmac_[16];
|
|
141
160
|
};
|
|
142
161
|
|
|
162
|
+
int SSL_CTX_use_certificate_chain(SSL_CTX* ctx,
|
|
163
|
+
BIOPointer&& in,
|
|
164
|
+
X509Pointer* cert,
|
|
165
|
+
X509Pointer* issuer);
|
|
166
|
+
|
|
143
167
|
} // namespace crypto
|
|
144
168
|
} // namespace node
|
|
145
169
|
|