@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
|
@@ -28,24 +28,20 @@ class HostPort {
|
|
|
28
28
|
|
|
29
29
|
void set_host(const std::string& host) { host_name_ = host; }
|
|
30
30
|
|
|
31
|
-
void set_port(
|
|
31
|
+
void set_port(uint16_t port) { port_ = port; }
|
|
32
32
|
|
|
33
33
|
const std::string& host() const { return host_name_; }
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
// TODO(joyeecheung): make port a uint16_t
|
|
37
|
-
CHECK_GE(port_, 0);
|
|
38
|
-
return port_;
|
|
39
|
-
}
|
|
35
|
+
uint16_t port() const { return port_; }
|
|
40
36
|
|
|
41
37
|
void Update(const HostPort& other) {
|
|
42
38
|
if (!other.host_name_.empty()) host_name_ = other.host_name_;
|
|
43
|
-
|
|
39
|
+
port_ = other.port_;
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
private:
|
|
47
43
|
std::string host_name_;
|
|
48
|
-
|
|
44
|
+
uint16_t port_;
|
|
49
45
|
};
|
|
50
46
|
|
|
51
47
|
class Options {
|
|
@@ -108,15 +104,18 @@ class EnvironmentOptions : public Options {
|
|
|
108
104
|
public:
|
|
109
105
|
bool abort_on_uncaught_exception = false;
|
|
110
106
|
std::vector<std::string> conditions;
|
|
107
|
+
bool detect_module = false;
|
|
111
108
|
std::string dns_result_order;
|
|
112
109
|
bool enable_source_maps = false;
|
|
113
110
|
bool experimental_fetch = true;
|
|
111
|
+
bool experimental_websocket = false;
|
|
114
112
|
bool experimental_global_customevent = true;
|
|
115
113
|
bool experimental_global_web_crypto = true;
|
|
116
114
|
bool experimental_https_modules = false;
|
|
117
115
|
bool experimental_wasm_modules = false;
|
|
118
116
|
bool experimental_import_meta_resolve = false;
|
|
119
|
-
std::string
|
|
117
|
+
std::string input_type; // Value of --input-type
|
|
118
|
+
std::string type; // Value of --experimental-default-type
|
|
120
119
|
std::string experimental_policy;
|
|
121
120
|
std::string experimental_policy_integrity;
|
|
122
121
|
bool has_policy_integrity_string = false;
|
|
@@ -161,6 +160,7 @@ class EnvironmentOptions : public Options {
|
|
|
161
160
|
std::string env_file;
|
|
162
161
|
bool has_env_file_string = false;
|
|
163
162
|
bool test_runner = false;
|
|
163
|
+
uint64_t test_runner_concurrency = 0;
|
|
164
164
|
bool test_runner_coverage = false;
|
|
165
165
|
std::vector<std::string> test_name_pattern;
|
|
166
166
|
std::vector<std::string> test_reporter;
|
|
@@ -12,7 +12,8 @@ namespace permission {
|
|
|
12
12
|
|
|
13
13
|
class ChildProcessPermission final : public PermissionBase {
|
|
14
14
|
public:
|
|
15
|
-
void Apply(const std::string
|
|
15
|
+
void Apply(const std::vector<std::string>& allow,
|
|
16
|
+
PermissionScope scope) override;
|
|
16
17
|
bool is_granted(PermissionScope perm,
|
|
17
18
|
const std::string_view& param = "") override;
|
|
18
19
|
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
#include "v8.h"
|
|
7
7
|
|
|
8
8
|
#include <unordered_map>
|
|
9
|
-
#include <vector>
|
|
10
9
|
#include "permission/permission_base.h"
|
|
11
10
|
#include "util.h"
|
|
12
11
|
|
|
@@ -16,23 +15,27 @@ namespace permission {
|
|
|
16
15
|
|
|
17
16
|
class FSPermission final : public PermissionBase {
|
|
18
17
|
public:
|
|
19
|
-
void Apply(const std::string
|
|
18
|
+
void Apply(const std::vector<std::string>& allow,
|
|
19
|
+
PermissionScope scope) override;
|
|
20
20
|
bool is_granted(PermissionScope perm, const std::string_view& param) override;
|
|
21
21
|
|
|
22
|
-
// For debugging purposes, use the gist function to print the whole tree
|
|
23
|
-
// https://gist.github.com/RafaelGSS/5b4f09c559a54f53f9b7c8c030744d19
|
|
24
22
|
struct RadixTree {
|
|
25
23
|
struct Node {
|
|
26
24
|
std::string prefix;
|
|
27
25
|
std::unordered_map<char, Node*> children;
|
|
28
26
|
Node* wildcard_child;
|
|
27
|
+
bool is_leaf;
|
|
29
28
|
|
|
30
29
|
explicit Node(const std::string& pre)
|
|
31
|
-
: prefix(pre), wildcard_child(nullptr) {}
|
|
30
|
+
: prefix(pre), wildcard_child(nullptr), is_leaf(false) {}
|
|
32
31
|
|
|
33
|
-
Node() : wildcard_child(nullptr) {}
|
|
32
|
+
Node() : wildcard_child(nullptr), is_leaf(false) {}
|
|
34
33
|
|
|
35
34
|
Node* CreateChild(std::string prefix) {
|
|
35
|
+
if (prefix.empty() && !is_leaf) {
|
|
36
|
+
is_leaf = true;
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
36
39
|
char label = prefix[0];
|
|
37
40
|
|
|
38
41
|
Node* child = children[label];
|
|
@@ -57,6 +60,7 @@ class FSPermission final : public PermissionBase {
|
|
|
57
60
|
return split_child->CreateChild(prefix.substr(i));
|
|
58
61
|
}
|
|
59
62
|
}
|
|
63
|
+
child->is_leaf = true;
|
|
60
64
|
return child->CreateChild(prefix.substr(i));
|
|
61
65
|
}
|
|
62
66
|
|
|
@@ -115,7 +119,7 @@ class FSPermission final : public PermissionBase {
|
|
|
115
119
|
if (children.size() == 0) {
|
|
116
120
|
return true;
|
|
117
121
|
}
|
|
118
|
-
return
|
|
122
|
+
return is_leaf;
|
|
119
123
|
}
|
|
120
124
|
};
|
|
121
125
|
|
|
@@ -131,8 +135,6 @@ class FSPermission final : public PermissionBase {
|
|
|
131
135
|
|
|
132
136
|
private:
|
|
133
137
|
void GrantAccess(PermissionScope scope, const std::string& param);
|
|
134
|
-
void RestrictAccess(PermissionScope scope,
|
|
135
|
-
const std::vector<std::string>& params);
|
|
136
138
|
// fs granted on startup
|
|
137
139
|
RadixTree granted_in_fs_;
|
|
138
140
|
RadixTree granted_out_fs_;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#ifndef SRC_PERMISSION_INSPECTOR_PERMISSION_H_
|
|
2
|
+
#define SRC_PERMISSION_INSPECTOR_PERMISSION_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include <string>
|
|
7
|
+
#include "permission/permission_base.h"
|
|
8
|
+
|
|
9
|
+
namespace node {
|
|
10
|
+
|
|
11
|
+
namespace permission {
|
|
12
|
+
|
|
13
|
+
class InspectorPermission final : public PermissionBase {
|
|
14
|
+
public:
|
|
15
|
+
void Apply(const std::vector<std::string>& allow,
|
|
16
|
+
PermissionScope scope) override;
|
|
17
|
+
bool is_granted(PermissionScope perm,
|
|
18
|
+
const std::string_view& param = "") override;
|
|
19
|
+
|
|
20
|
+
private:
|
|
21
|
+
bool deny_all_;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace permission
|
|
25
|
+
|
|
26
|
+
} // namespace node
|
|
27
|
+
|
|
28
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
29
|
+
#endif // SRC_PERMISSION_INSPECTOR_PERMISSION_H_
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
#include "node_options.h"
|
|
8
8
|
#include "permission/child_process_permission.h"
|
|
9
9
|
#include "permission/fs_permission.h"
|
|
10
|
+
#include "permission/inspector_permission.h"
|
|
10
11
|
#include "permission/permission_base.h"
|
|
11
12
|
#include "permission/worker_permission.h"
|
|
12
13
|
#include "v8.h"
|
|
@@ -39,6 +40,8 @@ class Permission {
|
|
|
39
40
|
return is_scope_granted(permission, res);
|
|
40
41
|
}
|
|
41
42
|
|
|
43
|
+
FORCE_INLINE bool enabled() const { return enabled_; }
|
|
44
|
+
|
|
42
45
|
static PermissionScope StringToPermission(const std::string& perm);
|
|
43
46
|
static const char* PermissionToString(PermissionScope perm);
|
|
44
47
|
static void ThrowAccessDenied(Environment* env,
|
|
@@ -46,7 +49,7 @@ class Permission {
|
|
|
46
49
|
const std::string_view& res);
|
|
47
50
|
|
|
48
51
|
// CLI Call
|
|
49
|
-
void Apply(const std::string
|
|
52
|
+
void Apply(const std::vector<std::string>& allow, PermissionScope scope);
|
|
50
53
|
void EnablePermissions();
|
|
51
54
|
|
|
52
55
|
private:
|
|
@@ -22,10 +22,13 @@ namespace permission {
|
|
|
22
22
|
#define WORKER_THREADS_PERMISSIONS(V) \
|
|
23
23
|
V(WorkerThreads, "worker", PermissionsRoot)
|
|
24
24
|
|
|
25
|
+
#define INSPECTOR_PERMISSIONS(V) V(Inspector, "inspector", PermissionsRoot)
|
|
26
|
+
|
|
25
27
|
#define PERMISSIONS(V) \
|
|
26
28
|
FILESYSTEM_PERMISSIONS(V) \
|
|
27
29
|
CHILD_PROCESS_PERMISSIONS(V) \
|
|
28
|
-
WORKER_THREADS_PERMISSIONS(V)
|
|
30
|
+
WORKER_THREADS_PERMISSIONS(V) \
|
|
31
|
+
INSPECTOR_PERMISSIONS(V)
|
|
29
32
|
|
|
30
33
|
#define V(name, _, __) k##name,
|
|
31
34
|
enum class PermissionScope {
|
|
@@ -36,7 +39,8 @@ enum class PermissionScope {
|
|
|
36
39
|
|
|
37
40
|
class PermissionBase {
|
|
38
41
|
public:
|
|
39
|
-
virtual void Apply(const std::string
|
|
42
|
+
virtual void Apply(const std::vector<std::string>& allow,
|
|
43
|
+
PermissionScope scope) = 0;
|
|
40
44
|
virtual bool is_granted(PermissionScope perm,
|
|
41
45
|
const std::string_view& param = "") = 0;
|
|
42
46
|
};
|
|
@@ -12,7 +12,8 @@ namespace permission {
|
|
|
12
12
|
|
|
13
13
|
class WorkerPermission final : public PermissionBase {
|
|
14
14
|
public:
|
|
15
|
-
void Apply(const std::string
|
|
15
|
+
void Apply(const std::vector<std::string>& allow,
|
|
16
|
+
PermissionScope scope) override;
|
|
16
17
|
bool is_granted(PermissionScope perm,
|
|
17
18
|
const std::string_view& param = "") override;
|
|
18
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// This is an auto generated file, please do not edit.
|
|
2
|
-
// Refer to tools/update-undici.sh
|
|
2
|
+
// Refer to tools/dep_updaters/update-undici.sh
|
|
3
3
|
#ifndef SRC_UNDICI_VERSION_H_
|
|
4
4
|
#define SRC_UNDICI_VERSION_H_
|
|
5
|
-
#define UNDICI_VERSION "5.26.
|
|
5
|
+
#define UNDICI_VERSION "5.26.4"
|
|
6
6
|
#endif // SRC_UNDICI_VERSION_H_
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
#ifndef SRC_ALIASED_BUFFER_INL_H_
|
|
2
|
+
#define SRC_ALIASED_BUFFER_INL_H_
|
|
3
|
+
|
|
4
|
+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
+
|
|
6
|
+
#include "aliased_buffer.h"
|
|
7
|
+
#include "util-inl.h"
|
|
8
|
+
|
|
9
|
+
namespace node {
|
|
10
|
+
|
|
11
|
+
typedef size_t AliasedBufferIndex;
|
|
12
|
+
|
|
13
|
+
template <typename NativeT, typename V8T>
|
|
14
|
+
AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
|
|
15
|
+
v8::Isolate* isolate, const size_t count, const AliasedBufferIndex* index)
|
|
16
|
+
: isolate_(isolate), count_(count), byte_offset_(0), index_(index) {
|
|
17
|
+
CHECK_GT(count, 0);
|
|
18
|
+
if (index != nullptr) {
|
|
19
|
+
// Will be deserialized later.
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const v8::HandleScope handle_scope(isolate_);
|
|
23
|
+
const size_t size_in_bytes =
|
|
24
|
+
MultiplyWithOverflowCheck(sizeof(NativeT), count);
|
|
25
|
+
|
|
26
|
+
// allocate v8 ArrayBuffer
|
|
27
|
+
v8::Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate_, size_in_bytes);
|
|
28
|
+
buffer_ = static_cast<NativeT*>(ab->Data());
|
|
29
|
+
|
|
30
|
+
// allocate v8 TypedArray
|
|
31
|
+
v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, count);
|
|
32
|
+
js_array_ = v8::Global<V8T>(isolate, js_array);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
template <typename NativeT, typename V8T>
|
|
36
|
+
AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
|
|
37
|
+
v8::Isolate* isolate,
|
|
38
|
+
const size_t byte_offset,
|
|
39
|
+
const size_t count,
|
|
40
|
+
const AliasedBufferBase<uint8_t, v8::Uint8Array>& backing_buffer,
|
|
41
|
+
const AliasedBufferIndex* index)
|
|
42
|
+
: isolate_(isolate),
|
|
43
|
+
count_(count),
|
|
44
|
+
byte_offset_(byte_offset),
|
|
45
|
+
index_(index) {
|
|
46
|
+
if (index != nullptr) {
|
|
47
|
+
// Will be deserialized later.
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const v8::HandleScope handle_scope(isolate_);
|
|
51
|
+
v8::Local<v8::ArrayBuffer> ab = backing_buffer.GetArrayBuffer();
|
|
52
|
+
|
|
53
|
+
// validate that the byte_offset is aligned with sizeof(NativeT)
|
|
54
|
+
CHECK_EQ(byte_offset & (sizeof(NativeT) - 1), 0);
|
|
55
|
+
// validate this fits inside the backing buffer
|
|
56
|
+
CHECK_LE(MultiplyWithOverflowCheck(sizeof(NativeT), count),
|
|
57
|
+
ab->ByteLength() - byte_offset);
|
|
58
|
+
|
|
59
|
+
buffer_ = reinterpret_cast<NativeT*>(
|
|
60
|
+
const_cast<uint8_t*>(backing_buffer.GetNativeBuffer() + byte_offset));
|
|
61
|
+
|
|
62
|
+
v8::Local<V8T> js_array = V8T::New(ab, byte_offset, count);
|
|
63
|
+
js_array_ = v8::Global<V8T>(isolate, js_array);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
template <typename NativeT, typename V8T>
|
|
67
|
+
AliasedBufferBase<NativeT, V8T>::AliasedBufferBase(
|
|
68
|
+
const AliasedBufferBase& that)
|
|
69
|
+
: isolate_(that.isolate_),
|
|
70
|
+
count_(that.count_),
|
|
71
|
+
byte_offset_(that.byte_offset_),
|
|
72
|
+
buffer_(that.buffer_) {
|
|
73
|
+
js_array_ = v8::Global<V8T>(that.isolate_, that.GetJSArray());
|
|
74
|
+
DCHECK(is_valid());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
template <typename NativeT, typename V8T>
|
|
78
|
+
AliasedBufferIndex AliasedBufferBase<NativeT, V8T>::Serialize(
|
|
79
|
+
v8::Local<v8::Context> context, v8::SnapshotCreator* creator) {
|
|
80
|
+
DCHECK(is_valid());
|
|
81
|
+
return creator->AddData(context, GetJSArray());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
template <typename NativeT, typename V8T>
|
|
85
|
+
inline void AliasedBufferBase<NativeT, V8T>::Deserialize(
|
|
86
|
+
v8::Local<v8::Context> context) {
|
|
87
|
+
DCHECK_NOT_NULL(index_);
|
|
88
|
+
v8::Local<V8T> arr =
|
|
89
|
+
context->GetDataFromSnapshotOnce<V8T>(*index_).ToLocalChecked();
|
|
90
|
+
// These may not hold true for AliasedBuffers that have grown, so should
|
|
91
|
+
// be removed when we expand the snapshot support.
|
|
92
|
+
DCHECK_EQ(count_, arr->Length());
|
|
93
|
+
DCHECK_EQ(byte_offset_, arr->ByteOffset());
|
|
94
|
+
uint8_t* raw = static_cast<uint8_t*>(arr->Buffer()->Data());
|
|
95
|
+
buffer_ = reinterpret_cast<NativeT*>(raw + byte_offset_);
|
|
96
|
+
js_array_.Reset(isolate_, arr);
|
|
97
|
+
index_ = nullptr;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
template <typename NativeT, typename V8T>
|
|
101
|
+
AliasedBufferBase<NativeT, V8T>& AliasedBufferBase<NativeT, V8T>::operator=(
|
|
102
|
+
AliasedBufferBase<NativeT, V8T>&& that) noexcept {
|
|
103
|
+
DCHECK(is_valid());
|
|
104
|
+
this->~AliasedBufferBase();
|
|
105
|
+
isolate_ = that.isolate_;
|
|
106
|
+
count_ = that.count_;
|
|
107
|
+
byte_offset_ = that.byte_offset_;
|
|
108
|
+
buffer_ = that.buffer_;
|
|
109
|
+
|
|
110
|
+
js_array_.Reset(isolate_, that.js_array_.Get(isolate_));
|
|
111
|
+
|
|
112
|
+
that.buffer_ = nullptr;
|
|
113
|
+
that.js_array_.Reset();
|
|
114
|
+
return *this;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
template <typename NativeT, typename V8T>
|
|
118
|
+
v8::Local<V8T> AliasedBufferBase<NativeT, V8T>::GetJSArray() const {
|
|
119
|
+
DCHECK(is_valid());
|
|
120
|
+
return js_array_.Get(isolate_);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
template <typename NativeT, typename V8T>
|
|
124
|
+
void AliasedBufferBase<NativeT, V8T>::Release() {
|
|
125
|
+
DCHECK_NULL(index_);
|
|
126
|
+
js_array_.Reset();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
template <typename NativeT, typename V8T>
|
|
130
|
+
inline void AliasedBufferBase<NativeT, V8T>::MakeWeak() {
|
|
131
|
+
DCHECK(is_valid());
|
|
132
|
+
js_array_.SetWeak();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
template <typename NativeT, typename V8T>
|
|
136
|
+
v8::Local<v8::ArrayBuffer> AliasedBufferBase<NativeT, V8T>::GetArrayBuffer()
|
|
137
|
+
const {
|
|
138
|
+
return GetJSArray()->Buffer();
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
template <typename NativeT, typename V8T>
|
|
142
|
+
inline const NativeT* AliasedBufferBase<NativeT, V8T>::GetNativeBuffer() const {
|
|
143
|
+
DCHECK(is_valid());
|
|
144
|
+
return buffer_;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
template <typename NativeT, typename V8T>
|
|
148
|
+
inline const NativeT* AliasedBufferBase<NativeT, V8T>::operator*() const {
|
|
149
|
+
return GetNativeBuffer();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
template <typename NativeT, typename V8T>
|
|
153
|
+
inline void AliasedBufferBase<NativeT, V8T>::SetValue(const size_t index,
|
|
154
|
+
NativeT value) {
|
|
155
|
+
DCHECK_LT(index, count_);
|
|
156
|
+
DCHECK(is_valid());
|
|
157
|
+
buffer_[index] = value;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
template <typename NativeT, typename V8T>
|
|
161
|
+
inline const NativeT AliasedBufferBase<NativeT, V8T>::GetValue(
|
|
162
|
+
const size_t index) const {
|
|
163
|
+
DCHECK(is_valid());
|
|
164
|
+
DCHECK_LT(index, count_);
|
|
165
|
+
return buffer_[index];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
template <typename NativeT, typename V8T>
|
|
169
|
+
typename AliasedBufferBase<NativeT, V8T>::Reference
|
|
170
|
+
AliasedBufferBase<NativeT, V8T>::operator[](size_t index) {
|
|
171
|
+
DCHECK(is_valid());
|
|
172
|
+
return Reference(this, index);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
template <typename NativeT, typename V8T>
|
|
176
|
+
NativeT AliasedBufferBase<NativeT, V8T>::operator[](size_t index) const {
|
|
177
|
+
return GetValue(index);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
template <typename NativeT, typename V8T>
|
|
181
|
+
size_t AliasedBufferBase<NativeT, V8T>::Length() const {
|
|
182
|
+
return count_;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
template <typename NativeT, typename V8T>
|
|
186
|
+
void AliasedBufferBase<NativeT, V8T>::reserve(size_t new_capacity) {
|
|
187
|
+
DCHECK(is_valid());
|
|
188
|
+
DCHECK_GE(new_capacity, count_);
|
|
189
|
+
DCHECK_EQ(byte_offset_, 0);
|
|
190
|
+
const v8::HandleScope handle_scope(isolate_);
|
|
191
|
+
|
|
192
|
+
const size_t old_size_in_bytes = sizeof(NativeT) * count_;
|
|
193
|
+
const size_t new_size_in_bytes =
|
|
194
|
+
MultiplyWithOverflowCheck(sizeof(NativeT), new_capacity);
|
|
195
|
+
|
|
196
|
+
// allocate v8 new ArrayBuffer
|
|
197
|
+
v8::Local<v8::ArrayBuffer> ab =
|
|
198
|
+
v8::ArrayBuffer::New(isolate_, new_size_in_bytes);
|
|
199
|
+
|
|
200
|
+
// allocate new native buffer
|
|
201
|
+
NativeT* new_buffer = static_cast<NativeT*>(ab->Data());
|
|
202
|
+
// copy old content
|
|
203
|
+
memcpy(new_buffer, buffer_, old_size_in_bytes);
|
|
204
|
+
|
|
205
|
+
// allocate v8 TypedArray
|
|
206
|
+
v8::Local<V8T> js_array = V8T::New(ab, byte_offset_, new_capacity);
|
|
207
|
+
|
|
208
|
+
// move over old v8 TypedArray
|
|
209
|
+
js_array_ = std::move(v8::Global<V8T>(isolate_, js_array));
|
|
210
|
+
|
|
211
|
+
buffer_ = new_buffer;
|
|
212
|
+
count_ = new_capacity;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
template <typename NativeT, typename V8T>
|
|
216
|
+
inline bool AliasedBufferBase<NativeT, V8T>::is_valid() const {
|
|
217
|
+
return index_ == nullptr && !js_array_.IsEmpty();
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
template <typename NativeT, typename V8T>
|
|
221
|
+
inline size_t AliasedBufferBase<NativeT, V8T>::SelfSize() const {
|
|
222
|
+
return sizeof(*this);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
#define VM(NativeT, V8T) \
|
|
226
|
+
template <> \
|
|
227
|
+
inline const char* AliasedBufferBase<NativeT, v8::V8T>::MemoryInfoName() \
|
|
228
|
+
const { \
|
|
229
|
+
return "Aliased" #V8T; \
|
|
230
|
+
} \
|
|
231
|
+
template <> \
|
|
232
|
+
inline void AliasedBufferBase<NativeT, v8::V8T>::MemoryInfo( \
|
|
233
|
+
node::MemoryTracker* tracker) const { \
|
|
234
|
+
tracker->TrackField("js_array", js_array_); \
|
|
235
|
+
}
|
|
236
|
+
ALIASED_BUFFER_LIST(VM)
|
|
237
|
+
#undef VM
|
|
238
|
+
|
|
239
|
+
} // namespace node
|
|
240
|
+
|
|
241
|
+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
242
|
+
|
|
243
|
+
#endif // SRC_ALIASED_BUFFER_INL_H_
|