@encharm/cws 4.1.0 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bindings/cws_linux_108.node +0 -0
- package/dist/bindings/cws_linux_64.node +0 -0
- package/dist/bindings/cws_linux_72.node +0 -0
- package/dist/bindings/cws_linux_79.node +0 -0
- package/dist/bindings/cws_linux_83.node +0 -0
- package/dist/bindings/cws_linux_93.node +0 -0
- package/dist/bindings/cws_win32_64.node +0 -0
- package/dist/bindings/cws_win32_72.node +0 -0
- package/dist/bindings/cws_win32_79.node +0 -0
- package/dist/bindings/cws_win32_83.node +0 -0
- package/dist/bindings/cws_win32_93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +24 -2
- package/src/HTTPSocket.cpp +1 -1
- package/src/headers/{13 → 18}/aliased_buffer.h +61 -9
- package/src/headers/18/aliased_struct-inl.h +54 -0
- package/src/headers/18/aliased_struct.h +63 -0
- package/src/headers/{12 → 18}/async_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/async_wrap.h +26 -2
- package/src/headers/{12/base64.h → 18/base64-inl.h} +78 -86
- package/src/headers/18/base64.h +69 -0
- package/src/headers/{12 → 18}/base_object-inl.h +46 -25
- package/src/headers/{12 → 18}/base_object.h +82 -17
- package/src/headers/{12 → 18}/callback_queue-inl.h +9 -9
- package/src/headers/{12 → 18}/callback_queue.h +13 -5
- package/src/headers/18/cares_wrap.h +523 -0
- package/src/headers/{12 → 18}/connect_wrap.h +0 -0
- package/src/headers/{12 → 18}/connection_wrap.h +0 -0
- package/src/headers/18/crypto/crypto_aes.h +89 -0
- package/src/headers/{13/node_crypto_bio.h → 18/crypto/crypto_bio.h} +3 -4
- package/src/headers/18/crypto/crypto_cipher.h +291 -0
- package/src/headers/{13/node_crypto_clienthello-inl.h → 18/crypto/crypto_clienthello-inl.h} +4 -5
- package/src/headers/{13/node_crypto_clienthello.h → 18/crypto/crypto_clienthello.h} +3 -4
- package/src/headers/{12/node_crypto_common.h → 18/crypto/crypto_common.h} +49 -36
- package/src/headers/18/crypto/crypto_context.h +147 -0
- package/src/headers/18/crypto/crypto_dh.h +156 -0
- package/src/headers/18/crypto/crypto_dsa.h +77 -0
- package/src/headers/18/crypto/crypto_ec.h +170 -0
- package/src/headers/{12/node_crypto_groups.h → 18/crypto/crypto_groups.h} +3 -3
- package/src/headers/18/crypto/crypto_hash.h +89 -0
- package/src/headers/18/crypto/crypto_hkdf.h +65 -0
- package/src/headers/18/crypto/crypto_hmac.h +94 -0
- package/src/headers/18/crypto/crypto_keygen.h +305 -0
- package/src/headers/18/crypto/crypto_keys.h +420 -0
- package/src/headers/18/crypto/crypto_pbkdf2.h +76 -0
- package/src/headers/18/crypto/crypto_random.h +130 -0
- package/src/headers/18/crypto/crypto_rsa.h +141 -0
- package/src/headers/18/crypto/crypto_scrypt.h +87 -0
- package/src/headers/18/crypto/crypto_sig.h +168 -0
- package/src/headers/18/crypto/crypto_spkac.h +21 -0
- package/src/headers/18/crypto/crypto_timing.h +20 -0
- package/src/headers/{13/tls_wrap.h → 18/crypto/crypto_tls.h} +137 -66
- package/src/headers/18/crypto/crypto_util.h +791 -0
- package/src/headers/18/crypto/crypto_x509.h +143 -0
- package/src/headers/{12 → 18}/debug_utils-inl.h +0 -0
- package/src/headers/{13 → 18}/debug_utils.h +7 -4
- package/src/headers/{12 → 18}/diagnosticfilename-inl.h +0 -0
- package/src/headers/{12 → 18}/env-inl.h +397 -304
- package/src/headers/{12 → 18}/env.h +397 -172
- package/src/headers/{12 → 18}/handle_wrap.h +7 -3
- package/src/headers/18/histogram-inl.h +107 -0
- package/src/headers/18/histogram.h +239 -0
- package/src/headers/{13 → 18}/inspector_agent.h +4 -7
- package/src/headers/{12 → 18}/inspector_io.h +0 -0
- package/src/headers/{13 → 18}/inspector_profiler.h +17 -5
- package/src/headers/{12 → 18}/inspector_socket.h +0 -0
- package/src/headers/{12 → 18}/inspector_socket_server.h +0 -0
- package/src/headers/18/js_native_api.h +571 -0
- package/src/headers/{13 → 18}/js_native_api_types.h +30 -7
- package/src/headers/{12 → 18}/js_native_api_v8.h +220 -83
- package/src/headers/{12 → 18}/js_native_api_v8_internals.h +6 -5
- package/src/headers/{12 → 18}/js_stream.h +0 -0
- package/src/headers/{12 → 18}/json_utils.h +0 -0
- package/src/headers/{13 → 18}/memory_tracker-inl.h +6 -5
- package/src/headers/{13 → 18}/memory_tracker.h +0 -7
- package/src/headers/{13 → 18}/module_wrap.h +24 -7
- package/src/headers/{13 → 18}/node.h +329 -68
- package/src/headers/18/node_api.h +288 -0
- package/src/headers/18/node_api_internals.h +38 -0
- package/src/headers/{12 → 18}/node_api_types.h +12 -9
- package/src/headers/{12 → 18}/node_binding.h +0 -0
- package/src/headers/18/node_blob.h +191 -0
- package/src/headers/18/node_bob-inl.h +37 -0
- package/src/headers/18/node_bob.h +111 -0
- package/src/headers/{13 → 18}/node_buffer.h +0 -0
- package/src/headers/{13 → 18}/node_constants.h +5 -1
- package/src/headers/{12 → 18}/node_context_data.h +5 -0
- package/src/headers/{12 → 18}/node_contextify.h +37 -2
- package/src/headers/{10/node_win32_perfctr_provider.h → 18/node_crypto.h} +30 -31
- package/src/headers/{12 → 18}/node_dir.h +0 -0
- package/src/headers/{12 → 18}/node_dtrace.h +0 -0
- package/src/headers/{12 → 18}/node_errors.h +90 -24
- package/src/headers/18/node_external_reference.h +145 -0
- package/src/headers/{13 → 18}/node_file-inl.h +38 -21
- package/src/headers/{12 → 18}/node_file.h +74 -13
- package/src/headers/{13 → 18}/node_http2.h +365 -269
- package/src/headers/{12 → 18}/node_http2_state.h +40 -50
- package/src/headers/{13 → 18}/node_http_common-inl.h +25 -5
- package/src/headers/{13 → 18}/node_http_common.h +24 -20
- package/src/headers/{13 → 18}/node_i18n.h +2 -1
- package/src/headers/{12 → 18}/node_internals.h +39 -41
- package/src/headers/{13 → 18}/node_main_instance.h +15 -18
- package/src/headers/{12 → 18}/node_mem-inl.h +0 -0
- package/src/headers/{12 → 18}/node_mem.h +1 -1
- package/src/headers/{13 → 18}/node_messaging.h +170 -23
- package/src/headers/{12 → 18}/node_metadata.h +17 -4
- package/src/headers/{12 → 18}/node_mutex.h +77 -1
- package/src/headers/{12 → 18}/node_native_module.h +11 -1
- package/src/headers/{13 → 18}/node_native_module_env.h +14 -8
- package/src/headers/{12 → 18}/node_object_wrap.h +0 -0
- package/src/headers/{13 → 18}/node_options-inl.h +51 -21
- package/src/headers/{13 → 18}/node_options.h +46 -14
- package/src/headers/18/node_perf.h +168 -0
- package/src/headers/{12 → 18}/node_perf_common.h +16 -22
- package/src/headers/{12 → 18}/node_platform.h +21 -16
- package/src/headers/18/node_process-inl.h +26 -0
- package/src/headers/18/node_process.h +97 -0
- package/src/headers/{13 → 18}/node_report.h +2 -2
- package/src/headers/{13 → 18}/node_revert.h +10 -0
- package/src/headers/{12 → 18}/node_root_certs.h +439 -651
- package/src/headers/18/node_snapshot_builder.h +43 -0
- package/src/headers/18/node_snapshotable.h +130 -0
- package/src/headers/{12 → 18}/node_sockaddr-inl.h +100 -4
- package/src/headers/18/node_sockaddr.h +405 -0
- package/src/headers/{12 → 18}/node_stat_watcher.h +7 -1
- package/src/headers/{12 → 18}/node_union_bytes.h +0 -0
- package/src/headers/{13 → 18}/node_url.h +18 -1
- package/src/headers/18/node_v8.h +41 -0
- package/src/headers/{12 → 18}/node_v8_platform-inl.h +10 -0
- package/src/headers/{13 → 18}/node_version.h +7 -7
- package/src/headers/{12 → 18}/node_wasi.h +0 -0
- package/src/headers/18/node_wasm_web_api.h +55 -0
- package/src/headers/{13 → 18}/node_watchdog.h +0 -0
- package/src/headers/{10 → 18}/node_win32_etw_provider-inl.h +7 -6
- package/src/headers/{10 → 18}/node_win32_etw_provider.h +0 -0
- package/src/headers/{13 → 18}/node_worker.h +24 -17
- package/src/headers/{12 → 18}/pipe_wrap.h +2 -0
- package/src/headers/{12 → 18}/req_wrap-inl.h +0 -0
- package/src/headers/{12 → 18}/req_wrap.h +1 -1
- package/src/headers/{12 → 18}/spawn_sync.h +0 -0
- package/src/headers/{13 → 18}/stream_base-inl.h +58 -22
- package/src/headers/{13 → 18}/stream_base.h +29 -3
- package/src/headers/{13 → 18}/stream_pipe.h +8 -3
- package/src/headers/{12 → 18}/stream_wrap.h +4 -1
- package/src/headers/{13 → 18}/string_bytes.h +0 -7
- package/src/headers/{12 → 18}/string_decoder-inl.h +0 -0
- package/src/headers/{10 → 18}/string_decoder.h +0 -0
- package/src/headers/{13 → 18}/string_search.h +2 -2
- package/src/headers/{12 → 18}/tcp_wrap.h +4 -0
- package/src/headers/{12 → 18}/threadpoolwork-inl.h +0 -0
- package/src/headers/18/timer_wrap-inl.h +32 -0
- package/src/headers/18/timer_wrap.h +85 -0
- package/src/headers/{13 → 18}/tracing/agent.h +1 -1
- package/src/headers/{12 → 18}/tracing/node_trace_buffer.h +0 -0
- package/src/headers/{12 → 18}/tracing/node_trace_writer.h +0 -0
- package/src/headers/{13 → 18}/tracing/trace_event.h +23 -13
- package/src/headers/{12 → 18}/tracing/trace_event_common.h +0 -0
- package/src/headers/{12 → 18}/tracing/traced_value.h +0 -0
- package/src/headers/{13 → 18}/tty_wrap.h +2 -1
- package/src/headers/{13 → 18}/udp_wrap.h +5 -0
- package/src/headers/{13 → 18}/util-inl.h +69 -15
- package/src/headers/{13 → 18}/util.h +93 -31
- package/src/headers/18/v8-fast-api-calls.h +939 -0
- package/src/headers/{12 → 18}/v8abbr.h +2 -2
- package/src/headers/10/aliased_buffer.h +0 -241
- package/src/headers/10/async_wrap-inl.h +0 -106
- package/src/headers/10/async_wrap.h +0 -218
- package/src/headers/10/base64.h +0 -197
- package/src/headers/10/base_object-inl.h +0 -132
- package/src/headers/10/base_object.h +0 -115
- package/src/headers/10/connect_wrap.h +0 -28
- package/src/headers/10/connection_wrap.h +0 -30
- package/src/headers/10/debug_utils.h +0 -128
- package/src/headers/10/env-inl.h +0 -906
- package/src/headers/10/env.h +0 -1046
- package/src/headers/10/handle_wrap.h +0 -114
- package/src/headers/10/inspector_agent.h +0 -137
- package/src/headers/10/inspector_io.h +0 -97
- package/src/headers/10/inspector_socket.h +0 -59
- package/src/headers/10/inspector_socket_server.h +0 -104
- package/src/headers/10/js_stream.h +0 -57
- package/src/headers/10/memory_tracker-inl.h +0 -318
- package/src/headers/10/memory_tracker.h +0 -246
- package/src/headers/10/module_wrap.h +0 -100
- package/src/headers/10/node.h +0 -863
- package/src/headers/10/node_api.h +0 -752
- package/src/headers/10/node_api_types.h +0 -171
- package/src/headers/10/node_buffer.h +0 -90
- package/src/headers/10/node_code_cache.h +0 -17
- package/src/headers/10/node_constants.h +0 -74
- package/src/headers/10/node_context_data.h +0 -39
- package/src/headers/10/node_contextify.h +0 -141
- package/src/headers/10/node_counters.h +0 -59
- package/src/headers/10/node_crypto.h +0 -699
- package/src/headers/10/node_crypto_bio.h +0 -177
- package/src/headers/10/node_crypto_clienthello-inl.h +0 -92
- package/src/headers/10/node_crypto_clienthello.h +0 -131
- package/src/headers/10/node_crypto_groups.h +0 -416
- package/src/headers/10/node_dtrace.h +0 -84
- package/src/headers/10/node_errors.h +0 -118
- package/src/headers/10/node_file.h +0 -373
- package/src/headers/10/node_http2.h +0 -1304
- package/src/headers/10/node_http2_state.h +0 -158
- package/src/headers/10/node_i18n.h +0 -69
- package/src/headers/10/node_internals.h +0 -952
- package/src/headers/10/node_javascript.h +0 -41
- package/src/headers/10/node_messaging.h +0 -219
- package/src/headers/10/node_mutex.h +0 -191
- package/src/headers/10/node_object_wrap.h +0 -130
- package/src/headers/10/node_options-inl.h +0 -444
- package/src/headers/10/node_options.h +0 -397
- package/src/headers/10/node_perf.h +0 -134
- package/src/headers/10/node_perf_common.h +0 -96
- package/src/headers/10/node_persistent.h +0 -30
- package/src/headers/10/node_platform.h +0 -170
- package/src/headers/10/node_revert.h +0 -75
- package/src/headers/10/node_root_certs.h +0 -3393
- package/src/headers/10/node_stat_watcher.h +0 -65
- package/src/headers/10/node_url.h +0 -193
- package/src/headers/10/node_version.h +0 -120
- package/src/headers/10/node_watchdog.h +0 -114
- package/src/headers/10/node_worker.h +0 -94
- package/src/headers/10/pipe_wrap.h +0 -76
- package/src/headers/10/req_wrap-inl.h +0 -166
- package/src/headers/10/req_wrap.h +0 -61
- package/src/headers/10/sharedarraybuffer_metadata.h +0 -67
- package/src/headers/10/spawn_sync.h +0 -240
- package/src/headers/10/stream_base-inl.h +0 -458
- package/src/headers/10/stream_base.h +0 -378
- package/src/headers/10/stream_pipe.h +0 -72
- package/src/headers/10/stream_wrap.h +0 -130
- package/src/headers/10/string_bytes.h +0 -126
- package/src/headers/10/string_decoder-inl.h +0 -38
- package/src/headers/10/string_search.h +0 -620
- package/src/headers/10/tcp_wrap.h +0 -99
- package/src/headers/10/tls_wrap.h +0 -195
- package/src/headers/10/tracing/agent.h +0 -178
- package/src/headers/10/tracing/node_trace_buffer.h +0 -83
- package/src/headers/10/tracing/node_trace_writer.h +0 -75
- package/src/headers/10/tracing/trace_event.h +0 -706
- package/src/headers/10/tracing/trace_event_common.h +0 -1102
- package/src/headers/10/tracing/traced_value.h +0 -68
- package/src/headers/10/tty_wrap.h +0 -63
- package/src/headers/10/udp_wrap.h +0 -102
- package/src/headers/10/util-inl.h +0 -459
- package/src/headers/10/util.h +0 -508
- package/src/headers/10/v8abbr.h +0 -121
- package/src/headers/12/aliased_buffer.h +0 -263
- package/src/headers/12/debug_utils.h +0 -181
- package/src/headers/12/histogram-inl.h +0 -83
- package/src/headers/12/histogram.h +0 -98
- package/src/headers/12/http_parser_adaptor.h +0 -24
- package/src/headers/12/inspector_agent.h +0 -147
- package/src/headers/12/inspector_profiler.h +0 -137
- package/src/headers/12/js_native_api.h +0 -541
- package/src/headers/12/js_native_api_types.h +0 -139
- package/src/headers/12/memory_tracker-inl.h +0 -339
- package/src/headers/12/memory_tracker.h +0 -283
- package/src/headers/12/module_wrap.h +0 -99
- package/src/headers/12/node.h +0 -887
- package/src/headers/12/node_api.h +0 -239
- package/src/headers/12/node_buffer.h +0 -92
- package/src/headers/12/node_constants.h +0 -80
- package/src/headers/12/node_crypto.h +0 -800
- package/src/headers/12/node_crypto_bio.h +0 -195
- package/src/headers/12/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/12/node_crypto_clienthello.h +0 -132
- package/src/headers/12/node_file-inl.h +0 -289
- package/src/headers/12/node_http2.h +0 -1311
- package/src/headers/12/node_http_parser_impl.h +0 -994
- package/src/headers/12/node_i18n.h +0 -144
- package/src/headers/12/node_main_instance.h +0 -97
- package/src/headers/12/node_messaging.h +0 -227
- package/src/headers/12/node_native_module_env.h +0 -65
- package/src/headers/12/node_options-inl.h +0 -447
- package/src/headers/12/node_options.h +0 -479
- package/src/headers/12/node_perf.h +0 -181
- package/src/headers/12/node_process.h +0 -41
- package/src/headers/12/node_report.h +0 -47
- package/src/headers/12/node_revert.h +0 -78
- package/src/headers/12/node_sockaddr.h +0 -123
- package/src/headers/12/node_url.h +0 -188
- package/src/headers/12/node_version.h +0 -98
- package/src/headers/12/node_watchdog.h +0 -152
- package/src/headers/12/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/12/node_win32_etw_provider.h +0 -99
- package/src/headers/12/node_worker.h +0 -142
- package/src/headers/12/sharedarraybuffer_metadata.h +0 -72
- package/src/headers/12/stream_base-inl.h +0 -323
- package/src/headers/12/stream_base.h +0 -431
- package/src/headers/12/stream_pipe.h +0 -72
- package/src/headers/12/string_bytes.h +0 -142
- package/src/headers/12/string_decoder.h +0 -50
- package/src/headers/12/string_search.h +0 -638
- package/src/headers/12/tls_wrap.h +0 -221
- package/src/headers/12/tracing/agent.h +0 -195
- package/src/headers/12/tracing/trace_event.h +0 -710
- package/src/headers/12/tty_wrap.h +0 -64
- package/src/headers/12/udp_wrap.h +0 -222
- package/src/headers/12/util-inl.h +0 -529
- package/src/headers/12/util.h +0 -765
- package/src/headers/13/async_wrap-inl.h +0 -94
- package/src/headers/13/async_wrap.h +0 -224
- package/src/headers/13/base64.h +0 -197
- package/src/headers/13/base_object-inl.h +0 -353
- package/src/headers/13/base_object.h +0 -229
- package/src/headers/13/connect_wrap.h +0 -26
- package/src/headers/13/connection_wrap.h +0 -30
- package/src/headers/13/debug_utils-inl.h +0 -223
- package/src/headers/13/diagnosticfilename-inl.h +0 -33
- package/src/headers/13/env-inl.h +0 -1293
- package/src/headers/13/env.h +0 -1469
- package/src/headers/13/handle_wrap.h +0 -117
- package/src/headers/13/histogram-inl.h +0 -83
- package/src/headers/13/histogram.h +0 -98
- package/src/headers/13/inspector_io.h +0 -78
- package/src/headers/13/inspector_socket.h +0 -60
- package/src/headers/13/inspector_socket_server.h +0 -110
- package/src/headers/13/js_native_api.h +0 -541
- package/src/headers/13/js_native_api_v8.h +0 -303
- package/src/headers/13/js_native_api_v8_internals.h +0 -38
- package/src/headers/13/js_stream.h +0 -52
- package/src/headers/13/json_utils.h +0 -160
- package/src/headers/13/node_api.h +0 -239
- package/src/headers/13/node_api_types.h +0 -44
- package/src/headers/13/node_binding.h +0 -99
- package/src/headers/13/node_context_data.h +0 -39
- package/src/headers/13/node_contextify.h +0 -161
- package/src/headers/13/node_crypto.h +0 -800
- package/src/headers/13/node_crypto_common.h +0 -138
- package/src/headers/13/node_crypto_groups.h +0 -415
- package/src/headers/13/node_dir.h +0 -52
- package/src/headers/13/node_dtrace.h +0 -86
- package/src/headers/13/node_errors.h +0 -210
- package/src/headers/13/node_file.h +0 -364
- package/src/headers/13/node_http2_state.h +0 -144
- package/src/headers/13/node_internals.h +0 -405
- package/src/headers/13/node_mem-inl.h +0 -112
- package/src/headers/13/node_mem.h +0 -41
- package/src/headers/13/node_metadata.h +0 -109
- package/src/headers/13/node_mutex.h +0 -247
- package/src/headers/13/node_native_module.h +0 -99
- package/src/headers/13/node_object_wrap.h +0 -132
- package/src/headers/13/node_perf.h +0 -181
- package/src/headers/13/node_perf_common.h +0 -97
- package/src/headers/13/node_platform.h +0 -190
- package/src/headers/13/node_process.h +0 -41
- package/src/headers/13/node_root_certs.h +0 -3424
- package/src/headers/13/node_sockaddr-inl.h +0 -170
- package/src/headers/13/node_sockaddr.h +0 -123
- package/src/headers/13/node_stat_watcher.h +0 -66
- package/src/headers/13/node_union_bytes.h +0 -103
- package/src/headers/13/node_v8_platform-inl.h +0 -184
- package/src/headers/13/node_wasi.h +0 -108
- package/src/headers/13/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/13/node_win32_etw_provider.h +0 -99
- package/src/headers/13/pipe_wrap.h +0 -78
- package/src/headers/13/req_wrap-inl.h +0 -170
- package/src/headers/13/req_wrap.h +0 -77
- package/src/headers/13/spawn_sync.h +0 -242
- package/src/headers/13/stream_wrap.h +0 -130
- package/src/headers/13/string_decoder-inl.h +0 -37
- package/src/headers/13/string_decoder.h +0 -50
- package/src/headers/13/tcp_wrap.h +0 -101
- package/src/headers/13/threadpoolwork-inl.h +0 -57
- package/src/headers/13/tracing/node_trace_buffer.h +0 -83
- package/src/headers/13/tracing/node_trace_writer.h +0 -75
- package/src/headers/13/tracing/trace_event_common.h +0 -1109
- package/src/headers/13/tracing/traced_value.h +0 -70
- package/src/headers/13/v8abbr.h +0 -124
|
@@ -28,7 +28,7 @@ void FSContinuationData::MaybeSetFirstPath(const std::string& path) {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
std::string FSContinuationData::PopPath() {
|
|
31
|
-
|
|
31
|
+
CHECK(!paths_.empty());
|
|
32
32
|
std::string path = std::move(paths_.back());
|
|
33
33
|
paths_.pop_back();
|
|
34
34
|
return path;
|
|
@@ -39,11 +39,13 @@ void FSContinuationData::Done(int result) {
|
|
|
39
39
|
done_cb_(req_);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
FSReqBase::FSReqBase(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
: ReqWrap(env, req, type),
|
|
42
|
+
FSReqBase::FSReqBase(BindingData* binding_data,
|
|
43
|
+
v8::Local<v8::Object> req,
|
|
44
|
+
AsyncWrap::ProviderType type,
|
|
45
|
+
bool use_bigint)
|
|
46
|
+
: ReqWrap(binding_data->env(), req, type),
|
|
47
|
+
use_bigint_(use_bigint),
|
|
48
|
+
binding_data_(binding_data) {
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
void FSReqBase::Init(const char* syscall,
|
|
@@ -72,9 +74,13 @@ FSReqBase::Init(const char* syscall, size_t len, enum encoding encoding) {
|
|
|
72
74
|
return buffer_;
|
|
73
75
|
}
|
|
74
76
|
|
|
75
|
-
FSReqCallback::FSReqCallback(
|
|
76
|
-
v8::Local<v8::Object> req,
|
|
77
|
-
|
|
77
|
+
FSReqCallback::FSReqCallback(BindingData* binding_data,
|
|
78
|
+
v8::Local<v8::Object> req,
|
|
79
|
+
bool use_bigint)
|
|
80
|
+
: FSReqBase(binding_data,
|
|
81
|
+
req,
|
|
82
|
+
AsyncWrap::PROVIDER_FSREQCALLBACK,
|
|
83
|
+
use_bigint) {}
|
|
78
84
|
|
|
79
85
|
template <typename NativeT, typename V8T>
|
|
80
86
|
void FillStatsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
@@ -112,18 +118,18 @@ void FillStatsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
|
112
118
|
#undef SET_FIELD_WITH_STAT
|
|
113
119
|
}
|
|
114
120
|
|
|
115
|
-
v8::Local<v8::Value> FillGlobalStatsArray(
|
|
121
|
+
v8::Local<v8::Value> FillGlobalStatsArray(BindingData* binding_data,
|
|
116
122
|
const bool use_bigint,
|
|
117
123
|
const uv_stat_t* s,
|
|
118
124
|
const bool second) {
|
|
119
125
|
const ptrdiff_t offset =
|
|
120
126
|
second ? static_cast<ptrdiff_t>(FsStatsOffset::kFsStatsFieldsNumber) : 0;
|
|
121
127
|
if (use_bigint) {
|
|
122
|
-
auto* const arr =
|
|
128
|
+
auto* const arr = &binding_data->stats_field_bigint_array;
|
|
123
129
|
FillStatsArray(arr, s, offset);
|
|
124
130
|
return arr->GetJSArray();
|
|
125
131
|
} else {
|
|
126
|
-
auto* const arr =
|
|
132
|
+
auto* const arr = &binding_data->stats_field_array;
|
|
127
133
|
FillStatsArray(arr, s, offset);
|
|
128
134
|
return arr->GetJSArray();
|
|
129
135
|
}
|
|
@@ -131,7 +137,9 @@ v8::Local<v8::Value> FillGlobalStatsArray(Environment* env,
|
|
|
131
137
|
|
|
132
138
|
template <typename AliasedBufferT>
|
|
133
139
|
FSReqPromise<AliasedBufferT>*
|
|
134
|
-
FSReqPromise<AliasedBufferT>::New(
|
|
140
|
+
FSReqPromise<AliasedBufferT>::New(BindingData* binding_data,
|
|
141
|
+
bool use_bigint) {
|
|
142
|
+
Environment* env = binding_data->env();
|
|
135
143
|
v8::Local<v8::Object> obj;
|
|
136
144
|
if (!env->fsreqpromise_constructor_template()
|
|
137
145
|
->NewInstance(env->context())
|
|
@@ -143,7 +151,7 @@ FSReqPromise<AliasedBufferT>::New(Environment* env, bool use_bigint) {
|
|
|
143
151
|
obj->Set(env->context(), env->promise_string(), resolver).IsNothing()) {
|
|
144
152
|
return nullptr;
|
|
145
153
|
}
|
|
146
|
-
return new FSReqPromise(
|
|
154
|
+
return new FSReqPromise(binding_data, obj, use_bigint);
|
|
147
155
|
}
|
|
148
156
|
|
|
149
157
|
template <typename AliasedBufferT>
|
|
@@ -154,12 +162,15 @@ FSReqPromise<AliasedBufferT>::~FSReqPromise() {
|
|
|
154
162
|
|
|
155
163
|
template <typename AliasedBufferT>
|
|
156
164
|
FSReqPromise<AliasedBufferT>::FSReqPromise(
|
|
157
|
-
|
|
165
|
+
BindingData* binding_data,
|
|
158
166
|
v8::Local<v8::Object> obj,
|
|
159
167
|
bool use_bigint)
|
|
160
|
-
: FSReqBase(
|
|
168
|
+
: FSReqBase(binding_data,
|
|
169
|
+
obj,
|
|
170
|
+
AsyncWrap::PROVIDER_FSREQPROMISE,
|
|
171
|
+
use_bigint),
|
|
161
172
|
stats_field_array_(
|
|
162
|
-
env->isolate(),
|
|
173
|
+
env()->isolate(),
|
|
163
174
|
static_cast<size_t>(FsStatsOffset::kFsStatsFieldsNumber)) {}
|
|
164
175
|
|
|
165
176
|
template <typename AliasedBufferT>
|
|
@@ -208,15 +219,21 @@ void FSReqPromise<AliasedBufferT>::MemoryInfo(MemoryTracker* tracker) const {
|
|
|
208
219
|
tracker->TrackField("stats_field_array", stats_field_array_);
|
|
209
220
|
}
|
|
210
221
|
|
|
211
|
-
FSReqBase* GetReqWrap(
|
|
222
|
+
FSReqBase* GetReqWrap(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
223
|
+
int index,
|
|
212
224
|
bool use_bigint) {
|
|
225
|
+
v8::Local<v8::Value> value = args[index];
|
|
213
226
|
if (value->IsObject()) {
|
|
214
227
|
return Unwrap<FSReqBase>(value.As<v8::Object>());
|
|
215
|
-
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
BindingData* binding_data = Environment::GetBindingData<BindingData>(args);
|
|
231
|
+
Environment* env = binding_data->env();
|
|
232
|
+
if (value->StrictEquals(env->fs_use_promises_symbol())) {
|
|
216
233
|
if (use_bigint) {
|
|
217
|
-
return FSReqPromise<AliasedBigUint64Array>::New(
|
|
234
|
+
return FSReqPromise<AliasedBigUint64Array>::New(binding_data, use_bigint);
|
|
218
235
|
} else {
|
|
219
|
-
return FSReqPromise<AliasedFloat64Array>::New(
|
|
236
|
+
return FSReqPromise<AliasedFloat64Array>::New(binding_data, use_bigint);
|
|
220
237
|
}
|
|
221
238
|
}
|
|
222
239
|
return nullptr;
|
|
@@ -3,14 +3,36 @@
|
|
|
3
3
|
|
|
4
4
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
5
|
|
|
6
|
-
#include "node.h"
|
|
7
6
|
#include "aliased_buffer.h"
|
|
7
|
+
#include "node_messaging.h"
|
|
8
|
+
#include "node_snapshotable.h"
|
|
8
9
|
#include "stream_base.h"
|
|
9
|
-
#include <iostream>
|
|
10
10
|
|
|
11
11
|
namespace node {
|
|
12
12
|
namespace fs {
|
|
13
13
|
|
|
14
|
+
class FileHandleReadWrap;
|
|
15
|
+
|
|
16
|
+
class BindingData : public SnapshotableObject {
|
|
17
|
+
public:
|
|
18
|
+
explicit BindingData(Environment* env, v8::Local<v8::Object> wrap);
|
|
19
|
+
|
|
20
|
+
AliasedFloat64Array stats_field_array;
|
|
21
|
+
AliasedBigUint64Array stats_field_bigint_array;
|
|
22
|
+
|
|
23
|
+
std::vector<BaseObjectPtr<FileHandleReadWrap>>
|
|
24
|
+
file_handle_read_wrap_freelist;
|
|
25
|
+
|
|
26
|
+
SERIALIZABLE_OBJECT_METHODS()
|
|
27
|
+
static constexpr FastStringKey type_name{"node::fs::BindingData"};
|
|
28
|
+
static constexpr EmbedderObjectType type_int =
|
|
29
|
+
EmbedderObjectType::k_fs_binding_data;
|
|
30
|
+
|
|
31
|
+
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
32
|
+
SET_SELF_SIZE(BindingData)
|
|
33
|
+
SET_MEMORY_INFO_NAME(BindingData)
|
|
34
|
+
};
|
|
35
|
+
|
|
14
36
|
// structure used to store state during a complex operation, e.g., mkdirp.
|
|
15
37
|
class FSContinuationData : public MemoryRetainer {
|
|
16
38
|
public:
|
|
@@ -43,7 +65,7 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
43
65
|
public:
|
|
44
66
|
typedef MaybeStackBuffer<char, 64> FSReqBuffer;
|
|
45
67
|
|
|
46
|
-
inline FSReqBase(
|
|
68
|
+
inline FSReqBase(BindingData* binding_data,
|
|
47
69
|
v8::Local<v8::Object> req,
|
|
48
70
|
AsyncWrap::ProviderType type,
|
|
49
71
|
bool use_bigint);
|
|
@@ -66,6 +88,9 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
66
88
|
const char* data() const { return has_data_ ? *buffer_ : nullptr; }
|
|
67
89
|
enum encoding encoding() const { return encoding_; }
|
|
68
90
|
bool use_bigint() const { return use_bigint_; }
|
|
91
|
+
bool is_plain_open() const { return is_plain_open_; }
|
|
92
|
+
|
|
93
|
+
void set_is_plain_open(bool value) { is_plain_open_ = value; }
|
|
69
94
|
|
|
70
95
|
FSContinuationData* continuation_data() const {
|
|
71
96
|
return continuation_data_.get();
|
|
@@ -83,12 +108,17 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
83
108
|
|
|
84
109
|
void MemoryInfo(MemoryTracker* tracker) const override;
|
|
85
110
|
|
|
111
|
+
BindingData* binding_data();
|
|
112
|
+
|
|
86
113
|
private:
|
|
87
114
|
std::unique_ptr<FSContinuationData> continuation_data_;
|
|
88
115
|
enum encoding encoding_ = UTF8;
|
|
89
116
|
bool has_data_ = false;
|
|
90
|
-
const char* syscall_ = nullptr;
|
|
91
117
|
bool use_bigint_ = false;
|
|
118
|
+
bool is_plain_open_ = false;
|
|
119
|
+
const char* syscall_ = nullptr;
|
|
120
|
+
|
|
121
|
+
BaseObjectPtr<BindingData> binding_data_;
|
|
92
122
|
|
|
93
123
|
// Typically, the content of buffer_ is something like a file name, so
|
|
94
124
|
// something around 64 bytes should be enough.
|
|
@@ -97,7 +127,7 @@ class FSReqBase : public ReqWrap<uv_fs_t> {
|
|
|
97
127
|
|
|
98
128
|
class FSReqCallback final : public FSReqBase {
|
|
99
129
|
public:
|
|
100
|
-
inline FSReqCallback(
|
|
130
|
+
inline FSReqCallback(BindingData* binding_data,
|
|
101
131
|
v8::Local<v8::Object> req,
|
|
102
132
|
bool use_bigint);
|
|
103
133
|
|
|
@@ -118,7 +148,7 @@ void FillStatsArray(AliasedBufferBase<NativeT, V8T>* fields,
|
|
|
118
148
|
const uv_stat_t* s,
|
|
119
149
|
const size_t offset = 0);
|
|
120
150
|
|
|
121
|
-
inline v8::Local<v8::Value> FillGlobalStatsArray(
|
|
151
|
+
inline v8::Local<v8::Value> FillGlobalStatsArray(BindingData* binding_data,
|
|
122
152
|
const bool use_bigint,
|
|
123
153
|
const uv_stat_t* s,
|
|
124
154
|
const bool second = false);
|
|
@@ -126,7 +156,8 @@ inline v8::Local<v8::Value> FillGlobalStatsArray(Environment* env,
|
|
|
126
156
|
template <typename AliasedBufferT>
|
|
127
157
|
class FSReqPromise final : public FSReqBase {
|
|
128
158
|
public:
|
|
129
|
-
static inline FSReqPromise* New(
|
|
159
|
+
static inline FSReqPromise* New(BindingData* binding_data,
|
|
160
|
+
bool use_bigint);
|
|
130
161
|
inline ~FSReqPromise() override;
|
|
131
162
|
|
|
132
163
|
inline void Reject(v8::Local<v8::Value> reject) override;
|
|
@@ -145,7 +176,7 @@ class FSReqPromise final : public FSReqBase {
|
|
|
145
176
|
FSReqPromise& operator=(const FSReqPromise&&) = delete;
|
|
146
177
|
|
|
147
178
|
private:
|
|
148
|
-
inline FSReqPromise(
|
|
179
|
+
inline FSReqPromise(BindingData* binding_data,
|
|
149
180
|
v8::Local<v8::Object> obj,
|
|
150
181
|
bool use_bigint);
|
|
151
182
|
|
|
@@ -203,7 +234,13 @@ class FileHandleReadWrap final : public ReqWrap<uv_fs_t> {
|
|
|
203
234
|
// the object is garbage collected
|
|
204
235
|
class FileHandle final : public AsyncWrap, public StreamBase {
|
|
205
236
|
public:
|
|
206
|
-
|
|
237
|
+
enum InternalFields {
|
|
238
|
+
kFileHandleBaseField = StreamBase::kInternalFieldCount,
|
|
239
|
+
kClosingPromiseSlot,
|
|
240
|
+
kInternalFieldCount
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
static FileHandle* New(BindingData* binding_data,
|
|
207
244
|
int fd,
|
|
208
245
|
v8::Local<v8::Object> obj = v8::Local<v8::Object>());
|
|
209
246
|
~FileHandle() override;
|
|
@@ -246,8 +283,29 @@ class FileHandle final : public AsyncWrap, public StreamBase {
|
|
|
246
283
|
FileHandle(const FileHandle&&) = delete;
|
|
247
284
|
FileHandle& operator=(const FileHandle&&) = delete;
|
|
248
285
|
|
|
286
|
+
TransferMode GetTransferMode() const override;
|
|
287
|
+
std::unique_ptr<worker::TransferData> TransferForMessaging() override;
|
|
288
|
+
|
|
249
289
|
private:
|
|
250
|
-
|
|
290
|
+
class TransferData : public worker::TransferData {
|
|
291
|
+
public:
|
|
292
|
+
explicit TransferData(int fd);
|
|
293
|
+
~TransferData();
|
|
294
|
+
|
|
295
|
+
BaseObjectPtr<BaseObject> Deserialize(
|
|
296
|
+
Environment* env,
|
|
297
|
+
v8::Local<v8::Context> context,
|
|
298
|
+
std::unique_ptr<worker::TransferData> self) override;
|
|
299
|
+
|
|
300
|
+
SET_NO_MEMORY_INFO()
|
|
301
|
+
SET_MEMORY_INFO_NAME(FileHandleTransferData)
|
|
302
|
+
SET_SELF_SIZE(TransferData)
|
|
303
|
+
|
|
304
|
+
private:
|
|
305
|
+
int fd_;
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
FileHandle(BindingData* binding_data, v8::Local<v8::Object> obj, int fd);
|
|
251
309
|
|
|
252
310
|
// Synchronous close that emits a warning
|
|
253
311
|
void Close();
|
|
@@ -292,11 +350,13 @@ class FileHandle final : public AsyncWrap, public StreamBase {
|
|
|
292
350
|
int fd_;
|
|
293
351
|
bool closing_ = false;
|
|
294
352
|
bool closed_ = false;
|
|
353
|
+
bool reading_ = false;
|
|
295
354
|
int64_t read_offset_ = -1;
|
|
296
355
|
int64_t read_length_ = -1;
|
|
297
356
|
|
|
298
|
-
|
|
299
|
-
|
|
357
|
+
BaseObjectPtr<FileHandleReadWrap> current_read_;
|
|
358
|
+
|
|
359
|
+
BaseObjectPtr<BindingData> binding_data_;
|
|
300
360
|
};
|
|
301
361
|
|
|
302
362
|
int MKDirpSync(uv_loop_t* loop,
|
|
@@ -328,7 +388,8 @@ class FSReqWrapSync {
|
|
|
328
388
|
// TODO(addaleax): Currently, callers check the return value and assume
|
|
329
389
|
// that nullptr indicates a synchronous call, rather than a failure.
|
|
330
390
|
// Failure conditions should be disambiguated and handled appropriately.
|
|
331
|
-
inline FSReqBase* GetReqWrap(
|
|
391
|
+
inline FSReqBase* GetReqWrap(const v8::FunctionCallbackInfo<v8::Value>& args,
|
|
392
|
+
int index,
|
|
332
393
|
bool use_bigint = false);
|
|
333
394
|
|
|
334
395
|
// Returns nullptr if the operation fails from the start.
|