@encharm/cws 4.4.1 → 4.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.gyp +1 -1
- package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
- package/dist/bindings/cws_linux_arm64_node115.node +0 -0
- package/dist/bindings/cws_linux_arm64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node115.node +0 -0
- package/dist/bindings/cws_linux_x64_node127.node +0 -0
- package/dist/bindings/cws_linux_x64_node137.node +0 -0
- package/dist/bindings/cws_win32_x64_node108.node +0 -0
- package/dist/bindings/cws_win32_x64_node115.node +0 -0
- package/dist/bindings/cws_win32_x64_node127.node +0 -0
- package/dist/bindings/cws_win32_x64_node83.node +0 -0
- package/dist/bindings/cws_win32_x64_node93.node +0 -0
- package/package.json +1 -1
- package/src/Addon.h +13 -23
- package/src/Socket.h +0 -1
- package/src/headers/22/acorn_version.h +6 -0
- package/src/headers/22/aliased_buffer-inl.h +243 -0
- package/src/headers/22/aliased_buffer.h +206 -0
- package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
- package/src/headers/{18 → 22}/async_wrap.h +65 -59
- package/src/headers/{18 → 22}/base_object-inl.h +57 -117
- package/src/headers/{18 → 22}/base_object.h +58 -30
- package/src/headers/22/base_object_types.h +74 -0
- package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/22/blob_serializer_deserializer.h +132 -0
- package/src/headers/{16 → 22}/callback_queue.h +1 -0
- package/src/headers/{16 → 22}/cares_wrap.h +27 -20
- package/src/headers/22/cjs_module_lexer_version.h +6 -0
- package/src/headers/22/cleanup_queue-inl.h +62 -0
- package/src/headers/22/cleanup_queue.h +85 -0
- package/src/headers/22/compile_cache.h +104 -0
- package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
- package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
- package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
- package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
- package/src/headers/22/crypto/ncrypto.h +752 -0
- package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
- package/src/headers/{18 → 22}/debug_utils.h +25 -19
- package/src/headers/22/encoding_binding.h +59 -0
- package/src/headers/{14 → 22}/env-inl.h +276 -409
- package/src/headers/22/env.h +1266 -0
- package/src/headers/22/env_properties.h +497 -0
- package/src/headers/{18 → 22}/handle_wrap.h +2 -0
- package/src/headers/{18 → 22}/histogram.h +88 -48
- package/src/headers/{16 → 22}/inspector_agent.h +17 -1
- package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
- package/src/headers/22/js_native_api.h +619 -0
- package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
- package/src/headers/22/js_native_api_v8.h +485 -0
- package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
- package/src/headers/22/json_parser.h +40 -0
- package/src/headers/{16 → 22}/json_utils.h +19 -8
- package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
- package/src/headers/{14 → 22}/memory_tracker.h +13 -8
- package/src/headers/{16 → 22}/module_wrap.h +49 -19
- package/src/headers/22/ncrypto/ncrypto.h +752 -0
- package/src/headers/{18 → 22}/node.h +465 -68
- package/src/headers/{18 → 22}/node_api.h +66 -81
- package/src/headers/{18 → 22}/node_api_internals.h +8 -4
- package/src/headers/{18 → 22}/node_api_types.h +5 -0
- package/src/headers/22/node_binding.h +154 -0
- package/src/headers/{18 → 22}/node_blob.h +46 -78
- package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
- package/src/headers/{18 → 22}/node_bob.h +2 -6
- package/src/headers/{18 → 22}/node_buffer.h +1 -1
- package/src/headers/22/node_builtins.h +220 -0
- package/src/headers/{18 → 22}/node_constants.h +3 -5
- package/src/headers/22/node_context_data.h +168 -0
- package/src/headers/22/node_contextify.h +199 -0
- package/src/headers/{16 → 22}/node_crypto.h +1 -2
- package/src/headers/22/node_dotenv.h +45 -0
- package/src/headers/{18 → 22}/node_errors.h +86 -27
- package/src/headers/22/node_exit_code.h +54 -0
- package/src/headers/22/node_external_reference.h +249 -0
- package/src/headers/{18 → 22}/node_file-inl.h +127 -30
- package/src/headers/{16 → 22}/node_file.h +122 -11
- package/src/headers/{18 → 22}/node_http2.h +28 -11
- package/src/headers/{16 → 22}/node_http2_state.h +34 -25
- package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
- package/src/headers/{18 → 22}/node_http_common.h +56 -55
- package/src/headers/{16 → 22}/node_i18n.h +5 -18
- package/src/headers/{18 → 22}/node_internals.h +121 -59
- package/src/headers/{18 → 22}/node_main_instance.h +4 -31
- package/src/headers/{18 → 22}/node_messaging.h +27 -10
- package/src/headers/{18 → 22}/node_metadata.h +23 -1
- package/src/headers/{18 → 22}/node_options-inl.h +24 -11
- package/src/headers/{18 → 22}/node_options.h +124 -39
- package/src/headers/{18 → 22}/node_perf.h +0 -2
- package/src/headers/{18 → 22}/node_perf_common.h +20 -9
- package/src/headers/{18 → 22}/node_platform.h +11 -5
- package/src/headers/{18 → 22}/node_process.h +26 -14
- package/src/headers/22/node_realm-inl.h +145 -0
- package/src/headers/22/node_realm.h +184 -0
- package/src/headers/{16 → 22}/node_report.h +13 -17
- package/src/headers/{16 → 22}/node_revert.h +3 -3
- package/src/headers/{16 → 22}/node_root_certs.h +902 -461
- package/src/headers/22/node_sea.h +64 -0
- package/src/headers/22/node_shadow_realm.h +46 -0
- package/src/headers/22/node_snapshot_builder.h +57 -0
- package/src/headers/22/node_snapshotable.h +174 -0
- package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
- package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
- package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/22/node_threadsafe_cow.h +105 -0
- package/src/headers/22/node_union_bytes.h +81 -0
- package/src/headers/22/node_url.h +96 -0
- package/src/headers/22/node_v8.h +77 -0
- package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
- package/src/headers/{16 → 22}/node_version.h +21 -9
- package/src/headers/22/node_wasi.h +185 -0
- package/src/headers/{14 → 22}/node_watchdog.h +2 -0
- package/src/headers/{18 → 22}/node_worker.h +7 -2
- package/src/headers/22/permission/child_process_permission.h +31 -0
- package/src/headers/22/permission/fs_permission.h +167 -0
- package/src/headers/22/permission/inspector_permission.h +31 -0
- package/src/headers/22/permission/permission.h +99 -0
- package/src/headers/22/permission/permission_base.h +60 -0
- package/src/headers/22/permission/wasi_permission.h +31 -0
- package/src/headers/22/permission/worker_permission.h +31 -0
- package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
- package/src/headers/{14 → 22}/spawn_sync.h +3 -3
- package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
- package/src/headers/{18 → 22}/stream_base.h +35 -16
- package/src/headers/{18 → 22}/stream_pipe.h +3 -4
- package/src/headers/{16 → 22}/stream_wrap.h +2 -1
- package/src/headers/{18 → 22}/string_bytes.h +5 -14
- package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
- package/src/headers/{16 → 22}/string_decoder.h +0 -1
- package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
- package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
- package/src/headers/22/timers.h +76 -0
- package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
- package/src/headers/{16 → 22}/udp_wrap.h +8 -5
- package/src/headers/22/undici_version.h +6 -0
- package/src/headers/{18 → 22}/util-inl.h +97 -127
- package/src/headers/{18 → 22}/util.h +293 -106
- package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
- package/src/headers/24/acorn_version.h +6 -0
- package/src/headers/24/addon_permission.h +31 -0
- package/src/headers/{16/tracing → 24}/agent.h +1 -1
- package/src/headers/24/aliased_buffer-inl.h +244 -0
- package/src/headers/24/aliased_buffer.h +206 -0
- package/src/headers/24/amaro_version.h +6 -0
- package/src/headers/24/application.h +165 -0
- package/src/headers/24/async_context_frame.h +33 -0
- package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
- package/src/headers/{16 → 24}/async_wrap.h +86 -88
- package/src/headers/{16 → 24}/base_object-inl.h +75 -119
- package/src/headers/{16 → 24}/base_object.h +84 -40
- package/src/headers/24/base_object_types.h +74 -0
- package/src/headers/24/bindingdata.h +272 -0
- package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
- package/src/headers/24/blob_serializer_deserializer.h +132 -0
- package/src/headers/{18 → 24}/callback_queue.h +1 -0
- package/src/headers/{18 → 24}/cares_wrap.h +68 -144
- package/src/headers/24/child_process_permission.h +31 -0
- package/src/headers/24/cid.h +127 -0
- package/src/headers/24/cjs_module_lexer_version.h +6 -0
- package/src/headers/24/cleanup_queue-inl.h +36 -0
- package/src/headers/24/cleanup_queue.h +79 -0
- package/src/headers/24/compile_cache.h +113 -0
- package/src/headers/24/cppgc_helpers-inl.h +65 -0
- package/src/headers/24/cppgc_helpers.h +162 -0
- package/src/headers/24/crypto/crypto_aes.h +97 -0
- package/src/headers/24/crypto/crypto_argon2.h +86 -0
- package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
- package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
- package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
- package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
- package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
- package/src/headers/24/crypto/crypto_common.h +48 -0
- package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
- package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
- package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
- package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
- package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
- package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
- package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
- package/src/headers/24/crypto/crypto_kem.h +113 -0
- package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
- package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
- package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
- package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
- package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
- package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
- package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
- package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
- package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
- package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
- package/src/headers/24/crypto/crypto_x509.h +140 -0
- package/src/headers/24/data.h +148 -0
- package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
- package/src/headers/{16 → 24}/debug_utils.h +31 -22
- package/src/headers/24/defs.h +254 -0
- package/src/headers/24/embedded_data.h +17 -0
- package/src/headers/24/encoding_binding.h +60 -0
- package/src/headers/24/endpoint.h +421 -0
- package/src/headers/{16 → 24}/env-inl.h +198 -540
- package/src/headers/24/env.h +1257 -0
- package/src/headers/24/env_properties.h +561 -0
- package/src/headers/24/fs_permission.h +167 -0
- package/src/headers/{16 → 24}/handle_wrap.h +4 -2
- package/src/headers/{16 → 24}/histogram-inl.h +34 -15
- package/src/headers/24/histogram.h +279 -0
- package/src/headers/24/http3.h +44 -0
- package/src/headers/{18 → 24}/inspector_agent.h +23 -2
- package/src/headers/24/inspector_permission.h +31 -0
- package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
- package/src/headers/24/io_agent.h +30 -0
- package/src/headers/{18 → 24}/js_native_api.h +74 -30
- package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
- package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
- package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
- package/src/headers/24/json_parser.h +40 -0
- package/src/headers/{18 → 24}/json_utils.h +19 -8
- package/src/headers/24/logstream.h +81 -0
- package/src/headers/24/main_thread_interface.h +116 -0
- package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
- package/src/headers/{16 → 24}/memory_tracker.h +58 -9
- package/src/headers/24/module_wrap.h +229 -0
- package/src/headers/24/ncrypto.h +1625 -0
- package/src/headers/24/network_agent.h +118 -0
- package/src/headers/24/network_inspector.h +45 -0
- package/src/headers/24/network_resource_manager.h +29 -0
- package/src/headers/{16 → 24}/node.h +560 -72
- package/src/headers/24/node_api.h +269 -0
- package/src/headers/24/node_api_internals.h +46 -0
- package/src/headers/{16 → 24}/node_api_types.h +13 -11
- package/src/headers/24/node_binding.h +163 -0
- package/src/headers/{16 → 24}/node_blob.h +46 -78
- package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
- package/src/headers/{16 → 24}/node_bob.h +2 -6
- package/src/headers/{14 → 24}/node_buffer.h +1 -1
- package/src/headers/24/node_builtins.h +223 -0
- package/src/headers/24/node_config_file.h +65 -0
- package/src/headers/{14 → 24}/node_constants.h +3 -5
- package/src/headers/24/node_context_data.h +168 -0
- package/src/headers/24/node_contextify.h +261 -0
- package/src/headers/{18 → 24}/node_crypto.h +7 -2
- package/src/headers/24/node_debug.h +25 -0
- package/src/headers/24/node_dotenv.h +45 -0
- package/src/headers/{16 → 24}/node_errors.h +146 -32
- package/src/headers/24/node_exit_code.h +54 -0
- package/src/headers/{18 → 24}/node_external_reference.h +44 -22
- package/src/headers/{16 → 24}/node_file-inl.h +156 -50
- package/src/headers/{18 → 24}/node_file.h +129 -15
- package/src/headers/{16 → 24}/node_http2.h +53 -18
- package/src/headers/{14 → 24}/node_http2_state.h +35 -25
- package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
- package/src/headers/{16 → 24}/node_http_common.h +63 -59
- package/src/headers/{18 → 24}/node_i18n.h +5 -18
- package/src/headers/{16 → 24}/node_internals.h +131 -76
- package/src/headers/24/node_json.h +24 -0
- package/src/headers/24/node_large_page.h +34 -0
- package/src/headers/24/node_locks.h +180 -0
- package/src/headers/{14 → 24}/node_main_instance.h +15 -44
- package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
- package/src/headers/{16 → 24}/node_messaging.h +27 -11
- package/src/headers/{16 → 24}/node_metadata.h +44 -2
- package/src/headers/24/node_modules.h +93 -0
- package/src/headers/{16 → 24}/node_options-inl.h +93 -46
- package/src/headers/{16 → 24}/node_options.h +251 -63
- package/src/headers/{16 → 24}/node_perf.h +6 -25
- package/src/headers/{16 → 24}/node_perf_common.h +23 -10
- package/src/headers/24/node_platform.h +286 -0
- package/src/headers/24/node_process.h +111 -0
- package/src/headers/24/node_realm-inl.h +153 -0
- package/src/headers/24/node_realm.h +236 -0
- package/src/headers/{18 → 24}/node_report.h +13 -17
- package/src/headers/{18 → 24}/node_revert.h +3 -3
- package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
- package/src/headers/24/node_sea.h +74 -0
- package/src/headers/24/node_shadow_realm.h +46 -0
- package/src/headers/24/node_snapshot_builder.h +57 -0
- package/src/headers/24/node_snapshotable.h +174 -0
- package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
- package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
- package/src/headers/24/node_sqlite.h +270 -0
- package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
- package/src/headers/24/node_string.h +101 -0
- package/src/headers/24/node_task_runner.h +92 -0
- package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
- package/src/headers/24/node_threadsafe_cow.h +105 -0
- package/src/headers/24/node_union_bytes.h +81 -0
- package/src/headers/24/node_url.h +101 -0
- package/src/headers/24/node_url_pattern.h +118 -0
- package/src/headers/24/node_v8.h +77 -0
- package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
- package/src/headers/{18 → 24}/node_version.h +18 -6
- package/src/headers/24/node_wasi.h +185 -0
- package/src/headers/24/node_wasm_web_api.h +55 -0
- package/src/headers/{18 → 24}/node_watchdog.h +2 -0
- package/src/headers/24/node_webstorage.h +60 -0
- package/src/headers/{16 → 24}/node_worker.h +24 -10
- package/src/headers/24/packet.h +155 -0
- package/src/headers/24/path.h +33 -0
- package/src/headers/24/permission/addon_permission.h +31 -0
- package/src/headers/24/permission/child_process_permission.h +31 -0
- package/src/headers/24/permission/fs_permission.h +167 -0
- package/src/headers/24/permission/inspector_permission.h +31 -0
- package/src/headers/24/permission/permission.h +100 -0
- package/src/headers/24/permission/permission_base.h +65 -0
- package/src/headers/24/permission/wasi_permission.h +31 -0
- package/src/headers/24/permission/worker_permission.h +31 -0
- package/src/headers/24/permission.h +100 -0
- package/src/headers/24/permission_base.h +65 -0
- package/src/headers/24/preferredaddress.h +72 -0
- package/src/headers/24/protocol_helper.h +27 -0
- package/src/headers/24/queue.h +306 -0
- package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
- package/src/headers/{16 → 24}/req_wrap.h +3 -1
- package/src/headers/24/runtime_agent.h +41 -0
- package/src/headers/24/session.h +528 -0
- package/src/headers/24/sessionticket.h +108 -0
- package/src/headers/{18 → 24}/spawn_sync.h +9 -8
- package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
- package/src/headers/{16 → 24}/stream_base.h +43 -19
- package/src/headers/{16 → 24}/stream_pipe.h +7 -4
- package/src/headers/{18 → 24}/stream_wrap.h +2 -3
- package/src/headers/24/streams.h +370 -0
- package/src/headers/{16 → 24}/string_bytes.h +8 -21
- package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
- package/src/headers/{18 → 24}/string_decoder.h +0 -1
- package/src/headers/24/target_agent.h +75 -0
- package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
- package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
- package/src/headers/24/timer_wrap-inl.h +32 -0
- package/src/headers/{16 → 24}/timer_wrap.h +7 -4
- package/src/headers/24/timers.h +75 -0
- package/src/headers/24/tlscontext.h +228 -0
- package/src/headers/24/tokens.h +256 -0
- package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
- package/src/headers/24/traced_value.h +129 -0
- package/src/headers/24/tracing_agent.h +43 -0
- package/src/headers/24/transportparams.h +166 -0
- package/src/headers/{16 → 24}/tty_wrap.h +0 -1
- package/src/headers/{18 → 24}/udp_wrap.h +8 -5
- package/src/headers/24/undici_version.h +6 -0
- package/src/headers/{16 → 24}/util-inl.h +267 -131
- package/src/headers/{16 → 24}/util.h +338 -146
- package/src/headers/24/v8-external-memory-accounter.h +60 -0
- package/src/headers/24/v8-fast-api-calls.h +819 -0
- package/src/headers/24/v8-inspector.h +426 -0
- package/src/headers/24/wasi_permission.h +31 -0
- package/src/headers/24/worker_agent.h +40 -0
- package/src/headers/24/worker_inspector.h +124 -0
- package/src/headers/24/worker_permission.h +31 -0
- package/src/headers/24/zlib_version.h +6 -0
- package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
- package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
- package/dist/bindings/cws_darwin_x64_node83.node +0 -0
- package/dist/bindings/cws_darwin_x64_node93.node +0 -0
- package/dist/bindings/cws_linux_arm64_node83.node +0 -0
- package/dist/bindings/cws_linux_arm64_node93.node +0 -0
- package/dist/bindings/cws_linux_x64_node83.node +0 -0
- package/dist/bindings/cws_linux_x64_node93.node +0 -0
- package/src/headers/14/aliased_buffer.h +0 -263
- package/src/headers/14/allocated_buffer-inl.h +0 -110
- package/src/headers/14/allocated_buffer.h +0 -73
- package/src/headers/14/async_wrap.h +0 -230
- package/src/headers/14/base64.h +0 -183
- package/src/headers/14/base_object-inl.h +0 -371
- package/src/headers/14/base_object.h +0 -281
- package/src/headers/14/callback_queue-inl.h +0 -97
- package/src/headers/14/callback_queue.h +0 -78
- package/src/headers/14/debug_utils.h +0 -181
- package/src/headers/14/env.h +0 -1388
- package/src/headers/14/handle_wrap.h +0 -117
- package/src/headers/14/histogram-inl.h +0 -83
- package/src/headers/14/histogram.h +0 -98
- package/src/headers/14/inspector_agent.h +0 -149
- package/src/headers/14/inspector_profiler.h +0 -137
- package/src/headers/14/js_native_api.h +0 -544
- package/src/headers/14/js_native_api_types.h +0 -143
- package/src/headers/14/js_native_api_v8.h +0 -301
- package/src/headers/14/js_native_api_v8_internals.h +0 -38
- package/src/headers/14/json_utils.h +0 -161
- package/src/headers/14/memory_tracker-inl.h +0 -355
- package/src/headers/14/module_wrap.h +0 -99
- package/src/headers/14/node.h +0 -1032
- package/src/headers/14/node_api.h +0 -255
- package/src/headers/14/node_api_types.h +0 -44
- package/src/headers/14/node_binding.h +0 -99
- package/src/headers/14/node_context_data.h +0 -44
- package/src/headers/14/node_contextify.h +0 -161
- package/src/headers/14/node_crypto.h +0 -865
- package/src/headers/14/node_crypto_bio.h +0 -195
- package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
- package/src/headers/14/node_crypto_clienthello.h +0 -132
- package/src/headers/14/node_crypto_common.h +0 -138
- package/src/headers/14/node_crypto_groups.h +0 -415
- package/src/headers/14/node_dtrace.h +0 -86
- package/src/headers/14/node_errors.h +0 -214
- package/src/headers/14/node_file-inl.h +0 -306
- package/src/headers/14/node_file.h +0 -417
- package/src/headers/14/node_http2.h +0 -1191
- package/src/headers/14/node_http_common-inl.h +0 -194
- package/src/headers/14/node_http_common.h +0 -529
- package/src/headers/14/node_i18n.h +0 -144
- package/src/headers/14/node_internals.h +0 -405
- package/src/headers/14/node_mem.h +0 -45
- package/src/headers/14/node_messaging.h +0 -303
- package/src/headers/14/node_metadata.h +0 -109
- package/src/headers/14/node_mutex.h +0 -247
- package/src/headers/14/node_native_module.h +0 -101
- package/src/headers/14/node_native_module_env.h +0 -66
- package/src/headers/14/node_options-inl.h +0 -451
- package/src/headers/14/node_options.h +0 -481
- package/src/headers/14/node_perf.h +0 -181
- package/src/headers/14/node_perf_common.h +0 -97
- package/src/headers/14/node_platform.h +0 -189
- package/src/headers/14/node_process.h +0 -40
- package/src/headers/14/node_report.h +0 -47
- package/src/headers/14/node_revert.h +0 -72
- package/src/headers/14/node_root_certs.h +0 -3458
- package/src/headers/14/node_sockaddr-inl.h +0 -170
- package/src/headers/14/node_sockaddr.h +0 -123
- package/src/headers/14/node_stat_watcher.h +0 -70
- package/src/headers/14/node_union_bytes.h +0 -103
- package/src/headers/14/node_url.h +0 -188
- package/src/headers/14/node_version.h +0 -98
- package/src/headers/14/node_wasi.h +0 -108
- package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
- package/src/headers/14/node_win32_etw_provider.h +0 -99
- package/src/headers/14/node_worker.h +0 -141
- package/src/headers/14/pipe_wrap.h +0 -78
- package/src/headers/14/req_wrap-inl.h +0 -170
- package/src/headers/14/req_wrap.h +0 -77
- package/src/headers/14/stream_base-inl.h +0 -275
- package/src/headers/14/stream_base.h +0 -434
- package/src/headers/14/stream_pipe.h +0 -73
- package/src/headers/14/stream_wrap.h +0 -130
- package/src/headers/14/string_bytes.h +0 -129
- package/src/headers/14/string_decoder.h +0 -50
- package/src/headers/14/string_search.h +0 -638
- package/src/headers/14/tcp_wrap.h +0 -101
- package/src/headers/14/tls_wrap.h +0 -222
- package/src/headers/14/tracing/agent.h +0 -195
- package/src/headers/14/tracing/traced_value.h +0 -70
- package/src/headers/14/tty_wrap.h +0 -64
- package/src/headers/14/udp_wrap.h +0 -227
- package/src/headers/14/util-inl.h +0 -566
- package/src/headers/14/util.h +0 -804
- package/src/headers/14/v8abbr.h +0 -124
- package/src/headers/16/aliased_buffer.h +0 -315
- package/src/headers/16/allocated_buffer-inl.h +0 -110
- package/src/headers/16/allocated_buffer.h +0 -73
- package/src/headers/16/async_wrap-inl.h +0 -94
- package/src/headers/16/base64-inl.h +0 -189
- package/src/headers/16/base64.h +0 -69
- package/src/headers/16/crypto/crypto_aes.h +0 -89
- package/src/headers/16/crypto/crypto_cipher.h +0 -286
- package/src/headers/16/crypto/crypto_common.h +0 -187
- package/src/headers/16/crypto/crypto_dh.h +0 -157
- package/src/headers/16/crypto/crypto_dsa.h +0 -76
- package/src/headers/16/crypto/crypto_ec.h +0 -169
- package/src/headers/16/crypto/crypto_groups.h +0 -415
- package/src/headers/16/crypto/crypto_hash.h +0 -89
- package/src/headers/16/crypto/crypto_hkdf.h +0 -66
- package/src/headers/16/crypto/crypto_hmac.h +0 -94
- package/src/headers/16/crypto/crypto_keygen.h +0 -301
- package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
- package/src/headers/16/crypto/crypto_random.h +0 -130
- package/src/headers/16/crypto/crypto_rsa.h +0 -141
- package/src/headers/16/crypto/crypto_scrypt.h +0 -87
- package/src/headers/16/crypto/crypto_sig.h +0 -167
- package/src/headers/16/crypto/crypto_spkac.h +0 -20
- package/src/headers/16/crypto/crypto_timing.h +0 -20
- package/src/headers/16/crypto/crypto_x509.h +0 -141
- package/src/headers/16/env.h +0 -1629
- package/src/headers/16/histogram.h +0 -216
- package/src/headers/16/js_native_api.h +0 -561
- package/src/headers/16/js_native_api_v8.h +0 -451
- package/src/headers/16/node.d +0 -315
- package/src/headers/16/node.stp +0 -146
- package/src/headers/16/node_api.h +0 -275
- package/src/headers/16/node_api_internals.h +0 -30
- package/src/headers/16/node_binding.h +0 -99
- package/src/headers/16/node_buffer.h +0 -92
- package/src/headers/16/node_constants.h +0 -84
- package/src/headers/16/node_context_data.h +0 -44
- package/src/headers/16/node_contextify.h +0 -196
- package/src/headers/16/node_dtrace.h +0 -86
- package/src/headers/16/node_external_reference.h +0 -129
- package/src/headers/16/node_main_instance.h +0 -103
- package/src/headers/16/node_native_module.h +0 -101
- package/src/headers/16/node_native_module_env.h +0 -68
- package/src/headers/16/node_platform.h +0 -192
- package/src/headers/16/node_process.h +0 -43
- package/src/headers/16/node_provider.d +0 -80
- package/src/headers/16/node_snapshotable.h +0 -137
- package/src/headers/16/node_union_bytes.h +0 -103
- package/src/headers/16/node_url.h +0 -205
- package/src/headers/16/node_v8.h +0 -41
- package/src/headers/16/node_v8_platform-inl.h +0 -194
- package/src/headers/16/node_wasi.h +0 -108
- package/src/headers/16/node_watchdog.h +0 -152
- package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/16/node_win32_etw_provider.h +0 -99
- package/src/headers/16/spawn_sync.h +0 -242
- package/src/headers/16/string_decoder-inl.h +0 -37
- package/src/headers/16/string_search.h +0 -638
- package/src/headers/16/threadpoolwork-inl.h +0 -57
- package/src/headers/16/tracing/node_trace_buffer.h +0 -83
- package/src/headers/16/tracing/node_trace_writer.h +0 -75
- package/src/headers/16/tracing/trace_event.h +0 -720
- package/src/headers/16/tracing/traced_value.h +0 -70
- package/src/headers/16/v8abbr.h +0 -123
- package/src/headers/16/v8ustack.d +0 -695
- package/src/headers/18/aliased_buffer.h +0 -315
- package/src/headers/18/aliased_struct-inl.h +0 -54
- package/src/headers/18/aliased_struct.h +0 -63
- package/src/headers/18/base64-inl.h +0 -189
- package/src/headers/18/base64.h +0 -69
- package/src/headers/18/connect_wrap.h +0 -26
- package/src/headers/18/connection_wrap.h +0 -30
- package/src/headers/18/crypto/crypto_aes.h +0 -89
- package/src/headers/18/crypto/crypto_bio.h +0 -194
- package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
- package/src/headers/18/crypto/crypto_common.h +0 -151
- package/src/headers/18/crypto/crypto_groups.h +0 -415
- package/src/headers/18/crypto/crypto_x509.h +0 -143
- package/src/headers/18/debug_utils-inl.h +0 -223
- package/src/headers/18/diagnosticfilename-inl.h +0 -33
- package/src/headers/18/env-inl.h +0 -1308
- package/src/headers/18/env.h +0 -1667
- package/src/headers/18/inspector_io.h +0 -78
- package/src/headers/18/inspector_socket.h +0 -60
- package/src/headers/18/inspector_socket_server.h +0 -110
- package/src/headers/18/js_stream.h +0 -52
- package/src/headers/18/memory_tracker.h +0 -284
- package/src/headers/18/module_wrap.h +0 -116
- package/src/headers/18/node_binding.h +0 -99
- package/src/headers/18/node_context_data.h +0 -44
- package/src/headers/18/node_contextify.h +0 -196
- package/src/headers/18/node_dir.h +0 -52
- package/src/headers/18/node_dtrace.h +0 -86
- package/src/headers/18/node_http2_state.h +0 -149
- package/src/headers/18/node_mem-inl.h +0 -112
- package/src/headers/18/node_native_module.h +0 -109
- package/src/headers/18/node_native_module_env.h +0 -71
- package/src/headers/18/node_object_wrap.h +0 -132
- package/src/headers/18/node_snapshot_builder.h +0 -43
- package/src/headers/18/node_snapshotable.h +0 -130
- package/src/headers/18/node_union_bytes.h +0 -103
- package/src/headers/18/node_url.h +0 -205
- package/src/headers/18/node_v8.h +0 -41
- package/src/headers/18/node_wasi.h +0 -108
- package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
- package/src/headers/18/node_win32_etw_provider.h +0 -99
- package/src/headers/18/string_search.h +0 -638
- package/src/headers/18/tracing/node_trace_buffer.h +0 -83
- package/src/headers/18/tracing/node_trace_writer.h +0 -75
- package/src/headers/18/tracing/trace_event_common.h +0 -1109
- package/src/headers/18/tracing/traced_value.h +0 -70
- package/src/headers/18/v8abbr.h +0 -123
- /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
- /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
- /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
- /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
- /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
- /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
- /package/src/headers/{14 → 22}/inspector_io.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
- /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
- /package/src/headers/{14 → 22}/js_stream.h +0 -0
- /package/src/headers/{14 → 22}/node_dir.h +0 -0
- /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
- /package/src/headers/{16 → 22}/node_mem.h +0 -0
- /package/src/headers/{16 → 22}/node_mutex.h +0 -0
- /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
- /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
- /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
- /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
- /package/src/headers/{18 → 22}/req_wrap.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
- /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
- /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
- /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
- /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
- /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
- /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
- /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
- /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
- /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
- /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
- /package/src/headers/{16 → 24}/inspector_io.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
- /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
- /package/src/headers/{16 → 24}/js_stream.h +0 -0
- /package/src/headers/{16 → 24}/node_dir.h +0 -0
- /package/src/headers/{18 → 24}/node_mem.h +0 -0
- /package/src/headers/{18 → 24}/node_mutex.h +0 -0
- /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
- /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
- /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
- /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
- /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
package/src/headers/14/base64.h
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
#ifndef SRC_BASE64_H_
|
|
2
|
-
#define SRC_BASE64_H_
|
|
3
|
-
|
|
4
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
5
|
-
|
|
6
|
-
#include "util.h"
|
|
7
|
-
|
|
8
|
-
#include <cstddef>
|
|
9
|
-
#include <cstdint>
|
|
10
|
-
|
|
11
|
-
namespace node {
|
|
12
|
-
//// Base 64 ////
|
|
13
|
-
static inline constexpr size_t base64_encoded_size(size_t size) {
|
|
14
|
-
return ((size + 2) / 3 * 4);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// Doesn't check for padding at the end. Can be 1-2 bytes over.
|
|
18
|
-
static inline constexpr size_t base64_decoded_size_fast(size_t size) {
|
|
19
|
-
// 1-byte input cannot be decoded
|
|
20
|
-
return size > 1 ? (size / 4) * 3 + (size % 4 + 1) / 2 : 0;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
template <typename TypeName>
|
|
24
|
-
size_t base64_decoded_size(const TypeName* src, size_t size) {
|
|
25
|
-
// 1-byte input cannot be decoded
|
|
26
|
-
if (size < 2)
|
|
27
|
-
return 0;
|
|
28
|
-
|
|
29
|
-
if (src[size - 1] == '=') {
|
|
30
|
-
size--;
|
|
31
|
-
if (src[size - 1] == '=')
|
|
32
|
-
size--;
|
|
33
|
-
}
|
|
34
|
-
return base64_decoded_size_fast(size);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
extern const int8_t unbase64_table[256];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
inline static int8_t unbase64(uint8_t x) {
|
|
42
|
-
return unbase64_table[x];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
template <typename TypeName>
|
|
47
|
-
bool base64_decode_group_slow(char* const dst, const size_t dstlen,
|
|
48
|
-
const TypeName* const src, const size_t srclen,
|
|
49
|
-
size_t* const i, size_t* const k) {
|
|
50
|
-
uint8_t hi;
|
|
51
|
-
uint8_t lo;
|
|
52
|
-
#define V(expr) \
|
|
53
|
-
for (;;) { \
|
|
54
|
-
const uint8_t c = src[*i]; \
|
|
55
|
-
lo = unbase64(c); \
|
|
56
|
-
*i += 1; \
|
|
57
|
-
if (lo < 64) \
|
|
58
|
-
break; /* Legal character. */ \
|
|
59
|
-
if (c == '=' || *i >= srclen) \
|
|
60
|
-
return false; /* Stop decoding. */ \
|
|
61
|
-
} \
|
|
62
|
-
expr; \
|
|
63
|
-
if (*i >= srclen) \
|
|
64
|
-
return false; \
|
|
65
|
-
if (*k >= dstlen) \
|
|
66
|
-
return false; \
|
|
67
|
-
hi = lo;
|
|
68
|
-
V(/* Nothing. */);
|
|
69
|
-
V(dst[(*k)++] = ((hi & 0x3F) << 2) | ((lo & 0x30) >> 4));
|
|
70
|
-
V(dst[(*k)++] = ((hi & 0x0F) << 4) | ((lo & 0x3C) >> 2));
|
|
71
|
-
V(dst[(*k)++] = ((hi & 0x03) << 6) | ((lo & 0x3F) >> 0));
|
|
72
|
-
#undef V
|
|
73
|
-
return true; // Continue decoding.
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
template <typename TypeName>
|
|
78
|
-
size_t base64_decode_fast(char* const dst, const size_t dstlen,
|
|
79
|
-
const TypeName* const src, const size_t srclen,
|
|
80
|
-
const size_t decoded_size) {
|
|
81
|
-
const size_t available = dstlen < decoded_size ? dstlen : decoded_size;
|
|
82
|
-
const size_t max_k = available / 3 * 3;
|
|
83
|
-
size_t max_i = srclen / 4 * 4;
|
|
84
|
-
size_t i = 0;
|
|
85
|
-
size_t k = 0;
|
|
86
|
-
while (i < max_i && k < max_k) {
|
|
87
|
-
const uint32_t v =
|
|
88
|
-
unbase64(src[i + 0]) << 24 |
|
|
89
|
-
unbase64(src[i + 1]) << 16 |
|
|
90
|
-
unbase64(src[i + 2]) << 8 |
|
|
91
|
-
unbase64(src[i + 3]);
|
|
92
|
-
// If MSB is set, input contains whitespace or is not valid base64.
|
|
93
|
-
if (v & 0x80808080) {
|
|
94
|
-
if (!base64_decode_group_slow(dst, dstlen, src, srclen, &i, &k))
|
|
95
|
-
return k;
|
|
96
|
-
max_i = i + (srclen - i) / 4 * 4; // Align max_i again.
|
|
97
|
-
} else {
|
|
98
|
-
dst[k + 0] = ((v >> 22) & 0xFC) | ((v >> 20) & 0x03);
|
|
99
|
-
dst[k + 1] = ((v >> 12) & 0xF0) | ((v >> 10) & 0x0F);
|
|
100
|
-
dst[k + 2] = ((v >> 2) & 0xC0) | ((v >> 0) & 0x3F);
|
|
101
|
-
i += 4;
|
|
102
|
-
k += 3;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (i < srclen && k < dstlen) {
|
|
106
|
-
base64_decode_group_slow(dst, dstlen, src, srclen, &i, &k);
|
|
107
|
-
}
|
|
108
|
-
return k;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
template <typename TypeName>
|
|
113
|
-
size_t base64_decode(char* const dst, const size_t dstlen,
|
|
114
|
-
const TypeName* const src, const size_t srclen) {
|
|
115
|
-
const size_t decoded_size = base64_decoded_size(src, srclen);
|
|
116
|
-
return base64_decode_fast(dst, dstlen, src, srclen, decoded_size);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
static size_t base64_encode(const char* src,
|
|
120
|
-
size_t slen,
|
|
121
|
-
char* dst,
|
|
122
|
-
size_t dlen) {
|
|
123
|
-
// We know how much we'll write, just make sure that there's space.
|
|
124
|
-
CHECK(dlen >= base64_encoded_size(slen) &&
|
|
125
|
-
"not enough space provided for base64 encode");
|
|
126
|
-
|
|
127
|
-
dlen = base64_encoded_size(slen);
|
|
128
|
-
|
|
129
|
-
unsigned a;
|
|
130
|
-
unsigned b;
|
|
131
|
-
unsigned c;
|
|
132
|
-
unsigned i;
|
|
133
|
-
unsigned k;
|
|
134
|
-
unsigned n;
|
|
135
|
-
|
|
136
|
-
static const char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
137
|
-
"abcdefghijklmnopqrstuvwxyz"
|
|
138
|
-
"0123456789+/";
|
|
139
|
-
|
|
140
|
-
i = 0;
|
|
141
|
-
k = 0;
|
|
142
|
-
n = slen / 3 * 3;
|
|
143
|
-
|
|
144
|
-
while (i < n) {
|
|
145
|
-
a = src[i + 0] & 0xff;
|
|
146
|
-
b = src[i + 1] & 0xff;
|
|
147
|
-
c = src[i + 2] & 0xff;
|
|
148
|
-
|
|
149
|
-
dst[k + 0] = table[a >> 2];
|
|
150
|
-
dst[k + 1] = table[((a & 3) << 4) | (b >> 4)];
|
|
151
|
-
dst[k + 2] = table[((b & 0x0f) << 2) | (c >> 6)];
|
|
152
|
-
dst[k + 3] = table[c & 0x3f];
|
|
153
|
-
|
|
154
|
-
i += 3;
|
|
155
|
-
k += 4;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
switch (slen - n) {
|
|
159
|
-
case 1:
|
|
160
|
-
a = src[i + 0] & 0xff;
|
|
161
|
-
dst[k + 0] = table[a >> 2];
|
|
162
|
-
dst[k + 1] = table[(a & 3) << 4];
|
|
163
|
-
dst[k + 2] = '=';
|
|
164
|
-
dst[k + 3] = '=';
|
|
165
|
-
break;
|
|
166
|
-
case 2:
|
|
167
|
-
a = src[i + 0] & 0xff;
|
|
168
|
-
b = src[i + 1] & 0xff;
|
|
169
|
-
dst[k + 0] = table[a >> 2];
|
|
170
|
-
dst[k + 1] = table[((a & 3) << 4) | (b >> 4)];
|
|
171
|
-
dst[k + 2] = table[(b & 0x0f) << 2];
|
|
172
|
-
dst[k + 3] = '=';
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
return dlen;
|
|
177
|
-
}
|
|
178
|
-
} // namespace node
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
182
|
-
|
|
183
|
-
#endif // SRC_BASE64_H_
|
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
// Copyright Joyent, Inc. and other Node contributors.
|
|
2
|
-
//
|
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
4
|
-
// copy of this software and associated documentation files (the
|
|
5
|
-
// "Software"), to deal in the Software without restriction, including
|
|
6
|
-
// without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
-
// distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
8
|
-
// persons to whom the Software is furnished to do so, subject to the
|
|
9
|
-
// following conditions:
|
|
10
|
-
//
|
|
11
|
-
// The above copyright notice and this permission notice shall be included
|
|
12
|
-
// in all copies or substantial portions of the Software.
|
|
13
|
-
//
|
|
14
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
15
|
-
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
-
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
17
|
-
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
18
|
-
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
19
|
-
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
20
|
-
// USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
21
|
-
|
|
22
|
-
#ifndef SRC_BASE_OBJECT_INL_H_
|
|
23
|
-
#define SRC_BASE_OBJECT_INL_H_
|
|
24
|
-
|
|
25
|
-
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
26
|
-
|
|
27
|
-
#include "base_object.h"
|
|
28
|
-
#include "env-inl.h"
|
|
29
|
-
#include "util.h"
|
|
30
|
-
|
|
31
|
-
#if (__GNUC__ >= 8) && !defined(__clang__)
|
|
32
|
-
#pragma GCC diagnostic push
|
|
33
|
-
#pragma GCC diagnostic ignored "-Wcast-function-type"
|
|
34
|
-
#endif
|
|
35
|
-
#include "v8.h"
|
|
36
|
-
#if (__GNUC__ >= 8) && !defined(__clang__)
|
|
37
|
-
#pragma GCC diagnostic pop
|
|
38
|
-
#endif
|
|
39
|
-
|
|
40
|
-
namespace node {
|
|
41
|
-
|
|
42
|
-
BaseObject::BaseObject(Environment* env, v8::Local<v8::Object> object)
|
|
43
|
-
: persistent_handle_(env->isolate(), object), env_(env) {
|
|
44
|
-
CHECK_EQ(false, object.IsEmpty());
|
|
45
|
-
CHECK_GT(object->InternalFieldCount(), 0);
|
|
46
|
-
object->SetAlignedPointerInInternalField(
|
|
47
|
-
BaseObject::kSlot,
|
|
48
|
-
static_cast<void*>(this));
|
|
49
|
-
env->AddCleanupHook(DeleteMe, static_cast<void*>(this));
|
|
50
|
-
env->modify_base_object_count(1);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
BaseObject::~BaseObject() {
|
|
54
|
-
env()->modify_base_object_count(-1);
|
|
55
|
-
env()->RemoveCleanupHook(DeleteMe, static_cast<void*>(this));
|
|
56
|
-
|
|
57
|
-
if (UNLIKELY(has_pointer_data())) {
|
|
58
|
-
PointerData* metadata = pointer_data();
|
|
59
|
-
CHECK_EQ(metadata->strong_ptr_count, 0);
|
|
60
|
-
metadata->self = nullptr;
|
|
61
|
-
if (metadata->weak_ptr_count == 0)
|
|
62
|
-
delete metadata;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (persistent_handle_.IsEmpty()) {
|
|
66
|
-
// This most likely happened because the weak callback below cleared it.
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
{
|
|
71
|
-
v8::HandleScope handle_scope(env()->isolate());
|
|
72
|
-
object()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
void BaseObject::Detach() {
|
|
77
|
-
CHECK_GT(pointer_data()->strong_ptr_count, 0);
|
|
78
|
-
pointer_data()->is_detached = true;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
v8::Global<v8::Object>& BaseObject::persistent() {
|
|
82
|
-
return persistent_handle_;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
v8::Local<v8::Object> BaseObject::object() const {
|
|
87
|
-
return PersistentToLocal::Default(env()->isolate(), persistent_handle_);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
v8::Local<v8::Object> BaseObject::object(v8::Isolate* isolate) const {
|
|
91
|
-
v8::Local<v8::Object> handle = object();
|
|
92
|
-
|
|
93
|
-
DCHECK_EQ(handle->CreationContext()->GetIsolate(), isolate);
|
|
94
|
-
DCHECK_EQ(env()->isolate(), isolate);
|
|
95
|
-
|
|
96
|
-
return handle;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
Environment* BaseObject::env() const {
|
|
100
|
-
return env_;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
BaseObject* BaseObject::FromJSObject(v8::Local<v8::Value> value) {
|
|
104
|
-
v8::Local<v8::Object> obj = value.As<v8::Object>();
|
|
105
|
-
DCHECK_GE(obj->InternalFieldCount(), BaseObject::kSlot);
|
|
106
|
-
return static_cast<BaseObject*>(
|
|
107
|
-
obj->GetAlignedPointerFromInternalField(BaseObject::kSlot));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
template <typename T>
|
|
112
|
-
T* BaseObject::FromJSObject(v8::Local<v8::Value> object) {
|
|
113
|
-
return static_cast<T*>(FromJSObject(object));
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
void BaseObject::MakeWeak() {
|
|
118
|
-
if (has_pointer_data()) {
|
|
119
|
-
pointer_data()->wants_weak_jsobj = true;
|
|
120
|
-
if (pointer_data()->strong_ptr_count > 0) return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
persistent_handle_.SetWeak(
|
|
124
|
-
this,
|
|
125
|
-
[](const v8::WeakCallbackInfo<BaseObject>& data) {
|
|
126
|
-
BaseObject* obj = data.GetParameter();
|
|
127
|
-
// Clear the persistent handle so that ~BaseObject() doesn't attempt
|
|
128
|
-
// to mess with internal fields, since the JS object may have
|
|
129
|
-
// transitioned into an invalid state.
|
|
130
|
-
// Refs: https://github.com/nodejs/node/issues/18897
|
|
131
|
-
obj->persistent_handle_.Reset();
|
|
132
|
-
CHECK_IMPLIES(obj->has_pointer_data(),
|
|
133
|
-
obj->pointer_data()->strong_ptr_count == 0);
|
|
134
|
-
obj->OnGCCollect();
|
|
135
|
-
}, v8::WeakCallbackType::kParameter);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
void BaseObject::OnGCCollect() {
|
|
139
|
-
delete this;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
void BaseObject::ClearWeak() {
|
|
143
|
-
if (has_pointer_data())
|
|
144
|
-
pointer_data()->wants_weak_jsobj = false;
|
|
145
|
-
|
|
146
|
-
persistent_handle_.ClearWeak();
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
v8::Local<v8::FunctionTemplate>
|
|
151
|
-
BaseObject::MakeLazilyInitializedJSTemplate(Environment* env) {
|
|
152
|
-
auto constructor = [](const v8::FunctionCallbackInfo<v8::Value>& args) {
|
|
153
|
-
DCHECK(args.IsConstructCall());
|
|
154
|
-
DCHECK_GT(args.This()->InternalFieldCount(), 0);
|
|
155
|
-
args.This()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr);
|
|
156
|
-
};
|
|
157
|
-
|
|
158
|
-
v8::Local<v8::FunctionTemplate> t = env->NewFunctionTemplate(constructor);
|
|
159
|
-
t->Inherit(BaseObject::GetConstructorTemplate(env));
|
|
160
|
-
t->InstanceTemplate()->SetInternalFieldCount(
|
|
161
|
-
BaseObject::kInternalFieldCount);
|
|
162
|
-
return t;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
template <int Field>
|
|
166
|
-
void BaseObject::InternalFieldGet(
|
|
167
|
-
v8::Local<v8::String> property,
|
|
168
|
-
const v8::PropertyCallbackInfo<v8::Value>& info) {
|
|
169
|
-
info.GetReturnValue().Set(info.This()->GetInternalField(Field));
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
template <int Field, bool (v8::Value::* typecheck)() const>
|
|
173
|
-
void BaseObject::InternalFieldSet(v8::Local<v8::String> property,
|
|
174
|
-
v8::Local<v8::Value> value,
|
|
175
|
-
const v8::PropertyCallbackInfo<void>& info) {
|
|
176
|
-
// This could be e.g. value->IsFunction().
|
|
177
|
-
CHECK(((*value)->*typecheck)());
|
|
178
|
-
info.This()->SetInternalField(Field, value);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
bool BaseObject::has_pointer_data() const {
|
|
182
|
-
return pointer_data_ != nullptr;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
BaseObject::PointerData* BaseObject::pointer_data() {
|
|
186
|
-
if (!has_pointer_data()) {
|
|
187
|
-
PointerData* metadata = new PointerData();
|
|
188
|
-
metadata->wants_weak_jsobj = persistent_handle_.IsWeak();
|
|
189
|
-
metadata->self = this;
|
|
190
|
-
pointer_data_ = metadata;
|
|
191
|
-
}
|
|
192
|
-
CHECK(has_pointer_data());
|
|
193
|
-
return pointer_data_;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
void BaseObject::decrease_refcount() {
|
|
197
|
-
CHECK(has_pointer_data());
|
|
198
|
-
PointerData* metadata = pointer_data();
|
|
199
|
-
CHECK_GT(metadata->strong_ptr_count, 0);
|
|
200
|
-
unsigned int new_refcount = --metadata->strong_ptr_count;
|
|
201
|
-
if (new_refcount == 0) {
|
|
202
|
-
if (metadata->is_detached) {
|
|
203
|
-
delete this;
|
|
204
|
-
} else if (metadata->wants_weak_jsobj && !persistent_handle_.IsEmpty()) {
|
|
205
|
-
MakeWeak();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
void BaseObject::increase_refcount() {
|
|
211
|
-
unsigned int prev_refcount = pointer_data()->strong_ptr_count++;
|
|
212
|
-
if (prev_refcount == 0 && !persistent_handle_.IsEmpty())
|
|
213
|
-
persistent_handle_.ClearWeak();
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
template <typename T, bool kIsWeak>
|
|
217
|
-
BaseObject::PointerData*
|
|
218
|
-
BaseObjectPtrImpl<T, kIsWeak>::pointer_data() const {
|
|
219
|
-
if (kIsWeak) {
|
|
220
|
-
return data_.pointer_data;
|
|
221
|
-
}
|
|
222
|
-
if (get_base_object() == nullptr) {
|
|
223
|
-
return nullptr;
|
|
224
|
-
}
|
|
225
|
-
return get_base_object()->pointer_data();
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
template <typename T, bool kIsWeak>
|
|
229
|
-
BaseObject* BaseObjectPtrImpl<T, kIsWeak>::get_base_object() const {
|
|
230
|
-
if (kIsWeak) {
|
|
231
|
-
if (pointer_data() == nullptr) {
|
|
232
|
-
return nullptr;
|
|
233
|
-
}
|
|
234
|
-
return pointer_data()->self;
|
|
235
|
-
}
|
|
236
|
-
return data_.target;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
template <typename T, bool kIsWeak>
|
|
240
|
-
BaseObjectPtrImpl<T, kIsWeak>::~BaseObjectPtrImpl() {
|
|
241
|
-
if (kIsWeak) {
|
|
242
|
-
if (pointer_data() != nullptr &&
|
|
243
|
-
--pointer_data()->weak_ptr_count == 0 &&
|
|
244
|
-
pointer_data()->self == nullptr) {
|
|
245
|
-
delete pointer_data();
|
|
246
|
-
}
|
|
247
|
-
} else if (get() != nullptr) {
|
|
248
|
-
get()->decrease_refcount();
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
template <typename T, bool kIsWeak>
|
|
253
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl() {
|
|
254
|
-
data_.target = nullptr;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
template <typename T, bool kIsWeak>
|
|
258
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(T* target)
|
|
259
|
-
: BaseObjectPtrImpl() {
|
|
260
|
-
if (target == nullptr) return;
|
|
261
|
-
if (kIsWeak) {
|
|
262
|
-
data_.pointer_data = target->pointer_data();
|
|
263
|
-
CHECK_NOT_NULL(pointer_data());
|
|
264
|
-
pointer_data()->weak_ptr_count++;
|
|
265
|
-
} else {
|
|
266
|
-
data_.target = target;
|
|
267
|
-
CHECK_NOT_NULL(pointer_data());
|
|
268
|
-
get()->increase_refcount();
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
template <typename T, bool kIsWeak>
|
|
273
|
-
template <typename U, bool kW>
|
|
274
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(
|
|
275
|
-
const BaseObjectPtrImpl<U, kW>& other)
|
|
276
|
-
: BaseObjectPtrImpl(other.get()) {}
|
|
277
|
-
|
|
278
|
-
template <typename T, bool kIsWeak>
|
|
279
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(const BaseObjectPtrImpl& other)
|
|
280
|
-
: BaseObjectPtrImpl(other.get()) {}
|
|
281
|
-
|
|
282
|
-
template <typename T, bool kIsWeak>
|
|
283
|
-
template <typename U, bool kW>
|
|
284
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
285
|
-
const BaseObjectPtrImpl<U, kW>& other) {
|
|
286
|
-
if (other.get() == get()) return *this;
|
|
287
|
-
this->~BaseObjectPtrImpl();
|
|
288
|
-
return *new (this) BaseObjectPtrImpl(other);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
template <typename T, bool kIsWeak>
|
|
292
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
293
|
-
const BaseObjectPtrImpl& other) {
|
|
294
|
-
if (other.get() == get()) return *this;
|
|
295
|
-
this->~BaseObjectPtrImpl();
|
|
296
|
-
return *new (this) BaseObjectPtrImpl(other);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
template <typename T, bool kIsWeak>
|
|
300
|
-
BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(BaseObjectPtrImpl&& other)
|
|
301
|
-
: data_(other.data_) {
|
|
302
|
-
if (kIsWeak)
|
|
303
|
-
other.data_.target = nullptr;
|
|
304
|
-
else
|
|
305
|
-
other.data_.pointer_data = nullptr;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
template <typename T, bool kIsWeak>
|
|
309
|
-
BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
|
|
310
|
-
BaseObjectPtrImpl&& other) {
|
|
311
|
-
if (&other == this) return *this;
|
|
312
|
-
this->~BaseObjectPtrImpl();
|
|
313
|
-
return *new (this) BaseObjectPtrImpl(std::move(other));
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
template <typename T, bool kIsWeak>
|
|
317
|
-
void BaseObjectPtrImpl<T, kIsWeak>::reset(T* ptr) {
|
|
318
|
-
*this = BaseObjectPtrImpl(ptr);
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
template <typename T, bool kIsWeak>
|
|
322
|
-
T* BaseObjectPtrImpl<T, kIsWeak>::get() const {
|
|
323
|
-
return static_cast<T*>(get_base_object());
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
template <typename T, bool kIsWeak>
|
|
327
|
-
T& BaseObjectPtrImpl<T, kIsWeak>::operator*() const {
|
|
328
|
-
return *get();
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
template <typename T, bool kIsWeak>
|
|
332
|
-
T* BaseObjectPtrImpl<T, kIsWeak>::operator->() const {
|
|
333
|
-
return get();
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
template <typename T, bool kIsWeak>
|
|
337
|
-
BaseObjectPtrImpl<T, kIsWeak>::operator bool() const {
|
|
338
|
-
return get() != nullptr;
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
template <typename T, bool kIsWeak>
|
|
342
|
-
template <typename U, bool kW>
|
|
343
|
-
bool BaseObjectPtrImpl<T, kIsWeak>::operator ==(
|
|
344
|
-
const BaseObjectPtrImpl<U, kW>& other) const {
|
|
345
|
-
return get() == other.get();
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
template <typename T, bool kIsWeak>
|
|
349
|
-
template <typename U, bool kW>
|
|
350
|
-
bool BaseObjectPtrImpl<T, kIsWeak>::operator !=(
|
|
351
|
-
const BaseObjectPtrImpl<U, kW>& other) const {
|
|
352
|
-
return get() != other.get();
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
template <typename T, typename... Args>
|
|
356
|
-
BaseObjectPtr<T> MakeBaseObject(Args&&... args) {
|
|
357
|
-
return BaseObjectPtr<T>(new T(std::forward<Args>(args)...));
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
template <typename T, typename... Args>
|
|
361
|
-
BaseObjectPtr<T> MakeDetachedBaseObject(Args&&... args) {
|
|
362
|
-
BaseObjectPtr<T> target = MakeBaseObject<T>(std::forward<Args>(args)...);
|
|
363
|
-
target->Detach();
|
|
364
|
-
return target;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
} // namespace node
|
|
368
|
-
|
|
369
|
-
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
370
|
-
|
|
371
|
-
#endif // SRC_BASE_OBJECT_INL_H_
|