@encharm/cws 4.4.1 → 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_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 +8 -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/{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/node_trace_buffer.h +0 -83
- package/src/headers/14/tracing/node_trace_writer.h +0 -75
- package/src/headers/14/tracing/trace_event.h +0 -720
- 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/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 → 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
|
@@ -86,13 +86,22 @@ template <typename NativeT, typename V8T>
|
|
|
86
86
|
void FillStatsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
87
87
|
const uv_stat_t* s,
|
|
88
88
|
const size_t offset) {
|
|
89
|
-
#define SET_FIELD_WITH_STAT(stat_offset, stat)
|
|
90
|
-
fields->SetValue(offset + static_cast<size_t>(FsStatsOffset::stat_offset),
|
|
89
|
+
#define SET_FIELD_WITH_STAT(stat_offset, stat) \
|
|
90
|
+
fields->SetValue(offset + static_cast<size_t>(FsStatsOffset::stat_offset), \
|
|
91
91
|
static_cast<NativeT>(stat))
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
// On win32, time is stored in uint64_t and starts from 1601-01-01.
|
|
94
|
+
// libuv calculates tv_sec and tv_nsec from it and converts to signed long,
|
|
95
|
+
// which causes Y2038 overflow. On the other platforms it is safe to treat
|
|
96
|
+
// negative values as pre-epoch time.
|
|
97
|
+
#ifdef _WIN32
|
|
98
|
+
#define SET_FIELD_WITH_TIME_STAT(stat_offset, stat) \
|
|
99
|
+
/* NOLINTNEXTLINE(runtime/int) */ \
|
|
95
100
|
SET_FIELD_WITH_STAT(stat_offset, static_cast<unsigned long>(stat))
|
|
101
|
+
#else
|
|
102
|
+
#define SET_FIELD_WITH_TIME_STAT(stat_offset, stat) \
|
|
103
|
+
SET_FIELD_WITH_STAT(stat_offset, static_cast<double>(stat))
|
|
104
|
+
#endif // _WIN32
|
|
96
105
|
|
|
97
106
|
SET_FIELD_WITH_STAT(kDev, s->st_dev);
|
|
98
107
|
SET_FIELD_WITH_STAT(kMode, s->st_mode);
|
|
@@ -135,6 +144,38 @@ v8::Local<v8::Value> FillGlobalStatsArray(BindingData* binding_data,
|
|
|
135
144
|
}
|
|
136
145
|
}
|
|
137
146
|
|
|
147
|
+
template <typename NativeT, typename V8T>
|
|
148
|
+
void FillStatFsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
149
|
+
const uv_statfs_t* s) {
|
|
150
|
+
#define SET_FIELD(field, stat) \
|
|
151
|
+
fields->SetValue(static_cast<size_t>(FsStatFsOffset::field), \
|
|
152
|
+
static_cast<NativeT>(stat))
|
|
153
|
+
|
|
154
|
+
SET_FIELD(kType, s->f_type);
|
|
155
|
+
SET_FIELD(kBSize, s->f_bsize);
|
|
156
|
+
SET_FIELD(kBlocks, s->f_blocks);
|
|
157
|
+
SET_FIELD(kBFree, s->f_bfree);
|
|
158
|
+
SET_FIELD(kBAvail, s->f_bavail);
|
|
159
|
+
SET_FIELD(kFiles, s->f_files);
|
|
160
|
+
SET_FIELD(kFFree, s->f_ffree);
|
|
161
|
+
|
|
162
|
+
#undef SET_FIELD
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
v8::Local<v8::Value> FillGlobalStatFsArray(BindingData* binding_data,
|
|
166
|
+
const bool use_bigint,
|
|
167
|
+
const uv_statfs_t* s) {
|
|
168
|
+
if (use_bigint) {
|
|
169
|
+
auto* const arr = &binding_data->statfs_field_bigint_array;
|
|
170
|
+
FillStatFsArray(arr, s);
|
|
171
|
+
return arr->GetJSArray();
|
|
172
|
+
} else {
|
|
173
|
+
auto* const arr = &binding_data->statfs_field_array;
|
|
174
|
+
FillStatFsArray(arr, s);
|
|
175
|
+
return arr->GetJSArray();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
138
179
|
template <typename AliasedBufferT>
|
|
139
180
|
FSReqPromise<AliasedBufferT>*
|
|
140
181
|
FSReqPromise<AliasedBufferT>::New(BindingData* binding_data,
|
|
@@ -156,31 +197,39 @@ FSReqPromise<AliasedBufferT>::New(BindingData* binding_data,
|
|
|
156
197
|
|
|
157
198
|
template <typename AliasedBufferT>
|
|
158
199
|
FSReqPromise<AliasedBufferT>::~FSReqPromise() {
|
|
159
|
-
// Validate that the promise was explicitly resolved or rejected
|
|
160
|
-
|
|
200
|
+
// Validate that the promise was explicitly resolved or rejected but only if
|
|
201
|
+
// the Isolate is not terminating because in this case the promise might have
|
|
202
|
+
// not finished.
|
|
203
|
+
CHECK_IMPLIES(!finished_, !env()->can_call_into_js());
|
|
161
204
|
}
|
|
162
205
|
|
|
163
206
|
template <typename AliasedBufferT>
|
|
164
|
-
FSReqPromise<AliasedBufferT>::FSReqPromise(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
207
|
+
FSReqPromise<AliasedBufferT>::FSReqPromise(BindingData* binding_data,
|
|
208
|
+
v8::Local<v8::Object> obj,
|
|
209
|
+
bool use_bigint)
|
|
210
|
+
: FSReqBase(
|
|
211
|
+
binding_data, obj, AsyncWrap::PROVIDER_FSREQPROMISE, use_bigint),
|
|
212
|
+
stats_field_array_(
|
|
213
|
+
env()->isolate(),
|
|
214
|
+
static_cast<size_t>(FsStatsOffset::kFsStatsFieldsNumber)),
|
|
215
|
+
statfs_field_array_(
|
|
216
|
+
env()->isolate(),
|
|
217
|
+
static_cast<size_t>(FsStatFsOffset::kFsStatFsFieldsNumber)) {}
|
|
175
218
|
|
|
176
219
|
template <typename AliasedBufferT>
|
|
177
220
|
void FSReqPromise<AliasedBufferT>::Reject(v8::Local<v8::Value> reject) {
|
|
178
221
|
finished_ = true;
|
|
179
222
|
v8::HandleScope scope(env()->isolate());
|
|
180
223
|
InternalCallbackScope callback_scope(this);
|
|
181
|
-
v8::Local<v8::Value> value
|
|
182
|
-
|
|
183
|
-
|
|
224
|
+
v8::Local<v8::Value> value;
|
|
225
|
+
if (!object()
|
|
226
|
+
->Get(env()->context(), env()->promise_string())
|
|
227
|
+
.ToLocal(&value)) {
|
|
228
|
+
// If we hit this, getting the value from the object failed and
|
|
229
|
+
// an error was likely scheduled. We could try to reject the promise
|
|
230
|
+
// but let's just allow the error to propagate.
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
184
233
|
v8::Local<v8::Promise::Resolver> resolver = value.As<v8::Promise::Resolver>();
|
|
185
234
|
USE(resolver->Reject(env()->context(), reject).FromJust());
|
|
186
235
|
}
|
|
@@ -190,9 +239,13 @@ void FSReqPromise<AliasedBufferT>::Resolve(v8::Local<v8::Value> value) {
|
|
|
190
239
|
finished_ = true;
|
|
191
240
|
v8::HandleScope scope(env()->isolate());
|
|
192
241
|
InternalCallbackScope callback_scope(this);
|
|
193
|
-
v8::Local<v8::Value> val
|
|
194
|
-
|
|
195
|
-
|
|
242
|
+
v8::Local<v8::Value> val;
|
|
243
|
+
if (!object()->Get(env()->context(), env()->promise_string()).ToLocal(&val)) {
|
|
244
|
+
// If we hit this, getting the value from the object failed and
|
|
245
|
+
// an error was likely scheduled. We could try to reject the promise
|
|
246
|
+
// but let's just allow the error to propagate.
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
196
249
|
v8::Local<v8::Promise::Resolver> resolver = val.As<v8::Promise::Resolver>();
|
|
197
250
|
USE(resolver->Resolve(env()->context(), value).FromJust());
|
|
198
251
|
}
|
|
@@ -203,12 +256,22 @@ void FSReqPromise<AliasedBufferT>::ResolveStat(const uv_stat_t* stat) {
|
|
|
203
256
|
Resolve(stats_field_array_.GetJSArray());
|
|
204
257
|
}
|
|
205
258
|
|
|
259
|
+
template <typename AliasedBufferT>
|
|
260
|
+
void FSReqPromise<AliasedBufferT>::ResolveStatFs(const uv_statfs_t* stat) {
|
|
261
|
+
FillStatFsArray(&statfs_field_array_, stat);
|
|
262
|
+
Resolve(statfs_field_array_.GetJSArray());
|
|
263
|
+
}
|
|
264
|
+
|
|
206
265
|
template <typename AliasedBufferT>
|
|
207
266
|
void FSReqPromise<AliasedBufferT>::SetReturnValue(
|
|
208
267
|
const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
209
|
-
v8::Local<v8::Value> val
|
|
210
|
-
|
|
211
|
-
|
|
268
|
+
v8::Local<v8::Value> val;
|
|
269
|
+
if (!object()->Get(env()->context(), env()->promise_string()).ToLocal(&val)) {
|
|
270
|
+
// If we hit this, getting the value from the object failed and
|
|
271
|
+
// an error was likely scheduled. We could try to reject the promise
|
|
272
|
+
// but let's just allow the error to propagate.
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
212
275
|
v8::Local<v8::Promise::Resolver> resolver = val.As<v8::Promise::Resolver>();
|
|
213
276
|
args.GetReturnValue().Set(resolver->GetPromise());
|
|
214
277
|
}
|
|
@@ -217,6 +280,7 @@ template <typename AliasedBufferT>
|
|
|
217
280
|
void FSReqPromise<AliasedBufferT>::MemoryInfo(MemoryTracker* tracker) const {
|
|
218
281
|
FSReqBase::MemoryInfo(tracker);
|
|
219
282
|
tracker->TrackField("stats_field_array", stats_field_array_);
|
|
283
|
+
tracker->TrackField("statfs_field_array", statfs_field_array_);
|
|
220
284
|
}
|
|
221
285
|
|
|
222
286
|
FSReqBase* GetReqWrap(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
@@ -227,11 +291,12 @@ FSReqBase* GetReqWrap(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
|
227
291
|
return Unwrap<FSReqBase>(value.As<v8::Object>());
|
|
228
292
|
}
|
|
229
293
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
294
|
+
Realm* realm = Realm::GetCurrent(args);
|
|
295
|
+
BindingData* binding_data = realm->GetBindingData<BindingData>();
|
|
296
|
+
|
|
297
|
+
if (value->StrictEquals(realm->isolate_data()->fs_use_promises_symbol())) {
|
|
233
298
|
if (use_bigint) {
|
|
234
|
-
return FSReqPromise<
|
|
299
|
+
return FSReqPromise<AliasedBigInt64Array>::New(binding_data, use_bigint);
|
|
235
300
|
} else {
|
|
236
301
|
return FSReqPromise<AliasedFloat64Array>::New(binding_data, use_bigint);
|
|
237
302
|
}
|
|
@@ -298,6 +363,38 @@ int SyncCall(Environment* env, v8::Local<v8::Value> ctx,
|
|
|
298
363
|
return err;
|
|
299
364
|
}
|
|
300
365
|
|
|
366
|
+
// Similar to SyncCall but throws immediately if there is an error.
|
|
367
|
+
template <typename Predicate, typename Func, typename... Args>
|
|
368
|
+
int SyncCallAndThrowIf(Predicate should_throw,
|
|
369
|
+
Environment* env,
|
|
370
|
+
FSReqWrapSync* req_wrap,
|
|
371
|
+
Func fn,
|
|
372
|
+
Args... args) {
|
|
373
|
+
env->PrintSyncTrace();
|
|
374
|
+
int result = fn(nullptr, &(req_wrap->req), args..., nullptr);
|
|
375
|
+
if (should_throw(result)) {
|
|
376
|
+
env->ThrowUVException(result,
|
|
377
|
+
req_wrap->syscall_p,
|
|
378
|
+
nullptr,
|
|
379
|
+
req_wrap->path_p,
|
|
380
|
+
req_wrap->dest_p);
|
|
381
|
+
}
|
|
382
|
+
return result;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
constexpr bool is_uv_error(int result) {
|
|
386
|
+
return result < 0;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// Similar to SyncCall but throws immediately if there is an error.
|
|
390
|
+
template <typename Func, typename... Args>
|
|
391
|
+
int SyncCallAndThrowOnError(Environment* env,
|
|
392
|
+
FSReqWrapSync* req_wrap,
|
|
393
|
+
Func fn,
|
|
394
|
+
Args... args) {
|
|
395
|
+
return SyncCallAndThrowIf(is_uv_error, env, req_wrap, fn, args...);
|
|
396
|
+
}
|
|
397
|
+
|
|
301
398
|
} // namespace fs
|
|
302
399
|
} // namespace node
|
|
303
400
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
+
#include <optional>
|
|
6
7
|
#include "aliased_buffer.h"
|
|
7
8
|
#include "node_messaging.h"
|
|
8
9
|
#include "node_snapshotable.h"
|
|
@@ -13,24 +14,94 @@ namespace fs {
|
|
|
13
14
|
|
|
14
15
|
class FileHandleReadWrap;
|
|
15
16
|
|
|
17
|
+
enum class FsStatsOffset {
|
|
18
|
+
kDev = 0,
|
|
19
|
+
kMode,
|
|
20
|
+
kNlink,
|
|
21
|
+
kUid,
|
|
22
|
+
kGid,
|
|
23
|
+
kRdev,
|
|
24
|
+
kBlkSize,
|
|
25
|
+
kIno,
|
|
26
|
+
kSize,
|
|
27
|
+
kBlocks,
|
|
28
|
+
kATimeSec,
|
|
29
|
+
kATimeNsec,
|
|
30
|
+
kMTimeSec,
|
|
31
|
+
kMTimeNsec,
|
|
32
|
+
kCTimeSec,
|
|
33
|
+
kCTimeNsec,
|
|
34
|
+
kBirthTimeSec,
|
|
35
|
+
kBirthTimeNsec,
|
|
36
|
+
kFsStatsFieldsNumber
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Stat fields buffers contain twice the number of entries in an uv_stat_t
|
|
40
|
+
// because `fs.StatWatcher` needs room to store 2 `fs.Stats` instances.
|
|
41
|
+
constexpr size_t kFsStatsBufferLength =
|
|
42
|
+
static_cast<size_t>(FsStatsOffset::kFsStatsFieldsNumber) * 2;
|
|
43
|
+
|
|
44
|
+
enum class FsStatFsOffset {
|
|
45
|
+
kType = 0,
|
|
46
|
+
kBSize,
|
|
47
|
+
kBlocks,
|
|
48
|
+
kBFree,
|
|
49
|
+
kBAvail,
|
|
50
|
+
kFiles,
|
|
51
|
+
kFFree,
|
|
52
|
+
kFsStatFsFieldsNumber
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
constexpr size_t kFsStatFsBufferLength =
|
|
56
|
+
static_cast<size_t>(FsStatFsOffset::kFsStatFsFieldsNumber);
|
|
57
|
+
|
|
16
58
|
class BindingData : public SnapshotableObject {
|
|
17
59
|
public:
|
|
18
|
-
|
|
60
|
+
struct InternalFieldInfo : public node::InternalFieldInfoBase {
|
|
61
|
+
AliasedBufferIndex stats_field_array;
|
|
62
|
+
AliasedBufferIndex stats_field_bigint_array;
|
|
63
|
+
AliasedBufferIndex statfs_field_array;
|
|
64
|
+
AliasedBufferIndex statfs_field_bigint_array;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
enum class FilePathIsFileReturnType {
|
|
68
|
+
kIsFile = 0,
|
|
69
|
+
kIsNotFile,
|
|
70
|
+
kThrowInsufficientPermissions
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
explicit BindingData(Realm* realm,
|
|
74
|
+
v8::Local<v8::Object> wrap,
|
|
75
|
+
InternalFieldInfo* info = nullptr);
|
|
19
76
|
|
|
20
77
|
AliasedFloat64Array stats_field_array;
|
|
21
|
-
|
|
78
|
+
AliasedBigInt64Array stats_field_bigint_array;
|
|
79
|
+
|
|
80
|
+
AliasedFloat64Array statfs_field_array;
|
|
81
|
+
AliasedBigInt64Array statfs_field_bigint_array;
|
|
22
82
|
|
|
23
83
|
std::vector<BaseObjectPtr<FileHandleReadWrap>>
|
|
24
84
|
file_handle_read_wrap_freelist;
|
|
25
85
|
|
|
26
86
|
SERIALIZABLE_OBJECT_METHODS()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
87
|
+
SET_BINDING_ID(fs_binding_data)
|
|
88
|
+
|
|
89
|
+
static void LegacyMainResolve(
|
|
90
|
+
const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
91
|
+
|
|
92
|
+
static void CreatePerIsolateProperties(IsolateData* isolate_data,
|
|
93
|
+
v8::Local<v8::ObjectTemplate> ctor);
|
|
94
|
+
static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
|
|
30
95
|
|
|
31
96
|
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
32
97
|
SET_SELF_SIZE(BindingData)
|
|
33
98
|
SET_MEMORY_INFO_NAME(BindingData)
|
|
99
|
+
|
|
100
|
+
private:
|
|
101
|
+
InternalFieldInfo* internal_field_info_ = nullptr;
|
|
102
|
+
|
|
103
|
+
static FilePathIsFileReturnType FilePathIsFile(Environment* env,
|
|
104
|
+
const std::string& file_path);
|
|
34
105
|
};
|
|
35
106
|
|
|
36
107
|
// structure used to store state during a complex operation, e.g., mkdirp.
|
|
@@ -81,6 +152,7 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
81
152
|
virtual void Reject(v8::Local<v8::Value> reject) = 0;
|
|
82
153
|
virtual void Resolve(v8::Local<v8::Value> value) = 0;
|
|
83
154
|
virtual void ResolveStat(const uv_stat_t* stat) = 0;
|
|
155
|
+
virtual void ResolveStatFs(const uv_statfs_t* stat) = 0;
|
|
84
156
|
virtual void SetReturnValue(
|
|
85
157
|
const v8::FunctionCallbackInfo<v8::Value>& args) = 0;
|
|
86
158
|
|
|
@@ -89,8 +161,10 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
89
161
|
enum encoding encoding() const { return encoding_; }
|
|
90
162
|
bool use_bigint() const { return use_bigint_; }
|
|
91
163
|
bool is_plain_open() const { return is_plain_open_; }
|
|
164
|
+
bool with_file_types() const { return with_file_types_; }
|
|
92
165
|
|
|
93
166
|
void set_is_plain_open(bool value) { is_plain_open_ = value; }
|
|
167
|
+
void set_with_file_types(bool value) { with_file_types_ = value; }
|
|
94
168
|
|
|
95
169
|
FSContinuationData* continuation_data() const {
|
|
96
170
|
return continuation_data_.get();
|
|
@@ -116,6 +190,7 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
116
190
|
bool has_data_ = false;
|
|
117
191
|
bool use_bigint_ = false;
|
|
118
192
|
bool is_plain_open_ = false;
|
|
193
|
+
bool with_file_types_ = false;
|
|
119
194
|
const char* syscall_ = nullptr;
|
|
120
195
|
|
|
121
196
|
BaseObjectPtr<BindingData> binding_data_;
|
|
@@ -134,6 +209,7 @@ class FSReqCallback final : public FSReqBase {
|
|
|
134
209
|
void Reject(v8::Local<v8::Value> reject) override;
|
|
135
210
|
void Resolve(v8::Local<v8::Value> value) override;
|
|
136
211
|
void ResolveStat(const uv_stat_t* stat) override;
|
|
212
|
+
void ResolveStatFs(const uv_statfs_t* stat) override;
|
|
137
213
|
void SetReturnValue(const v8::FunctionCallbackInfo<v8::Value>& args) override;
|
|
138
214
|
|
|
139
215
|
SET_MEMORY_INFO_NAME(FSReqCallback)
|
|
@@ -153,6 +229,14 @@ inline v8::Local<v8::Value> FillGlobalStatsArray(BindingData* binding_data,
|
|
|
153
229
|
const uv_stat_t* s,
|
|
154
230
|
const bool second = false);
|
|
155
231
|
|
|
232
|
+
template <typename NativeT, typename V8T>
|
|
233
|
+
void FillStatFsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
234
|
+
const uv_statfs_t* s);
|
|
235
|
+
|
|
236
|
+
inline v8::Local<v8::Value> FillGlobalStatFsArray(BindingData* binding_data,
|
|
237
|
+
const bool use_bigint,
|
|
238
|
+
const uv_statfs_t* s);
|
|
239
|
+
|
|
156
240
|
template <typename AliasedBufferT>
|
|
157
241
|
class FSReqPromise final : public FSReqBase {
|
|
158
242
|
public:
|
|
@@ -163,6 +247,7 @@ class FSReqPromise final : public FSReqBase {
|
|
|
163
247
|
inline void Reject(v8::Local<v8::Value> reject) override;
|
|
164
248
|
inline void Resolve(v8::Local<v8::Value> value) override;
|
|
165
249
|
inline void ResolveStat(const uv_stat_t* stat) override;
|
|
250
|
+
inline void ResolveStatFs(const uv_statfs_t* stat) override;
|
|
166
251
|
inline void SetReturnValue(
|
|
167
252
|
const v8::FunctionCallbackInfo<v8::Value>& args) override;
|
|
168
253
|
inline void MemoryInfo(MemoryTracker* tracker) const override;
|
|
@@ -182,6 +267,7 @@ class FSReqPromise final : public FSReqBase {
|
|
|
182
267
|
|
|
183
268
|
bool finished_ = false;
|
|
184
269
|
AliasedBufferT stats_field_array_;
|
|
270
|
+
AliasedBufferT statfs_field_array_;
|
|
185
271
|
};
|
|
186
272
|
|
|
187
273
|
class FSReqAfterScope final {
|
|
@@ -242,13 +328,17 @@ class FileHandle final : public AsyncWrap, public StreamBase {
|
|
|
242
328
|
|
|
243
329
|
static FileHandle* New(BindingData* binding_data,
|
|
244
330
|
int fd,
|
|
245
|
-
v8::Local<v8::Object> obj = v8::Local<v8::Object>()
|
|
331
|
+
v8::Local<v8::Object> obj = v8::Local<v8::Object>(),
|
|
332
|
+
std::optional<int64_t> maybeOffset = std::nullopt,
|
|
333
|
+
std::optional<int64_t> maybeLength = std::nullopt);
|
|
246
334
|
~FileHandle() override;
|
|
247
335
|
|
|
248
336
|
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
249
337
|
|
|
250
338
|
int GetFD() override { return fd_; }
|
|
251
339
|
|
|
340
|
+
int Release();
|
|
341
|
+
|
|
252
342
|
// Will asynchronously close the FD and return a Promise that will
|
|
253
343
|
// be resolved once closing is complete.
|
|
254
344
|
static void Close(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
@@ -283,7 +373,7 @@ class FileHandle final : public AsyncWrap, public StreamBase {
|
|
|
283
373
|
FileHandle(const FileHandle&&) = delete;
|
|
284
374
|
FileHandle& operator=(const FileHandle&&) = delete;
|
|
285
375
|
|
|
286
|
-
TransferMode GetTransferMode() const override;
|
|
376
|
+
BaseObject::TransferMode GetTransferMode() const override;
|
|
287
377
|
std::unique_ptr<worker::TransferData> TransferForMessaging() override;
|
|
288
378
|
|
|
289
379
|
private:
|
|
@@ -367,10 +457,22 @@ int MKDirpSync(uv_loop_t* loop,
|
|
|
367
457
|
|
|
368
458
|
class FSReqWrapSync {
|
|
369
459
|
public:
|
|
370
|
-
FSReqWrapSync(
|
|
460
|
+
FSReqWrapSync(const char* syscall = nullptr,
|
|
461
|
+
const char* path = nullptr,
|
|
462
|
+
const char* dest = nullptr)
|
|
463
|
+
: syscall_p(syscall), path_p(path), dest_p(dest) {}
|
|
371
464
|
~FSReqWrapSync() { uv_fs_req_cleanup(&req); }
|
|
465
|
+
|
|
372
466
|
uv_fs_t req;
|
|
467
|
+
const char* syscall_p;
|
|
468
|
+
const char* path_p;
|
|
469
|
+
const char* dest_p;
|
|
373
470
|
|
|
471
|
+
FSReqWrapSync(const FSReqWrapSync&) = delete;
|
|
472
|
+
FSReqWrapSync& operator=(const FSReqWrapSync&) = delete;
|
|
473
|
+
|
|
474
|
+
// TODO(joyeecheung): move these out of FSReqWrapSync and into a special
|
|
475
|
+
// class for mkdirp
|
|
374
476
|
FSContinuationData* continuation_data() const {
|
|
375
477
|
return continuation_data_.get();
|
|
376
478
|
}
|
|
@@ -378,9 +480,6 @@ class FSReqWrapSync {
|
|
|
378
480
|
continuation_data_ = std::move(data);
|
|
379
481
|
}
|
|
380
482
|
|
|
381
|
-
FSReqWrapSync(const FSReqWrapSync&) = delete;
|
|
382
|
-
FSReqWrapSync& operator=(const FSReqWrapSync&) = delete;
|
|
383
|
-
|
|
384
483
|
private:
|
|
385
484
|
std::unique_ptr<FSContinuationData> continuation_data_;
|
|
386
485
|
};
|
|
@@ -417,6 +516,18 @@ inline int SyncCall(Environment* env, v8::Local<v8::Value> ctx,
|
|
|
417
516
|
FSReqWrapSync* req_wrap, const char* syscall,
|
|
418
517
|
Func fn, Args... args);
|
|
419
518
|
|
|
519
|
+
// Similar to SyncCall but throws immediately if there is an error.
|
|
520
|
+
template <typename Predicate, typename Func, typename... Args>
|
|
521
|
+
int SyncCallAndThrowIf(Predicate should_throw,
|
|
522
|
+
Environment* env,
|
|
523
|
+
FSReqWrapSync* req_wrap,
|
|
524
|
+
Func fn,
|
|
525
|
+
Args... args);
|
|
526
|
+
template <typename Func, typename... Args>
|
|
527
|
+
int SyncCallAndThrowOnError(Environment* env,
|
|
528
|
+
FSReqWrapSync* req_wrap,
|
|
529
|
+
Func fn,
|
|
530
|
+
Args... args);
|
|
420
531
|
} // namespace fs
|
|
421
532
|
|
|
422
533
|
} // namespace node
|
|
@@ -3,8 +3,9 @@
|
|
|
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"
|
|
@@ -626,6 +627,15 @@ class Http2Session : public AsyncWrap,
|
|
|
626
627
|
flags_ |= kSessionStateClosed;
|
|
627
628
|
}
|
|
628
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
|
+
|
|
629
639
|
#define IS_FLAG(name, flag) \
|
|
630
640
|
bool is_##name() const { return flags_ & flag; } \
|
|
631
641
|
void set_##name(bool on = true) { \
|
|
@@ -714,7 +724,7 @@ class Http2Session : public AsyncWrap,
|
|
|
714
724
|
static void AltSvc(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
715
725
|
static void Origin(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
716
726
|
|
|
717
|
-
template <get_setting fn>
|
|
727
|
+
template <get_setting fn, bool local>
|
|
718
728
|
static void RefreshSettings(const v8::FunctionCallbackInfo<v8::Value>& args);
|
|
719
729
|
|
|
720
730
|
uv_loop_t* event_loop() const {
|
|
@@ -738,6 +748,9 @@ class Http2Session : public AsyncWrap,
|
|
|
738
748
|
current_session_memory_ -= amount;
|
|
739
749
|
}
|
|
740
750
|
|
|
751
|
+
void UpdateLocalCustomSettings(size_t count_,
|
|
752
|
+
nghttp2_settings_entry* entries_);
|
|
753
|
+
|
|
741
754
|
// Tell our custom memory allocator that this rcbuf is independent of
|
|
742
755
|
// this session now, and may outlive it.
|
|
743
756
|
void StopTrackingRcbuf(nghttp2_rcbuf* buf);
|
|
@@ -775,6 +788,8 @@ class Http2Session : public AsyncWrap,
|
|
|
775
788
|
private:
|
|
776
789
|
void EmitStatistics();
|
|
777
790
|
|
|
791
|
+
void FetchAllowedRemoteCustomSettings();
|
|
792
|
+
|
|
778
793
|
// Frame Padding Strategies
|
|
779
794
|
ssize_t OnDWordAlignedPadding(size_t frameLength,
|
|
780
795
|
size_t maxPayloadLen);
|
|
@@ -842,11 +857,11 @@ class Http2Session : public AsyncWrap,
|
|
|
842
857
|
const nghttp2_frame* frame,
|
|
843
858
|
size_t maxPayloadLen,
|
|
844
859
|
void* user_data);
|
|
845
|
-
static int OnNghttpError(
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
860
|
+
static int OnNghttpError(nghttp2_session* session,
|
|
861
|
+
int lib_error_code,
|
|
862
|
+
const char* message,
|
|
863
|
+
size_t len,
|
|
864
|
+
void* user_data);
|
|
850
865
|
static int OnSendData(
|
|
851
866
|
nghttp2_session* session,
|
|
852
867
|
nghttp2_frame* frame,
|
|
@@ -914,6 +929,9 @@ class Http2Session : public AsyncWrap,
|
|
|
914
929
|
size_t max_outstanding_settings_ = kDefaultMaxSettings;
|
|
915
930
|
std::queue<BaseObjectPtr<Http2Settings>> outstanding_settings_;
|
|
916
931
|
|
|
932
|
+
struct custom_settings_state local_custom_settings_;
|
|
933
|
+
struct custom_settings_state remote_custom_settings_;
|
|
934
|
+
|
|
917
935
|
std::vector<NgHttp2StreamWrite> outgoing_buffers_;
|
|
918
936
|
std::vector<uint8_t> outgoing_storage_;
|
|
919
937
|
size_t outgoing_length_ = 0;
|
|
@@ -1017,8 +1035,7 @@ class Http2Settings : public AsyncWrap {
|
|
|
1017
1035
|
static void RefreshDefaults(Http2State* http2_state);
|
|
1018
1036
|
|
|
1019
1037
|
// Update the local or remote settings for the given session
|
|
1020
|
-
static void Update(Http2Session* session,
|
|
1021
|
-
get_setting fn);
|
|
1038
|
+
static void Update(Http2Session* session, get_setting fn, bool local);
|
|
1022
1039
|
|
|
1023
1040
|
private:
|
|
1024
1041
|
static size_t Init(
|
|
@@ -1034,7 +1051,7 @@ class Http2Settings : public AsyncWrap {
|
|
|
1034
1051
|
v8::Global<v8::Function> callback_;
|
|
1035
1052
|
uint64_t startTime_;
|
|
1036
1053
|
size_t count_ = 0;
|
|
1037
|
-
nghttp2_settings_entry entries_[IDX_SETTINGS_COUNT];
|
|
1054
|
+
nghttp2_settings_entry entries_[IDX_SETTINGS_COUNT + MAX_ADDITIONAL_SETTINGS];
|
|
1038
1055
|
};
|
|
1039
1056
|
|
|
1040
1057
|
class Origins {
|
|
@@ -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,8 @@ 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,
|
|
58
63
|
IDX_OPTIONS_FLAGS
|
|
59
64
|
};
|
|
60
65
|
|
|
@@ -83,37 +88,36 @@ namespace http2 {
|
|
|
83
88
|
|
|
84
89
|
class Http2State : public BaseObject {
|
|
85
90
|
public:
|
|
86
|
-
Http2State(
|
|
87
|
-
: BaseObject(
|
|
88
|
-
root_buffer(
|
|
91
|
+
Http2State(Realm* realm, v8::Local<v8::Object> obj)
|
|
92
|
+
: BaseObject(realm, obj),
|
|
93
|
+
root_buffer(realm->isolate(), sizeof(http2_state_internal)),
|
|
89
94
|
session_state_buffer(
|
|
90
|
-
|
|
95
|
+
realm->isolate(),
|
|
91
96
|
offsetof(http2_state_internal, session_state_buffer),
|
|
92
97
|
IDX_SESSION_STATE_COUNT,
|
|
93
98
|
root_buffer),
|
|
94
|
-
stream_state_buffer(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
IDX_STREAM_STATS_COUNT,
|
|
103
|
-
root_buffer),
|
|
99
|
+
stream_state_buffer(realm->isolate(),
|
|
100
|
+
offsetof(http2_state_internal, stream_state_buffer),
|
|
101
|
+
IDX_STREAM_STATE_COUNT,
|
|
102
|
+
root_buffer),
|
|
103
|
+
stream_stats_buffer(realm->isolate(),
|
|
104
|
+
offsetof(http2_state_internal, stream_stats_buffer),
|
|
105
|
+
IDX_STREAM_STATS_COUNT,
|
|
106
|
+
root_buffer),
|
|
104
107
|
session_stats_buffer(
|
|
105
|
-
|
|
108
|
+
realm->isolate(),
|
|
106
109
|
offsetof(http2_state_internal, session_stats_buffer),
|
|
107
110
|
IDX_SESSION_STATS_COUNT,
|
|
108
111
|
root_buffer),
|
|
109
|
-
options_buffer(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
settings_buffer(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
options_buffer(realm->isolate(),
|
|
113
|
+
offsetof(http2_state_internal, options_buffer),
|
|
114
|
+
IDX_OPTIONS_FLAGS + 1,
|
|
115
|
+
root_buffer),
|
|
116
|
+
settings_buffer(
|
|
117
|
+
realm->isolate(),
|
|
118
|
+
offsetof(http2_state_internal, settings_buffer),
|
|
119
|
+
IDX_SETTINGS_COUNT + 1 + 1 + 2 * MAX_ADDITIONAL_SETTINGS,
|
|
120
|
+
root_buffer) {}
|
|
117
121
|
|
|
118
122
|
AliasedUint8Array root_buffer;
|
|
119
123
|
AliasedFloat64Array session_state_buffer;
|
|
@@ -127,7 +131,7 @@ class Http2State : public BaseObject {
|
|
|
127
131
|
SET_SELF_SIZE(Http2State)
|
|
128
132
|
SET_MEMORY_INFO_NAME(Http2State)
|
|
129
133
|
|
|
130
|
-
|
|
134
|
+
SET_BINDING_ID(http2_binding_data)
|
|
131
135
|
|
|
132
136
|
private:
|
|
133
137
|
struct http2_state_internal {
|
|
@@ -137,7 +141,12 @@ class Http2State : public BaseObject {
|
|
|
137
141
|
double stream_stats_buffer[IDX_STREAM_STATS_COUNT];
|
|
138
142
|
double session_stats_buffer[IDX_SESSION_STATS_COUNT];
|
|
139
143
|
uint32_t options_buffer[IDX_OPTIONS_FLAGS + 1];
|
|
140
|
-
|
|
144
|
+
// first + 1: number of actual nghttp2 supported settings
|
|
145
|
+
// second + 1: number of additional settings not supported by nghttp2
|
|
146
|
+
// 2 * MAX_ADDITIONAL_SETTINGS: settings id and value for each
|
|
147
|
+
// additional setting
|
|
148
|
+
uint32_t settings_buffer[IDX_SETTINGS_COUNT + 1 + 1 +
|
|
149
|
+
2 * MAX_ADDITIONAL_SETTINGS];
|
|
141
150
|
};
|
|
142
151
|
};
|
|
143
152
|
|