@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.
Files changed (606) hide show
  1. package/binding.gyp +1 -1
  2. package/dist/bindings/cws_darwin_arm64_node115.node +0 -0
  3. package/dist/bindings/cws_darwin_arm64_node127.node +0 -0
  4. package/dist/bindings/cws_darwin_arm64_node137.node +0 -0
  5. package/dist/bindings/cws_linux_arm64_node115.node +0 -0
  6. package/dist/bindings/cws_linux_arm64_node127.node +0 -0
  7. package/dist/bindings/cws_linux_x64_node115.node +0 -0
  8. package/dist/bindings/cws_linux_x64_node127.node +0 -0
  9. package/dist/bindings/cws_linux_x64_node137.node +0 -0
  10. package/dist/bindings/cws_win32_x64_node108.node +0 -0
  11. package/dist/bindings/cws_win32_x64_node115.node +0 -0
  12. package/dist/bindings/cws_win32_x64_node127.node +0 -0
  13. package/dist/bindings/cws_win32_x64_node83.node +0 -0
  14. package/dist/bindings/cws_win32_x64_node93.node +0 -0
  15. package/package.json +1 -1
  16. package/src/Addon.h +13 -23
  17. package/src/Socket.h +0 -1
  18. package/src/headers/22/acorn_version.h +6 -0
  19. package/src/headers/22/aliased_buffer-inl.h +243 -0
  20. package/src/headers/22/aliased_buffer.h +206 -0
  21. package/src/headers/{18 → 22}/async_wrap-inl.h +8 -6
  22. package/src/headers/{18 → 22}/async_wrap.h +65 -59
  23. package/src/headers/{18 → 22}/base_object-inl.h +57 -117
  24. package/src/headers/{18 → 22}/base_object.h +58 -30
  25. package/src/headers/22/base_object_types.h +74 -0
  26. package/src/headers/22/blob_serializer_deserializer-inl.h +385 -0
  27. package/src/headers/22/blob_serializer_deserializer.h +132 -0
  28. package/src/headers/{16 → 22}/callback_queue.h +1 -0
  29. package/src/headers/{16 → 22}/cares_wrap.h +27 -20
  30. package/src/headers/22/cjs_module_lexer_version.h +6 -0
  31. package/src/headers/22/cleanup_queue-inl.h +62 -0
  32. package/src/headers/22/cleanup_queue.h +85 -0
  33. package/src/headers/22/compile_cache.h +104 -0
  34. package/src/headers/{18 → 22}/crypto/crypto_clienthello.h +1 -1
  35. package/src/headers/{18 → 22}/crypto/crypto_context.h +31 -7
  36. package/src/headers/{18 → 22}/crypto/crypto_keys.h +118 -148
  37. package/src/headers/{18 → 22}/crypto/crypto_tls.h +20 -5
  38. package/src/headers/{18 → 22}/crypto/crypto_util.h +219 -263
  39. package/src/headers/22/crypto/ncrypto.h +752 -0
  40. package/src/headers/{16 → 22}/debug_utils-inl.h +15 -7
  41. package/src/headers/{18 → 22}/debug_utils.h +25 -19
  42. package/src/headers/22/encoding_binding.h +59 -0
  43. package/src/headers/{14 → 22}/env-inl.h +276 -409
  44. package/src/headers/22/env.h +1266 -0
  45. package/src/headers/22/env_properties.h +497 -0
  46. package/src/headers/{18 → 22}/handle_wrap.h +2 -0
  47. package/src/headers/{18 → 22}/histogram.h +88 -48
  48. package/src/headers/{16 → 22}/inspector_agent.h +17 -1
  49. package/src/headers/{16 → 22}/inspector_profiler.h +15 -13
  50. package/src/headers/22/js_native_api.h +619 -0
  51. package/src/headers/{18 → 22}/js_native_api_types.h +46 -1
  52. package/src/headers/22/js_native_api_v8.h +485 -0
  53. package/src/headers/{18 → 22}/js_native_api_v8_internals.h +6 -0
  54. package/src/headers/22/json_parser.h +40 -0
  55. package/src/headers/{16 → 22}/json_utils.h +19 -8
  56. package/src/headers/{18 → 22}/memory_tracker-inl.h +16 -13
  57. package/src/headers/{14 → 22}/memory_tracker.h +13 -8
  58. package/src/headers/{16 → 22}/module_wrap.h +49 -19
  59. package/src/headers/22/ncrypto/ncrypto.h +752 -0
  60. package/src/headers/{18 → 22}/node.h +465 -68
  61. package/src/headers/{18 → 22}/node_api.h +66 -81
  62. package/src/headers/{18 → 22}/node_api_internals.h +8 -4
  63. package/src/headers/{18 → 22}/node_api_types.h +5 -0
  64. package/src/headers/22/node_binding.h +154 -0
  65. package/src/headers/{18 → 22}/node_blob.h +46 -78
  66. package/src/headers/{18 → 22}/node_bob-inl.h +1 -2
  67. package/src/headers/{18 → 22}/node_bob.h +2 -6
  68. package/src/headers/{18 → 22}/node_buffer.h +1 -1
  69. package/src/headers/22/node_builtins.h +220 -0
  70. package/src/headers/{18 → 22}/node_constants.h +3 -5
  71. package/src/headers/22/node_context_data.h +168 -0
  72. package/src/headers/22/node_contextify.h +199 -0
  73. package/src/headers/{16 → 22}/node_crypto.h +1 -2
  74. package/src/headers/22/node_dotenv.h +45 -0
  75. package/src/headers/{18 → 22}/node_errors.h +86 -27
  76. package/src/headers/22/node_exit_code.h +54 -0
  77. package/src/headers/22/node_external_reference.h +249 -0
  78. package/src/headers/{18 → 22}/node_file-inl.h +127 -30
  79. package/src/headers/{16 → 22}/node_file.h +122 -11
  80. package/src/headers/{18 → 22}/node_http2.h +28 -11
  81. package/src/headers/{16 → 22}/node_http2_state.h +34 -25
  82. package/src/headers/{18 → 22}/node_http_common-inl.h +2 -1
  83. package/src/headers/{18 → 22}/node_http_common.h +56 -55
  84. package/src/headers/{16 → 22}/node_i18n.h +5 -18
  85. package/src/headers/{18 → 22}/node_internals.h +121 -59
  86. package/src/headers/{18 → 22}/node_main_instance.h +4 -31
  87. package/src/headers/{18 → 22}/node_messaging.h +27 -10
  88. package/src/headers/{18 → 22}/node_metadata.h +23 -1
  89. package/src/headers/{18 → 22}/node_options-inl.h +24 -11
  90. package/src/headers/{18 → 22}/node_options.h +124 -39
  91. package/src/headers/{18 → 22}/node_perf.h +0 -2
  92. package/src/headers/{18 → 22}/node_perf_common.h +20 -9
  93. package/src/headers/{18 → 22}/node_platform.h +11 -5
  94. package/src/headers/{18 → 22}/node_process.h +26 -14
  95. package/src/headers/22/node_realm-inl.h +145 -0
  96. package/src/headers/22/node_realm.h +184 -0
  97. package/src/headers/{16 → 22}/node_report.h +13 -17
  98. package/src/headers/{16 → 22}/node_revert.h +3 -3
  99. package/src/headers/{16 → 22}/node_root_certs.h +902 -461
  100. package/src/headers/22/node_sea.h +64 -0
  101. package/src/headers/22/node_shadow_realm.h +46 -0
  102. package/src/headers/22/node_snapshot_builder.h +57 -0
  103. package/src/headers/22/node_snapshotable.h +174 -0
  104. package/src/headers/{18 → 22}/node_sockaddr.h +2 -2
  105. package/src/headers/{16 → 22}/node_stat_watcher.h +2 -1
  106. package/src/headers/22/node_threadsafe_cow-inl.h +54 -0
  107. package/src/headers/22/node_threadsafe_cow.h +105 -0
  108. package/src/headers/22/node_union_bytes.h +81 -0
  109. package/src/headers/22/node_url.h +96 -0
  110. package/src/headers/22/node_v8.h +77 -0
  111. package/src/headers/{14 → 22}/node_v8_platform-inl.h +17 -6
  112. package/src/headers/{16 → 22}/node_version.h +21 -9
  113. package/src/headers/22/node_wasi.h +185 -0
  114. package/src/headers/{14 → 22}/node_watchdog.h +2 -0
  115. package/src/headers/{18 → 22}/node_worker.h +7 -2
  116. package/src/headers/22/permission/child_process_permission.h +31 -0
  117. package/src/headers/22/permission/fs_permission.h +167 -0
  118. package/src/headers/22/permission/inspector_permission.h +31 -0
  119. package/src/headers/22/permission/permission.h +99 -0
  120. package/src/headers/22/permission/permission_base.h +60 -0
  121. package/src/headers/22/permission/wasi_permission.h +31 -0
  122. package/src/headers/22/permission/worker_permission.h +31 -0
  123. package/src/headers/{16 → 22}/req_wrap-inl.h +7 -6
  124. package/src/headers/{14 → 22}/spawn_sync.h +3 -3
  125. package/src/headers/{18 → 22}/stream_base-inl.h +0 -135
  126. package/src/headers/{18 → 22}/stream_base.h +35 -16
  127. package/src/headers/{18 → 22}/stream_pipe.h +3 -4
  128. package/src/headers/{16 → 22}/stream_wrap.h +2 -1
  129. package/src/headers/{18 → 22}/string_bytes.h +5 -14
  130. package/src/headers/{14 → 22}/string_decoder-inl.h +0 -6
  131. package/src/headers/{16 → 22}/string_decoder.h +0 -1
  132. package/src/headers/{18 → 22}/tcp_wrap.h +1 -1
  133. package/src/headers/{18 → 22}/threadpoolwork-inl.h +14 -1
  134. package/src/headers/22/timers.h +76 -0
  135. package/src/headers/{18 → 22}/tracing/trace_event.h +7 -5
  136. package/src/headers/{16 → 22}/udp_wrap.h +8 -5
  137. package/src/headers/22/undici_version.h +6 -0
  138. package/src/headers/{18 → 22}/util-inl.h +97 -127
  139. package/src/headers/{18 → 22}/util.h +293 -106
  140. package/src/headers/{18 → 22}/v8-fast-api-calls.h +103 -58
  141. package/src/headers/24/acorn_version.h +6 -0
  142. package/src/headers/24/addon_permission.h +31 -0
  143. package/src/headers/{16/tracing → 24}/agent.h +1 -1
  144. package/src/headers/24/aliased_buffer-inl.h +244 -0
  145. package/src/headers/24/aliased_buffer.h +206 -0
  146. package/src/headers/24/amaro_version.h +6 -0
  147. package/src/headers/24/application.h +165 -0
  148. package/src/headers/24/async_context_frame.h +33 -0
  149. package/src/headers/{14 → 24}/async_wrap-inl.h +8 -6
  150. package/src/headers/{16 → 24}/async_wrap.h +86 -88
  151. package/src/headers/{16 → 24}/base_object-inl.h +75 -119
  152. package/src/headers/{16 → 24}/base_object.h +84 -40
  153. package/src/headers/24/base_object_types.h +74 -0
  154. package/src/headers/24/bindingdata.h +272 -0
  155. package/src/headers/24/blob_serializer_deserializer-inl.h +385 -0
  156. package/src/headers/24/blob_serializer_deserializer.h +132 -0
  157. package/src/headers/{18 → 24}/callback_queue.h +1 -0
  158. package/src/headers/{18 → 24}/cares_wrap.h +68 -144
  159. package/src/headers/24/child_process_permission.h +31 -0
  160. package/src/headers/24/cid.h +127 -0
  161. package/src/headers/24/cjs_module_lexer_version.h +6 -0
  162. package/src/headers/24/cleanup_queue-inl.h +36 -0
  163. package/src/headers/24/cleanup_queue.h +79 -0
  164. package/src/headers/24/compile_cache.h +113 -0
  165. package/src/headers/24/cppgc_helpers-inl.h +65 -0
  166. package/src/headers/24/cppgc_helpers.h +162 -0
  167. package/src/headers/24/crypto/crypto_aes.h +97 -0
  168. package/src/headers/24/crypto/crypto_argon2.h +86 -0
  169. package/src/headers/{16 → 24}/crypto/crypto_bio.h +8 -9
  170. package/src/headers/24/crypto/crypto_chacha20_poly1305.h +64 -0
  171. package/src/headers/{18 → 24}/crypto/crypto_cipher.h +48 -58
  172. package/src/headers/{16 → 24}/crypto/crypto_clienthello-inl.h +2 -2
  173. package/src/headers/{16 → 24}/crypto/crypto_clienthello.h +1 -1
  174. package/src/headers/24/crypto/crypto_common.h +48 -0
  175. package/src/headers/{16 → 24}/crypto/crypto_context.h +46 -22
  176. package/src/headers/{18 → 24}/crypto/crypto_dh.h +27 -57
  177. package/src/headers/{18 → 24}/crypto/crypto_dsa.h +7 -34
  178. package/src/headers/{18 → 24}/crypto/crypto_ec.h +42 -49
  179. package/src/headers/{18 → 24}/crypto/crypto_hash.h +11 -11
  180. package/src/headers/{18 → 24}/crypto/crypto_hkdf.h +10 -14
  181. package/src/headers/{18 → 24}/crypto/crypto_hmac.h +11 -13
  182. package/src/headers/24/crypto/crypto_kem.h +113 -0
  183. package/src/headers/{18 → 24}/crypto/crypto_keygen.h +59 -74
  184. package/src/headers/{16 → 24}/crypto/crypto_keys.h +134 -154
  185. package/src/headers/24/crypto/crypto_ml_dsa.h +21 -0
  186. package/src/headers/{18 → 24}/crypto/crypto_pbkdf2.h +9 -11
  187. package/src/headers/{18 → 24}/crypto/crypto_random.h +28 -34
  188. package/src/headers/{18 → 24}/crypto/crypto_rsa.h +30 -35
  189. package/src/headers/{18 → 24}/crypto/crypto_scrypt.h +8 -10
  190. package/src/headers/{18 → 24}/crypto/crypto_sig.h +36 -48
  191. package/src/headers/{16 → 24}/crypto/crypto_tls.h +35 -18
  192. package/src/headers/{16 → 24}/crypto/crypto_util.h +183 -321
  193. package/src/headers/24/crypto/crypto_x509.h +140 -0
  194. package/src/headers/24/data.h +148 -0
  195. package/src/headers/{14 → 24}/debug_utils-inl.h +17 -8
  196. package/src/headers/{16 → 24}/debug_utils.h +31 -22
  197. package/src/headers/24/defs.h +254 -0
  198. package/src/headers/24/embedded_data.h +17 -0
  199. package/src/headers/24/encoding_binding.h +60 -0
  200. package/src/headers/24/endpoint.h +421 -0
  201. package/src/headers/{16 → 24}/env-inl.h +198 -540
  202. package/src/headers/24/env.h +1257 -0
  203. package/src/headers/24/env_properties.h +561 -0
  204. package/src/headers/24/fs_permission.h +167 -0
  205. package/src/headers/{16 → 24}/handle_wrap.h +4 -2
  206. package/src/headers/{16 → 24}/histogram-inl.h +34 -15
  207. package/src/headers/24/histogram.h +279 -0
  208. package/src/headers/24/http3.h +44 -0
  209. package/src/headers/{18 → 24}/inspector_agent.h +23 -2
  210. package/src/headers/24/inspector_permission.h +31 -0
  211. package/src/headers/{18 → 24}/inspector_profiler.h +15 -15
  212. package/src/headers/24/io_agent.h +30 -0
  213. package/src/headers/{18 → 24}/js_native_api.h +74 -30
  214. package/src/headers/{16 → 24}/js_native_api_types.h +61 -10
  215. package/src/headers/{18 → 24}/js_native_api_v8.h +205 -160
  216. package/src/headers/{16 → 24}/js_native_api_v8_internals.h +12 -6
  217. package/src/headers/24/json_parser.h +40 -0
  218. package/src/headers/{18 → 24}/json_utils.h +19 -8
  219. package/src/headers/24/logstream.h +81 -0
  220. package/src/headers/24/main_thread_interface.h +116 -0
  221. package/src/headers/{16 → 24}/memory_tracker-inl.h +115 -17
  222. package/src/headers/{16 → 24}/memory_tracker.h +58 -9
  223. package/src/headers/24/module_wrap.h +229 -0
  224. package/src/headers/24/ncrypto.h +1625 -0
  225. package/src/headers/24/network_agent.h +118 -0
  226. package/src/headers/24/network_inspector.h +45 -0
  227. package/src/headers/24/network_resource_manager.h +29 -0
  228. package/src/headers/{16 → 24}/node.h +560 -72
  229. package/src/headers/24/node_api.h +269 -0
  230. package/src/headers/24/node_api_internals.h +46 -0
  231. package/src/headers/{16 → 24}/node_api_types.h +13 -11
  232. package/src/headers/24/node_binding.h +163 -0
  233. package/src/headers/{16 → 24}/node_blob.h +46 -78
  234. package/src/headers/{16 → 24}/node_bob-inl.h +1 -2
  235. package/src/headers/{16 → 24}/node_bob.h +2 -6
  236. package/src/headers/{14 → 24}/node_buffer.h +1 -1
  237. package/src/headers/24/node_builtins.h +223 -0
  238. package/src/headers/24/node_config_file.h +65 -0
  239. package/src/headers/{14 → 24}/node_constants.h +3 -5
  240. package/src/headers/24/node_context_data.h +168 -0
  241. package/src/headers/24/node_contextify.h +261 -0
  242. package/src/headers/{18 → 24}/node_crypto.h +7 -2
  243. package/src/headers/24/node_debug.h +25 -0
  244. package/src/headers/24/node_dotenv.h +45 -0
  245. package/src/headers/{16 → 24}/node_errors.h +146 -32
  246. package/src/headers/24/node_exit_code.h +54 -0
  247. package/src/headers/{18 → 24}/node_external_reference.h +44 -22
  248. package/src/headers/{16 → 24}/node_file-inl.h +156 -50
  249. package/src/headers/{18 → 24}/node_file.h +129 -15
  250. package/src/headers/{16 → 24}/node_http2.h +53 -18
  251. package/src/headers/{14 → 24}/node_http2_state.h +35 -25
  252. package/src/headers/{16 → 24}/node_http_common-inl.h +8 -10
  253. package/src/headers/{16 → 24}/node_http_common.h +63 -59
  254. package/src/headers/{18 → 24}/node_i18n.h +5 -18
  255. package/src/headers/{16 → 24}/node_internals.h +131 -76
  256. package/src/headers/24/node_json.h +24 -0
  257. package/src/headers/24/node_large_page.h +34 -0
  258. package/src/headers/24/node_locks.h +180 -0
  259. package/src/headers/{14 → 24}/node_main_instance.h +15 -44
  260. package/src/headers/{16 → 24}/node_mem-inl.h +7 -7
  261. package/src/headers/{16 → 24}/node_messaging.h +27 -11
  262. package/src/headers/{16 → 24}/node_metadata.h +44 -2
  263. package/src/headers/24/node_modules.h +93 -0
  264. package/src/headers/{16 → 24}/node_options-inl.h +93 -46
  265. package/src/headers/{16 → 24}/node_options.h +251 -63
  266. package/src/headers/{16 → 24}/node_perf.h +6 -25
  267. package/src/headers/{16 → 24}/node_perf_common.h +23 -10
  268. package/src/headers/24/node_platform.h +286 -0
  269. package/src/headers/24/node_process.h +111 -0
  270. package/src/headers/24/node_realm-inl.h +153 -0
  271. package/src/headers/24/node_realm.h +236 -0
  272. package/src/headers/{18 → 24}/node_report.h +13 -17
  273. package/src/headers/{18 → 24}/node_revert.h +3 -3
  274. package/src/headers/{18 → 24}/node_root_certs.h +1010 -710
  275. package/src/headers/24/node_sea.h +74 -0
  276. package/src/headers/24/node_shadow_realm.h +46 -0
  277. package/src/headers/24/node_snapshot_builder.h +57 -0
  278. package/src/headers/24/node_snapshotable.h +174 -0
  279. package/src/headers/{16 → 24}/node_sockaddr-inl.h +11 -20
  280. package/src/headers/{16 → 24}/node_sockaddr.h +9 -20
  281. package/src/headers/24/node_sqlite.h +270 -0
  282. package/src/headers/{18 → 24}/node_stat_watcher.h +2 -1
  283. package/src/headers/24/node_string.h +101 -0
  284. package/src/headers/24/node_task_runner.h +92 -0
  285. package/src/headers/24/node_threadsafe_cow-inl.h +54 -0
  286. package/src/headers/24/node_threadsafe_cow.h +105 -0
  287. package/src/headers/24/node_union_bytes.h +81 -0
  288. package/src/headers/24/node_url.h +101 -0
  289. package/src/headers/24/node_url_pattern.h +118 -0
  290. package/src/headers/24/node_v8.h +77 -0
  291. package/src/headers/{18 → 24}/node_v8_platform-inl.h +22 -31
  292. package/src/headers/{18 → 24}/node_version.h +18 -6
  293. package/src/headers/24/node_wasi.h +185 -0
  294. package/src/headers/24/node_wasm_web_api.h +55 -0
  295. package/src/headers/{18 → 24}/node_watchdog.h +2 -0
  296. package/src/headers/24/node_webstorage.h +60 -0
  297. package/src/headers/{16 → 24}/node_worker.h +24 -10
  298. package/src/headers/24/packet.h +155 -0
  299. package/src/headers/24/path.h +33 -0
  300. package/src/headers/24/permission/addon_permission.h +31 -0
  301. package/src/headers/24/permission/child_process_permission.h +31 -0
  302. package/src/headers/24/permission/fs_permission.h +167 -0
  303. package/src/headers/24/permission/inspector_permission.h +31 -0
  304. package/src/headers/24/permission/permission.h +100 -0
  305. package/src/headers/24/permission/permission_base.h +65 -0
  306. package/src/headers/24/permission/wasi_permission.h +31 -0
  307. package/src/headers/24/permission/worker_permission.h +31 -0
  308. package/src/headers/24/permission.h +100 -0
  309. package/src/headers/24/permission_base.h +65 -0
  310. package/src/headers/24/preferredaddress.h +72 -0
  311. package/src/headers/24/protocol_helper.h +27 -0
  312. package/src/headers/24/queue.h +306 -0
  313. package/src/headers/{18 → 24}/req_wrap-inl.h +12 -6
  314. package/src/headers/{16 → 24}/req_wrap.h +3 -1
  315. package/src/headers/24/runtime_agent.h +41 -0
  316. package/src/headers/24/session.h +528 -0
  317. package/src/headers/24/sessionticket.h +108 -0
  318. package/src/headers/{18 → 24}/spawn_sync.h +9 -8
  319. package/src/headers/{16 → 24}/stream_base-inl.h +3 -133
  320. package/src/headers/{16 → 24}/stream_base.h +43 -19
  321. package/src/headers/{16 → 24}/stream_pipe.h +7 -4
  322. package/src/headers/{18 → 24}/stream_wrap.h +2 -3
  323. package/src/headers/24/streams.h +370 -0
  324. package/src/headers/{16 → 24}/string_bytes.h +8 -21
  325. package/src/headers/{18 → 24}/string_decoder-inl.h +0 -6
  326. package/src/headers/{18 → 24}/string_decoder.h +0 -1
  327. package/src/headers/24/target_agent.h +75 -0
  328. package/src/headers/{16 → 24}/tcp_wrap.h +3 -1
  329. package/src/headers/{14 → 24}/threadpoolwork-inl.h +14 -1
  330. package/src/headers/24/timer_wrap-inl.h +32 -0
  331. package/src/headers/{16 → 24}/timer_wrap.h +7 -4
  332. package/src/headers/24/timers.h +75 -0
  333. package/src/headers/24/tlscontext.h +228 -0
  334. package/src/headers/24/tokens.h +256 -0
  335. package/src/headers/{14/tracing → 24}/trace_event.h +7 -5
  336. package/src/headers/24/traced_value.h +129 -0
  337. package/src/headers/24/tracing_agent.h +43 -0
  338. package/src/headers/24/transportparams.h +166 -0
  339. package/src/headers/{16 → 24}/tty_wrap.h +0 -1
  340. package/src/headers/{18 → 24}/udp_wrap.h +8 -5
  341. package/src/headers/24/undici_version.h +6 -0
  342. package/src/headers/{16 → 24}/util-inl.h +267 -131
  343. package/src/headers/{16 → 24}/util.h +338 -146
  344. package/src/headers/24/v8-external-memory-accounter.h +60 -0
  345. package/src/headers/24/v8-fast-api-calls.h +819 -0
  346. package/src/headers/24/v8-inspector.h +426 -0
  347. package/src/headers/24/wasi_permission.h +31 -0
  348. package/src/headers/24/worker_agent.h +40 -0
  349. package/src/headers/24/worker_inspector.h +124 -0
  350. package/src/headers/24/worker_permission.h +31 -0
  351. package/src/headers/24/zlib_version.h +6 -0
  352. package/dist/bindings/cws_darwin_arm64_node83.node +0 -0
  353. package/dist/bindings/cws_darwin_arm64_node93.node +0 -0
  354. package/dist/bindings/cws_darwin_x64_node83.node +0 -0
  355. package/dist/bindings/cws_darwin_x64_node93.node +0 -0
  356. package/dist/bindings/cws_linux_arm64_node83.node +0 -0
  357. package/dist/bindings/cws_linux_arm64_node93.node +0 -0
  358. package/dist/bindings/cws_linux_x64_node83.node +0 -0
  359. package/dist/bindings/cws_linux_x64_node93.node +0 -0
  360. package/src/headers/14/aliased_buffer.h +0 -263
  361. package/src/headers/14/allocated_buffer-inl.h +0 -110
  362. package/src/headers/14/allocated_buffer.h +0 -73
  363. package/src/headers/14/async_wrap.h +0 -230
  364. package/src/headers/14/base64.h +0 -183
  365. package/src/headers/14/base_object-inl.h +0 -371
  366. package/src/headers/14/base_object.h +0 -281
  367. package/src/headers/14/callback_queue-inl.h +0 -97
  368. package/src/headers/14/callback_queue.h +0 -78
  369. package/src/headers/14/debug_utils.h +0 -181
  370. package/src/headers/14/env.h +0 -1388
  371. package/src/headers/14/handle_wrap.h +0 -117
  372. package/src/headers/14/histogram-inl.h +0 -83
  373. package/src/headers/14/histogram.h +0 -98
  374. package/src/headers/14/inspector_agent.h +0 -149
  375. package/src/headers/14/inspector_profiler.h +0 -137
  376. package/src/headers/14/js_native_api.h +0 -544
  377. package/src/headers/14/js_native_api_types.h +0 -143
  378. package/src/headers/14/js_native_api_v8.h +0 -301
  379. package/src/headers/14/js_native_api_v8_internals.h +0 -38
  380. package/src/headers/14/json_utils.h +0 -161
  381. package/src/headers/14/memory_tracker-inl.h +0 -355
  382. package/src/headers/14/module_wrap.h +0 -99
  383. package/src/headers/14/node.h +0 -1032
  384. package/src/headers/14/node_api.h +0 -255
  385. package/src/headers/14/node_api_types.h +0 -44
  386. package/src/headers/14/node_binding.h +0 -99
  387. package/src/headers/14/node_context_data.h +0 -44
  388. package/src/headers/14/node_contextify.h +0 -161
  389. package/src/headers/14/node_crypto.h +0 -865
  390. package/src/headers/14/node_crypto_bio.h +0 -195
  391. package/src/headers/14/node_crypto_clienthello-inl.h +0 -91
  392. package/src/headers/14/node_crypto_clienthello.h +0 -132
  393. package/src/headers/14/node_crypto_common.h +0 -138
  394. package/src/headers/14/node_crypto_groups.h +0 -415
  395. package/src/headers/14/node_dtrace.h +0 -86
  396. package/src/headers/14/node_errors.h +0 -214
  397. package/src/headers/14/node_file-inl.h +0 -306
  398. package/src/headers/14/node_file.h +0 -417
  399. package/src/headers/14/node_http2.h +0 -1191
  400. package/src/headers/14/node_http_common-inl.h +0 -194
  401. package/src/headers/14/node_http_common.h +0 -529
  402. package/src/headers/14/node_i18n.h +0 -144
  403. package/src/headers/14/node_internals.h +0 -405
  404. package/src/headers/14/node_mem.h +0 -45
  405. package/src/headers/14/node_messaging.h +0 -303
  406. package/src/headers/14/node_metadata.h +0 -109
  407. package/src/headers/14/node_mutex.h +0 -247
  408. package/src/headers/14/node_native_module.h +0 -101
  409. package/src/headers/14/node_native_module_env.h +0 -66
  410. package/src/headers/14/node_options-inl.h +0 -451
  411. package/src/headers/14/node_options.h +0 -481
  412. package/src/headers/14/node_perf.h +0 -181
  413. package/src/headers/14/node_perf_common.h +0 -97
  414. package/src/headers/14/node_platform.h +0 -189
  415. package/src/headers/14/node_process.h +0 -40
  416. package/src/headers/14/node_report.h +0 -47
  417. package/src/headers/14/node_revert.h +0 -72
  418. package/src/headers/14/node_root_certs.h +0 -3458
  419. package/src/headers/14/node_sockaddr-inl.h +0 -170
  420. package/src/headers/14/node_sockaddr.h +0 -123
  421. package/src/headers/14/node_stat_watcher.h +0 -70
  422. package/src/headers/14/node_union_bytes.h +0 -103
  423. package/src/headers/14/node_url.h +0 -188
  424. package/src/headers/14/node_version.h +0 -98
  425. package/src/headers/14/node_wasi.h +0 -108
  426. package/src/headers/14/node_win32_etw_provider-inl.h +0 -287
  427. package/src/headers/14/node_win32_etw_provider.h +0 -99
  428. package/src/headers/14/node_worker.h +0 -141
  429. package/src/headers/14/pipe_wrap.h +0 -78
  430. package/src/headers/14/req_wrap-inl.h +0 -170
  431. package/src/headers/14/req_wrap.h +0 -77
  432. package/src/headers/14/stream_base-inl.h +0 -275
  433. package/src/headers/14/stream_base.h +0 -434
  434. package/src/headers/14/stream_pipe.h +0 -73
  435. package/src/headers/14/stream_wrap.h +0 -130
  436. package/src/headers/14/string_bytes.h +0 -129
  437. package/src/headers/14/string_decoder.h +0 -50
  438. package/src/headers/14/string_search.h +0 -638
  439. package/src/headers/14/tcp_wrap.h +0 -101
  440. package/src/headers/14/tls_wrap.h +0 -222
  441. package/src/headers/14/tracing/agent.h +0 -195
  442. package/src/headers/14/tracing/traced_value.h +0 -70
  443. package/src/headers/14/tty_wrap.h +0 -64
  444. package/src/headers/14/udp_wrap.h +0 -227
  445. package/src/headers/14/util-inl.h +0 -566
  446. package/src/headers/14/util.h +0 -804
  447. package/src/headers/14/v8abbr.h +0 -124
  448. package/src/headers/16/aliased_buffer.h +0 -315
  449. package/src/headers/16/allocated_buffer-inl.h +0 -110
  450. package/src/headers/16/allocated_buffer.h +0 -73
  451. package/src/headers/16/async_wrap-inl.h +0 -94
  452. package/src/headers/16/base64-inl.h +0 -189
  453. package/src/headers/16/base64.h +0 -69
  454. package/src/headers/16/crypto/crypto_aes.h +0 -89
  455. package/src/headers/16/crypto/crypto_cipher.h +0 -286
  456. package/src/headers/16/crypto/crypto_common.h +0 -187
  457. package/src/headers/16/crypto/crypto_dh.h +0 -157
  458. package/src/headers/16/crypto/crypto_dsa.h +0 -76
  459. package/src/headers/16/crypto/crypto_ec.h +0 -169
  460. package/src/headers/16/crypto/crypto_groups.h +0 -415
  461. package/src/headers/16/crypto/crypto_hash.h +0 -89
  462. package/src/headers/16/crypto/crypto_hkdf.h +0 -66
  463. package/src/headers/16/crypto/crypto_hmac.h +0 -94
  464. package/src/headers/16/crypto/crypto_keygen.h +0 -301
  465. package/src/headers/16/crypto/crypto_pbkdf2.h +0 -76
  466. package/src/headers/16/crypto/crypto_random.h +0 -130
  467. package/src/headers/16/crypto/crypto_rsa.h +0 -141
  468. package/src/headers/16/crypto/crypto_scrypt.h +0 -87
  469. package/src/headers/16/crypto/crypto_sig.h +0 -167
  470. package/src/headers/16/crypto/crypto_spkac.h +0 -20
  471. package/src/headers/16/crypto/crypto_timing.h +0 -20
  472. package/src/headers/16/crypto/crypto_x509.h +0 -141
  473. package/src/headers/16/env.h +0 -1629
  474. package/src/headers/16/histogram.h +0 -216
  475. package/src/headers/16/js_native_api.h +0 -561
  476. package/src/headers/16/js_native_api_v8.h +0 -451
  477. package/src/headers/16/node.d +0 -315
  478. package/src/headers/16/node.stp +0 -146
  479. package/src/headers/16/node_api.h +0 -275
  480. package/src/headers/16/node_api_internals.h +0 -30
  481. package/src/headers/16/node_binding.h +0 -99
  482. package/src/headers/16/node_buffer.h +0 -92
  483. package/src/headers/16/node_constants.h +0 -84
  484. package/src/headers/16/node_context_data.h +0 -44
  485. package/src/headers/16/node_contextify.h +0 -196
  486. package/src/headers/16/node_dtrace.h +0 -86
  487. package/src/headers/16/node_external_reference.h +0 -129
  488. package/src/headers/16/node_main_instance.h +0 -103
  489. package/src/headers/16/node_native_module.h +0 -101
  490. package/src/headers/16/node_native_module_env.h +0 -68
  491. package/src/headers/16/node_platform.h +0 -192
  492. package/src/headers/16/node_process.h +0 -43
  493. package/src/headers/16/node_provider.d +0 -80
  494. package/src/headers/16/node_snapshotable.h +0 -137
  495. package/src/headers/16/node_union_bytes.h +0 -103
  496. package/src/headers/16/node_url.h +0 -205
  497. package/src/headers/16/node_v8.h +0 -41
  498. package/src/headers/16/node_v8_platform-inl.h +0 -194
  499. package/src/headers/16/node_wasi.h +0 -108
  500. package/src/headers/16/node_watchdog.h +0 -152
  501. package/src/headers/16/node_win32_etw_provider-inl.h +0 -288
  502. package/src/headers/16/node_win32_etw_provider.h +0 -99
  503. package/src/headers/16/spawn_sync.h +0 -242
  504. package/src/headers/16/string_decoder-inl.h +0 -37
  505. package/src/headers/16/string_search.h +0 -638
  506. package/src/headers/16/threadpoolwork-inl.h +0 -57
  507. package/src/headers/16/tracing/node_trace_buffer.h +0 -83
  508. package/src/headers/16/tracing/node_trace_writer.h +0 -75
  509. package/src/headers/16/tracing/trace_event.h +0 -720
  510. package/src/headers/16/tracing/traced_value.h +0 -70
  511. package/src/headers/16/v8abbr.h +0 -123
  512. package/src/headers/16/v8ustack.d +0 -695
  513. package/src/headers/18/aliased_buffer.h +0 -315
  514. package/src/headers/18/aliased_struct-inl.h +0 -54
  515. package/src/headers/18/aliased_struct.h +0 -63
  516. package/src/headers/18/base64-inl.h +0 -189
  517. package/src/headers/18/base64.h +0 -69
  518. package/src/headers/18/connect_wrap.h +0 -26
  519. package/src/headers/18/connection_wrap.h +0 -30
  520. package/src/headers/18/crypto/crypto_aes.h +0 -89
  521. package/src/headers/18/crypto/crypto_bio.h +0 -194
  522. package/src/headers/18/crypto/crypto_clienthello-inl.h +0 -90
  523. package/src/headers/18/crypto/crypto_common.h +0 -151
  524. package/src/headers/18/crypto/crypto_groups.h +0 -415
  525. package/src/headers/18/crypto/crypto_x509.h +0 -143
  526. package/src/headers/18/debug_utils-inl.h +0 -223
  527. package/src/headers/18/diagnosticfilename-inl.h +0 -33
  528. package/src/headers/18/env-inl.h +0 -1308
  529. package/src/headers/18/env.h +0 -1667
  530. package/src/headers/18/inspector_io.h +0 -78
  531. package/src/headers/18/inspector_socket.h +0 -60
  532. package/src/headers/18/inspector_socket_server.h +0 -110
  533. package/src/headers/18/js_stream.h +0 -52
  534. package/src/headers/18/memory_tracker.h +0 -284
  535. package/src/headers/18/module_wrap.h +0 -116
  536. package/src/headers/18/node_binding.h +0 -99
  537. package/src/headers/18/node_context_data.h +0 -44
  538. package/src/headers/18/node_contextify.h +0 -196
  539. package/src/headers/18/node_dir.h +0 -52
  540. package/src/headers/18/node_dtrace.h +0 -86
  541. package/src/headers/18/node_http2_state.h +0 -149
  542. package/src/headers/18/node_mem-inl.h +0 -112
  543. package/src/headers/18/node_native_module.h +0 -109
  544. package/src/headers/18/node_native_module_env.h +0 -71
  545. package/src/headers/18/node_object_wrap.h +0 -132
  546. package/src/headers/18/node_snapshot_builder.h +0 -43
  547. package/src/headers/18/node_snapshotable.h +0 -130
  548. package/src/headers/18/node_union_bytes.h +0 -103
  549. package/src/headers/18/node_url.h +0 -205
  550. package/src/headers/18/node_v8.h +0 -41
  551. package/src/headers/18/node_wasi.h +0 -108
  552. package/src/headers/18/node_win32_etw_provider-inl.h +0 -288
  553. package/src/headers/18/node_win32_etw_provider.h +0 -99
  554. package/src/headers/18/string_search.h +0 -638
  555. package/src/headers/18/tracing/node_trace_buffer.h +0 -83
  556. package/src/headers/18/tracing/node_trace_writer.h +0 -75
  557. package/src/headers/18/tracing/trace_event_common.h +0 -1109
  558. package/src/headers/18/tracing/traced_value.h +0 -70
  559. package/src/headers/18/v8abbr.h +0 -123
  560. /package/src/headers/{14 → 22}/aliased_struct-inl.h +0 -0
  561. /package/src/headers/{14 → 22}/aliased_struct.h +0 -0
  562. /package/src/headers/{16 → 22}/callback_queue-inl.h +0 -0
  563. /package/src/headers/{14 → 22}/connect_wrap.h +0 -0
  564. /package/src/headers/{14 → 22}/connection_wrap.h +0 -0
  565. /package/src/headers/{14 → 22}/diagnosticfilename-inl.h +0 -0
  566. /package/src/headers/{18 → 22}/histogram-inl.h +0 -0
  567. /package/src/headers/{14 → 22}/inspector_io.h +0 -0
  568. /package/src/headers/{14 → 22}/inspector_socket.h +0 -0
  569. /package/src/headers/{14 → 22}/inspector_socket_server.h +0 -0
  570. /package/src/headers/{14 → 22}/js_stream.h +0 -0
  571. /package/src/headers/{14 → 22}/node_dir.h +0 -0
  572. /package/src/headers/{14 → 22}/node_mem-inl.h +0 -0
  573. /package/src/headers/{16 → 22}/node_mem.h +0 -0
  574. /package/src/headers/{16 → 22}/node_mutex.h +0 -0
  575. /package/src/headers/{14 → 22}/node_object_wrap.h +0 -0
  576. /package/src/headers/{16 → 22}/node_process-inl.h +0 -0
  577. /package/src/headers/{18 → 22}/node_sockaddr-inl.h +0 -0
  578. /package/src/headers/{18 → 22}/node_wasm_web_api.h +0 -0
  579. /package/src/headers/{16 → 22}/pipe_wrap.h +0 -0
  580. /package/src/headers/{18 → 22}/req_wrap.h +0 -0
  581. /package/src/headers/{18 → 22}/timer_wrap-inl.h +0 -0
  582. /package/src/headers/{18 → 22}/timer_wrap.h +0 -0
  583. /package/src/headers/{18 → 22}/tracing/agent.h +0 -0
  584. /package/src/headers/{14 → 22}/tracing/trace_event_common.h +0 -0
  585. /package/src/headers/{18 → 22}/tty_wrap.h +0 -0
  586. /package/src/headers/{16 → 24}/aliased_struct-inl.h +0 -0
  587. /package/src/headers/{16 → 24}/aliased_struct.h +0 -0
  588. /package/src/headers/{18 → 24}/callback_queue-inl.h +0 -0
  589. /package/src/headers/{16 → 24}/connect_wrap.h +0 -0
  590. /package/src/headers/{16 → 24}/connection_wrap.h +0 -0
  591. /package/src/headers/{18 → 24}/crypto/crypto_spkac.h +0 -0
  592. /package/src/headers/{18 → 24}/crypto/crypto_timing.h +0 -0
  593. /package/src/headers/{16 → 24}/diagnosticfilename-inl.h +0 -0
  594. /package/src/headers/{16 → 24}/inspector_io.h +0 -0
  595. /package/src/headers/{16 → 24}/inspector_socket.h +0 -0
  596. /package/src/headers/{16 → 24}/inspector_socket_server.h +0 -0
  597. /package/src/headers/{16 → 24}/js_stream.h +0 -0
  598. /package/src/headers/{16 → 24}/node_dir.h +0 -0
  599. /package/src/headers/{18 → 24}/node_mem.h +0 -0
  600. /package/src/headers/{18 → 24}/node_mutex.h +0 -0
  601. /package/src/headers/{16 → 24}/node_object_wrap.h +0 -0
  602. /package/src/headers/{18 → 24}/node_process-inl.h +0 -0
  603. /package/src/headers/{14/tracing → 24}/node_trace_buffer.h +0 -0
  604. /package/src/headers/{14/tracing → 24}/node_trace_writer.h +0 -0
  605. /package/src/headers/{18 → 24}/pipe_wrap.h +0 -0
  606. /package/src/headers/{16/tracing → 24}/trace_event_common.h +0 -0
@@ -31,49 +31,55 @@
31
31
 
32
32
  namespace node {
33
33
 
34
- #define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
35
- V(NONE) \
36
- V(DIRHANDLE) \
37
- V(DNSCHANNEL) \
38
- V(ELDHISTOGRAM) \
39
- V(FILEHANDLE) \
40
- V(FILEHANDLECLOSEREQ) \
41
- V(FIXEDSIZEBLOBCOPY) \
42
- V(FSEVENTWRAP) \
43
- V(FSREQCALLBACK) \
44
- V(FSREQPROMISE) \
45
- V(GETADDRINFOREQWRAP) \
46
- V(GETNAMEINFOREQWRAP) \
47
- V(HEAPSNAPSHOT) \
48
- V(HTTP2SESSION) \
49
- V(HTTP2STREAM) \
50
- V(HTTP2PING) \
51
- V(HTTP2SETTINGS) \
52
- V(HTTPINCOMINGMESSAGE) \
53
- V(HTTPCLIENTREQUEST) \
54
- V(JSSTREAM) \
55
- V(JSUDPWRAP) \
56
- V(MESSAGEPORT) \
57
- V(PIPECONNECTWRAP) \
58
- V(PIPESERVERWRAP) \
59
- V(PIPEWRAP) \
60
- V(PROCESSWRAP) \
61
- V(PROMISE) \
62
- V(QUERYWRAP) \
63
- V(SHUTDOWNWRAP) \
64
- V(SIGNALWRAP) \
65
- V(STATWATCHER) \
66
- V(STREAMPIPE) \
67
- V(TCPCONNECTWRAP) \
68
- V(TCPSERVERWRAP) \
69
- V(TCPWRAP) \
70
- V(TTYWRAP) \
71
- V(UDPSENDWRAP) \
72
- V(UDPWRAP) \
73
- V(SIGINTWATCHDOG) \
74
- V(WORKER) \
75
- V(WORKERHEAPSNAPSHOT) \
76
- V(WRITEWRAP) \
34
+ #define NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
35
+ V(NONE) \
36
+ V(DIRHANDLE) \
37
+ V(DNSCHANNEL) \
38
+ V(ELDHISTOGRAM) \
39
+ V(FILEHANDLE) \
40
+ V(FILEHANDLECLOSEREQ) \
41
+ V(BLOBREADER) \
42
+ V(FSEVENTWRAP) \
43
+ V(FSREQCALLBACK) \
44
+ V(FSREQPROMISE) \
45
+ V(GETADDRINFOREQWRAP) \
46
+ V(GETNAMEINFOREQWRAP) \
47
+ V(HEAPSNAPSHOT) \
48
+ V(HTTP2SESSION) \
49
+ V(HTTP2STREAM) \
50
+ V(HTTP2PING) \
51
+ V(HTTP2SETTINGS) \
52
+ V(HTTPINCOMINGMESSAGE) \
53
+ V(HTTPCLIENTREQUEST) \
54
+ V(JSSTREAM) \
55
+ V(JSUDPWRAP) \
56
+ V(MESSAGEPORT) \
57
+ V(PIPECONNECTWRAP) \
58
+ V(PIPESERVERWRAP) \
59
+ V(PIPEWRAP) \
60
+ V(PROCESSWRAP) \
61
+ V(PROMISE) \
62
+ V(QUERYWRAP) \
63
+ V(QUIC_ENDPOINT) \
64
+ V(QUIC_LOGSTREAM) \
65
+ V(QUIC_PACKET) \
66
+ V(QUIC_SESSION) \
67
+ V(QUIC_STREAM) \
68
+ V(QUIC_UDP) \
69
+ V(SHUTDOWNWRAP) \
70
+ V(SIGNALWRAP) \
71
+ V(STATWATCHER) \
72
+ V(STREAMPIPE) \
73
+ V(TCPCONNECTWRAP) \
74
+ V(TCPSERVERWRAP) \
75
+ V(TCPWRAP) \
76
+ V(TTYWRAP) \
77
+ V(UDPSENDWRAP) \
78
+ V(UDPWRAP) \
79
+ V(SIGINTWATCHDOG) \
80
+ V(WORKER) \
81
+ V(WORKERHEAPSNAPSHOT) \
82
+ V(WRITEWRAP) \
77
83
  V(ZLIB)
78
84
 
79
85
  #if HAVE_OPENSSL
@@ -96,17 +102,9 @@ namespace node {
96
102
  #define NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V)
97
103
  #endif // HAVE_OPENSSL
98
104
 
99
- #if HAVE_INSPECTOR
100
- #define NODE_ASYNC_INSPECTOR_PROVIDER_TYPES(V) \
101
- V(INSPECTORJSBINDING)
102
- #else
103
- #define NODE_ASYNC_INSPECTOR_PROVIDER_TYPES(V)
104
- #endif // HAVE_INSPECTOR
105
-
106
- #define NODE_ASYNC_PROVIDER_TYPES(V) \
107
- NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
108
- NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V) \
109
- NODE_ASYNC_INSPECTOR_PROVIDER_TYPES(V)
105
+ #define NODE_ASYNC_PROVIDER_TYPES(V) \
106
+ NODE_ASYNC_NON_CRYPTO_PROVIDER_TYPES(V) \
107
+ NODE_ASYNC_CRYPTO_PROVIDER_TYPES(V)
110
108
 
111
109
  class Environment;
112
110
  class DestroyParam;
@@ -138,13 +136,17 @@ class AsyncWrap : public BaseObject {
138
136
  static constexpr double kInvalidAsyncId = -1;
139
137
 
140
138
  static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
139
+ IsolateData* isolate_data);
140
+ inline static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
141
141
  Environment* env);
142
142
 
143
143
  static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
144
- static void Initialize(v8::Local<v8::Object> target,
145
- v8::Local<v8::Value> unused,
146
- v8::Local<v8::Context> context,
147
- void* priv);
144
+ static void CreatePerContextProperties(v8::Local<v8::Object> target,
145
+ v8::Local<v8::Value> unused,
146
+ v8::Local<v8::Context> context,
147
+ void* priv);
148
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
149
+ v8::Local<v8::ObjectTemplate> target);
148
150
 
149
151
  static void GetAsyncId(const v8::FunctionCallbackInfo<v8::Value>& args);
150
152
  static void PushAsyncContext(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -185,6 +187,8 @@ class AsyncWrap : public BaseObject {
185
187
  inline double get_async_id() const;
186
188
  inline double get_trigger_async_id() const;
187
189
 
190
+ inline v8::Local<v8::Value> context_frame() const;
191
+
188
192
  void AsyncReset(v8::Local<v8::Object> resource,
189
193
  double execution_async_id = kInvalidAsyncId,
190
194
  bool silent = false);
@@ -207,7 +211,7 @@ class AsyncWrap : public BaseObject {
207
211
  v8::Local<v8::Value>* argv);
208
212
 
209
213
  virtual std::string diagnostic_name() const;
210
- std::string MemoryInfoName() const override;
214
+ const char* MemoryInfoName() const override;
211
215
 
212
216
  static void WeakCallback(const v8::WeakCallbackInfo<DestroyParam> &info);
213
217
 
@@ -237,6 +241,8 @@ class AsyncWrap : public BaseObject {
237
241
  // Because the values may be Reset(), cannot be made const.
238
242
  double async_id_ = kInvalidAsyncId;
239
243
  double trigger_async_id_ = kInvalidAsyncId;
244
+
245
+ v8::Global<v8::Value> context_frame_;
240
246
  };
241
247
 
242
248
  } // namespace node
@@ -33,37 +33,9 @@
33
33
  namespace node {
34
34
 
35
35
  BaseObject::BaseObject(Environment* env, v8::Local<v8::Object> object)
36
- : persistent_handle_(env->isolate(), object), env_(env) {
37
- CHECK_EQ(false, object.IsEmpty());
38
- CHECK_GT(object->InternalFieldCount(), 0);
39
- object->SetAlignedPointerInInternalField(
40
- BaseObject::kSlot,
41
- static_cast<void*>(this));
42
- env->AddCleanupHook(DeleteMe, static_cast<void*>(this));
43
- env->modify_base_object_count(1);
44
- }
45
-
46
- BaseObject::~BaseObject() {
47
- env()->modify_base_object_count(-1);
48
- env()->RemoveCleanupHook(DeleteMe, static_cast<void*>(this));
49
-
50
- if (UNLIKELY(has_pointer_data())) {
51
- PointerData* metadata = pointer_data();
52
- CHECK_EQ(metadata->strong_ptr_count, 0);
53
- metadata->self = nullptr;
54
- if (metadata->weak_ptr_count == 0)
55
- delete metadata;
56
- }
57
-
58
- if (persistent_handle_.IsEmpty()) {
59
- // This most likely happened because the weak callback below cleared it.
60
- return;
61
- }
62
-
63
- {
64
- v8::HandleScope handle_scope(env()->isolate());
65
- object()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr);
66
- }
36
+ : BaseObject(env->principal_realm(), object) {
37
+ // TODO(legendecas): Check the shorthand is only used in the principal realm
38
+ // while allowing to create a BaseObject in a vm context.
67
39
  }
68
40
 
69
41
  void BaseObject::Detach() {
@@ -83,52 +55,57 @@ v8::Local<v8::Object> BaseObject::object() const {
83
55
  v8::Local<v8::Object> BaseObject::object(v8::Isolate* isolate) const {
84
56
  v8::Local<v8::Object> handle = object();
85
57
 
86
- DCHECK_EQ(handle->GetCreationContext().ToLocalChecked()->GetIsolate(),
87
- isolate);
58
+ DCHECK_EQ(handle->GetCreationContextChecked()->GetIsolate(), isolate);
88
59
  DCHECK_EQ(env()->isolate(), isolate);
89
60
 
90
61
  return handle;
91
62
  }
92
63
 
93
64
  Environment* BaseObject::env() const {
94
- return env_;
65
+ return realm_->env();
66
+ }
67
+
68
+ Realm* BaseObject::realm() const {
69
+ return realm_;
70
+ }
71
+
72
+ bool BaseObject::IsBaseObject(IsolateData* isolate_data,
73
+ v8::Local<v8::Object> obj) {
74
+ if (obj->InternalFieldCount() < BaseObject::kInternalFieldCount) {
75
+ return false;
76
+ }
77
+
78
+ uint16_t* ptr = static_cast<uint16_t*>(
79
+ obj->GetAlignedPointerFromInternalField(BaseObject::kEmbedderType));
80
+ return ptr == isolate_data->embedder_id_for_non_cppgc();
81
+ }
82
+
83
+ void BaseObject::TagBaseObject(IsolateData* isolate_data,
84
+ v8::Local<v8::Object> object) {
85
+ DCHECK_GE(object->InternalFieldCount(), BaseObject::kInternalFieldCount);
86
+ object->SetAlignedPointerInInternalField(
87
+ BaseObject::kEmbedderType, isolate_data->embedder_id_for_non_cppgc());
88
+ }
89
+
90
+ void BaseObject::SetInternalFields(IsolateData* isolate_data,
91
+ v8::Local<v8::Object> object,
92
+ void* slot) {
93
+ TagBaseObject(isolate_data, object);
94
+ object->SetAlignedPointerInInternalField(BaseObject::kSlot, slot);
95
95
  }
96
96
 
97
97
  BaseObject* BaseObject::FromJSObject(v8::Local<v8::Value> value) {
98
98
  v8::Local<v8::Object> obj = value.As<v8::Object>();
99
- DCHECK_GE(obj->InternalFieldCount(), BaseObject::kSlot);
99
+ DCHECK_GE(obj->InternalFieldCount(), BaseObject::kInternalFieldCount);
100
100
  return static_cast<BaseObject*>(
101
101
  obj->GetAlignedPointerFromInternalField(BaseObject::kSlot));
102
102
  }
103
103
 
104
-
105
104
  template <typename T>
106
105
  T* BaseObject::FromJSObject(v8::Local<v8::Value> object) {
107
106
  return static_cast<T*>(FromJSObject(object));
108
107
  }
109
108
 
110
-
111
- void BaseObject::MakeWeak() {
112
- if (has_pointer_data()) {
113
- pointer_data()->wants_weak_jsobj = true;
114
- if (pointer_data()->strong_ptr_count > 0) return;
115
- }
116
-
117
- persistent_handle_.SetWeak(
118
- this,
119
- [](const v8::WeakCallbackInfo<BaseObject>& data) {
120
- BaseObject* obj = data.GetParameter();
121
- // Clear the persistent handle so that ~BaseObject() doesn't attempt
122
- // to mess with internal fields, since the JS object may have
123
- // transitioned into an invalid state.
124
- // Refs: https://github.com/nodejs/node/issues/18897
125
- obj->persistent_handle_.Reset();
126
- CHECK_IMPLIES(obj->has_pointer_data(),
127
- obj->pointer_data()->strong_ptr_count == 0);
128
- obj->OnGCCollect();
129
- }, v8::WeakCallbackType::kParameter);
130
- }
131
-
132
109
  void BaseObject::OnGCCollect() {
133
110
  delete this;
134
111
  }
@@ -148,78 +125,35 @@ bool BaseObject::IsWeakOrDetached() const {
148
125
  return pd->wants_weak_jsobj || pd->is_detached;
149
126
  }
150
127
 
151
- void BaseObject::LazilyInitializedJSTemplateConstructor(
152
- 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>
159
- BaseObject::MakeLazilyInitializedJSTemplate(Environment* env) {
160
- v8::Local<v8::FunctionTemplate> t =
161
- env->NewFunctionTemplate(LazilyInitializedJSTemplateConstructor);
162
- t->Inherit(BaseObject::GetConstructorTemplate(env));
163
- t->InstanceTemplate()->SetInternalFieldCount(
164
- BaseObject::kInternalFieldCount);
165
- return t;
128
+ v8::EmbedderGraph::Node::Detachedness BaseObject::GetDetachedness() const {
129
+ return IsWeakOrDetached() ? v8::EmbedderGraph::Node::Detachedness::kDetached
130
+ : v8::EmbedderGraph::Node::Detachedness::kUnknown;
166
131
  }
167
132
 
168
133
  template <int Field>
169
134
  void BaseObject::InternalFieldGet(
170
- v8::Local<v8::String> property,
171
- const v8::PropertyCallbackInfo<v8::Value>& info) {
172
- info.GetReturnValue().Set(info.This()->GetInternalField(Field));
135
+ const v8::FunctionCallbackInfo<v8::Value>& args) {
136
+ args.GetReturnValue().Set(
137
+ args.This()->GetInternalField(Field).As<v8::Value>());
173
138
  }
174
139
 
175
- template <int Field, bool (v8::Value::* typecheck)() const>
176
- void BaseObject::InternalFieldSet(v8::Local<v8::String> property,
177
- v8::Local<v8::Value> value,
178
- const v8::PropertyCallbackInfo<void>& info) {
140
+ template <int Field, bool (v8::Value::*typecheck)() const>
141
+ void BaseObject::InternalFieldSet(
142
+ const v8::FunctionCallbackInfo<v8::Value>& args) {
143
+ v8::Local<v8::Value> value = args[0];
179
144
  // This could be e.g. value->IsFunction().
180
145
  CHECK(((*value)->*typecheck)());
181
- info.This()->SetInternalField(Field, value);
146
+ args.This()->SetInternalField(Field, value);
182
147
  }
183
148
 
184
149
  bool BaseObject::has_pointer_data() const {
185
150
  return pointer_data_ != nullptr;
186
151
  }
187
152
 
188
- BaseObject::PointerData* BaseObject::pointer_data() {
189
- if (!has_pointer_data()) {
190
- PointerData* metadata = new PointerData();
191
- metadata->wants_weak_jsobj = persistent_handle_.IsWeak();
192
- metadata->self = this;
193
- pointer_data_ = metadata;
194
- }
195
- CHECK(has_pointer_data());
196
- return pointer_data_;
197
- }
198
-
199
- void BaseObject::decrease_refcount() {
200
- CHECK(has_pointer_data());
201
- PointerData* metadata = pointer_data();
202
- CHECK_GT(metadata->strong_ptr_count, 0);
203
- unsigned int new_refcount = --metadata->strong_ptr_count;
204
- if (new_refcount == 0) {
205
- if (metadata->is_detached) {
206
- OnGCCollect();
207
- } else if (metadata->wants_weak_jsobj && !persistent_handle_.IsEmpty()) {
208
- MakeWeak();
209
- }
210
- }
211
- }
212
-
213
- void BaseObject::increase_refcount() {
214
- unsigned int prev_refcount = pointer_data()->strong_ptr_count++;
215
- if (prev_refcount == 0 && !persistent_handle_.IsEmpty())
216
- persistent_handle_.ClearWeak();
217
- }
218
-
219
153
  template <typename T, bool kIsWeak>
220
154
  BaseObject::PointerData*
221
155
  BaseObjectPtrImpl<T, kIsWeak>::pointer_data() const {
222
- if (kIsWeak) {
156
+ if constexpr (kIsWeak) {
223
157
  return data_.pointer_data;
224
158
  }
225
159
  if (get_base_object() == nullptr) {
@@ -230,7 +164,7 @@ BaseObjectPtrImpl<T, kIsWeak>::pointer_data() const {
230
164
 
231
165
  template <typename T, bool kIsWeak>
232
166
  BaseObject* BaseObjectPtrImpl<T, kIsWeak>::get_base_object() const {
233
- if (kIsWeak) {
167
+ if constexpr (kIsWeak) {
234
168
  if (pointer_data() == nullptr) {
235
169
  return nullptr;
236
170
  }
@@ -241,7 +175,7 @@ BaseObject* BaseObjectPtrImpl<T, kIsWeak>::get_base_object() const {
241
175
 
242
176
  template <typename T, bool kIsWeak>
243
177
  BaseObjectPtrImpl<T, kIsWeak>::~BaseObjectPtrImpl() {
244
- if (kIsWeak) {
178
+ if constexpr (kIsWeak) {
245
179
  if (pointer_data() != nullptr &&
246
180
  --pointer_data()->weak_ptr_count == 0 &&
247
181
  pointer_data()->self == nullptr) {
@@ -261,7 +195,7 @@ template <typename T, bool kIsWeak>
261
195
  BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(T* target)
262
196
  : BaseObjectPtrImpl() {
263
197
  if (target == nullptr) return;
264
- if (kIsWeak) {
198
+ if constexpr (kIsWeak) {
265
199
  data_.pointer_data = target->pointer_data();
266
200
  CHECK_NOT_NULL(pointer_data());
267
201
  pointer_data()->weak_ptr_count++;
@@ -302,7 +236,7 @@ BaseObjectPtrImpl<T, kIsWeak>& BaseObjectPtrImpl<T, kIsWeak>::operator=(
302
236
  template <typename T, bool kIsWeak>
303
237
  BaseObjectPtrImpl<T, kIsWeak>::BaseObjectPtrImpl(BaseObjectPtrImpl&& other)
304
238
  : data_(other.data_) {
305
- if (kIsWeak)
239
+ if constexpr (kIsWeak)
306
240
  other.data_.target = nullptr;
307
241
  else
308
242
  other.data_.pointer_data = nullptr;
@@ -359,6 +293,12 @@ template <typename T, typename... Args>
359
293
  BaseObjectPtr<T> MakeBaseObject(Args&&... args) {
360
294
  return BaseObjectPtr<T>(new T(std::forward<Args>(args)...));
361
295
  }
296
+ template <typename T, typename... Args>
297
+ BaseObjectWeakPtr<T> MakeWeakBaseObject(Args&&... args) {
298
+ T* target = new T(std::forward<Args>(args)...);
299
+ target->MakeWeak();
300
+ return BaseObjectWeakPtr<T>(target);
301
+ }
362
302
 
363
303
  template <typename T, typename... Args>
364
304
  BaseObjectPtr<T> MakeDetachedBaseObject(Args&&... args) {
@@ -25,12 +25,15 @@
25
25
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
26
26
 
27
27
  #include <type_traits> // std::remove_reference
28
+ #include "base_object_types.h"
28
29
  #include "memory_tracker.h"
29
30
  #include "v8.h"
30
31
 
31
32
  namespace node {
32
33
 
33
34
  class Environment;
35
+ class IsolateData;
36
+ class Realm;
34
37
  template <typename T, bool kIsWeak>
35
38
  class BaseObjectPtrImpl;
36
39
 
@@ -40,12 +43,15 @@ class TransferData;
40
43
 
41
44
  class BaseObject : public MemoryRetainer {
42
45
  public:
43
- enum InternalFields { kSlot, kInternalFieldCount };
46
+ enum InternalFields { kEmbedderType, kSlot, kInternalFieldCount };
44
47
 
45
- // Associates this object with `object`. It uses the 0th internal field for
48
+ // Associates this object with `object`. It uses the 1st internal field for
46
49
  // that, and in particular aborts if there is no such field.
50
+ // This is the designated constructor.
51
+ BaseObject(Realm* realm, v8::Local<v8::Object> object);
52
+ // Convenient constructor for constructing BaseObject in the principal realm.
47
53
  inline BaseObject(Environment* env, v8::Local<v8::Object> object);
48
- inline ~BaseObject() override;
54
+ ~BaseObject() override;
49
55
 
50
56
  BaseObject() = delete;
51
57
 
@@ -60,12 +66,20 @@ class BaseObject : public MemoryRetainer {
60
66
  inline v8::Global<v8::Object>& persistent();
61
67
 
62
68
  inline Environment* env() const;
69
+ inline Realm* realm() const;
63
70
 
64
71
  // Get a BaseObject* pointer, or subclass pointer, for the JS object that
65
72
  // was also passed to the `BaseObject()` constructor initially.
66
73
  // This may return `nullptr` if the C++ object has not been constructed yet,
67
74
  // e.g. when the JS object used `MakeLazilyInitializedJSTemplate`.
68
- static inline void LazilyInitializedJSTemplateConstructor(
75
+ static inline void SetInternalFields(IsolateData* isolate_data,
76
+ v8::Local<v8::Object> object,
77
+ void* slot);
78
+ static inline bool IsBaseObject(IsolateData* isolate_data,
79
+ v8::Local<v8::Object> object);
80
+ static inline void TagBaseObject(IsolateData* isolate_data,
81
+ v8::Local<v8::Object> object);
82
+ static void LazilyInitializedJSTemplateConstructor(
69
83
  const v8::FunctionCallbackInfo<v8::Value>& args);
70
84
  static inline BaseObject* FromJSObject(v8::Local<v8::Value> object);
71
85
  template <typename T>
@@ -74,7 +88,7 @@ class BaseObject : public MemoryRetainer {
74
88
  // Make the `v8::Global` a weak reference and, `delete` this object once
75
89
  // the JS object has been garbage collected and there are no (strong)
76
90
  // BaseObjectPtr references to it.
77
- inline void MakeWeak();
91
+ void MakeWeak();
78
92
 
79
93
  // Undo `MakeWeak()`, i.e. turn this into a strong reference that is a GC
80
94
  // root and will not be touched by the garbage collector.
@@ -85,20 +99,21 @@ class BaseObject : public MemoryRetainer {
85
99
  // to it anymore.
86
100
  inline bool IsWeakOrDetached() const;
87
101
 
102
+ inline v8::EmbedderGraph::Node::Detachedness GetDetachedness() const override;
103
+
88
104
  // Utility to create a FunctionTemplate with one internal field (used for
89
105
  // the `BaseObject*` pointer) and a constructor that initializes that field
90
106
  // to `nullptr`.
91
- static inline v8::Local<v8::FunctionTemplate> MakeLazilyInitializedJSTemplate(
107
+ static v8::Local<v8::FunctionTemplate> MakeLazilyInitializedJSTemplate(
108
+ IsolateData* isolate);
109
+ static v8::Local<v8::FunctionTemplate> MakeLazilyInitializedJSTemplate(
92
110
  Environment* env);
93
111
 
94
112
  // Setter/Getter pair for internal fields that can be passed to SetAccessor.
95
113
  template <int Field>
96
- static void InternalFieldGet(v8::Local<v8::String> property,
97
- const v8::PropertyCallbackInfo<v8::Value>& info);
114
+ static void InternalFieldGet(const v8::FunctionCallbackInfo<v8::Value>& args);
98
115
  template <int Field, bool (v8::Value::*typecheck)() const>
99
- static void InternalFieldSet(v8::Local<v8::String> property,
100
- v8::Local<v8::Value> value,
101
- const v8::PropertyCallbackInfo<void>& info);
116
+ static void InternalFieldSet(const v8::FunctionCallbackInfo<v8::Value>& args);
102
117
 
103
118
  // This is a bit of a hack. See the override in async_wrap.cc for details.
104
119
  virtual bool IsDoneInitializing() const;
@@ -109,18 +124,20 @@ class BaseObject : public MemoryRetainer {
109
124
  // a BaseObjectPtr to this object.
110
125
  inline void Detach();
111
126
 
112
- static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
127
+ static inline v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
113
128
  Environment* env);
129
+ static v8::Local<v8::FunctionTemplate> GetConstructorTemplate(
130
+ IsolateData* isolate_data);
114
131
 
115
132
  // Interface for transferring BaseObject instances using the .postMessage()
116
133
  // method of MessagePorts (and, by extension, Workers).
117
134
  // GetTransferMode() returns a transfer mode that indicates how to deal with
118
135
  // the current object:
119
- // - kUntransferable:
120
- // No transfer is possible, either because this type of BaseObject does
121
- // not know how to be transferred, or because it is not in a state in
122
- // which it is possible to do so (e.g. because it has already been
123
- // transferred).
136
+ // - kDisallowCloneAndTransfer:
137
+ // No transfer or clone is possible, either because this type of
138
+ // BaseObject does not know how to be transferred, or because it is not
139
+ // in a state in which it is possible to do so (e.g. because it has
140
+ // already been transferred).
124
141
  // - kTransferable:
125
142
  // This object can be transferred in a destructive fashion, i.e. will be
126
143
  // rendered unusable on the sending side of the channel in the process
@@ -136,22 +153,27 @@ class BaseObject : public MemoryRetainer {
136
153
  // This object can be cloned without being modified.
137
154
  // CloneForMessaging() will be called to get a representation of the
138
155
  // object that is used for subsequent deserialization, unless the
139
- // object is listed in transferList, in which case TransferForMessaging()
140
- // is attempted first.
156
+ // object is listed in transferList and is kTransferable, in which case
157
+ // TransferForMessaging() is attempted first.
158
+ // - kTransferableAndCloneable:
159
+ // This object can be transferred or cloned.
141
160
  // After a successful clone, FinalizeTransferRead() is called on the receiving
142
161
  // end, and can read deserialize JS data possibly serialized by a previous
143
162
  // FinalizeTransferWrite() call.
144
- enum class TransferMode {
145
- kUntransferable,
146
- kTransferable,
147
- kCloneable
163
+ // By default, a BaseObject is kDisallowCloneAndTransfer and a JS Object is
164
+ // kCloneable unless otherwise specified.
165
+ enum TransferMode : uint32_t {
166
+ kDisallowCloneAndTransfer = 0,
167
+ kTransferable = 1 << 0,
168
+ kCloneable = 1 << 1,
169
+ kTransferableAndCloneable = kTransferable | kCloneable,
148
170
  };
149
171
  virtual TransferMode GetTransferMode() const;
150
172
  virtual std::unique_ptr<worker::TransferData> TransferForMessaging();
151
173
  virtual std::unique_ptr<worker::TransferData> CloneForMessaging() const;
152
174
  virtual v8::Maybe<std::vector<BaseObjectPtrImpl<BaseObject, false>>>
153
175
  NestedTransferables() const;
154
- virtual v8::Maybe<bool> FinalizeTransferRead(
176
+ virtual v8::Maybe<void> FinalizeTransferRead(
155
177
  v8::Local<v8::Context> context, v8::ValueDeserializer* deserializer);
156
178
 
157
179
  // Indicates whether this object is expected to use a strong reference during
@@ -173,7 +195,7 @@ class BaseObject : public MemoryRetainer {
173
195
  // position of members in memory are predictable. For more information please
174
196
  // refer to `doc/contributing/node-postmortem-support.md`
175
197
  friend int GenDebugSymbols();
176
- friend class CleanupHookCallback;
198
+ friend class CleanupQueue;
177
199
  template <typename T, bool kIsWeak>
178
200
  friend class BaseObjectPtrImpl;
179
201
 
@@ -202,13 +224,13 @@ class BaseObject : public MemoryRetainer {
202
224
  inline bool has_pointer_data() const;
203
225
  // This creates a PointerData struct if none was associated with this
204
226
  // BaseObject before.
205
- inline PointerData* pointer_data();
227
+ PointerData* pointer_data();
206
228
 
207
229
  // Functions that adjust the strong pointer count.
208
- inline void decrease_refcount();
209
- inline void increase_refcount();
230
+ void decrease_refcount();
231
+ void increase_refcount();
210
232
 
211
- Environment* env_;
233
+ Realm* realm_;
212
234
  PointerData* pointer_data_ = nullptr;
213
235
  };
214
236
 
@@ -230,7 +252,9 @@ inline T* Unwrap(v8::Local<v8::Value> obj) {
230
252
  // circumstances such as the GC or Environment cleanup.
231
253
  // If weak, destruction behaviour is not affected, but the pointer will be
232
254
  // reset to nullptr once the BaseObject is destroyed.
233
- // The API matches std::shared_ptr closely.
255
+ // The API matches std::shared_ptr closely. However, this class is not thread
256
+ // safe, that is, we can't have different BaseObjectPtrImpl instances in
257
+ // different threads referring to the same BaseObject instance.
234
258
  template <typename T, bool kIsWeak>
235
259
  class BaseObjectPtrImpl final {
236
260
  public:
@@ -281,6 +305,10 @@ using BaseObjectWeakPtr = BaseObjectPtrImpl<T, true>;
281
305
  template <typename T, typename... Args>
282
306
  inline BaseObjectPtr<T> MakeBaseObject(Args&&... args);
283
307
  // Create a BaseObject instance and return a pointer to it.
308
+ // This variant makes the object a weak GC root by default.
309
+ template <typename T, typename... Args>
310
+ inline BaseObjectWeakPtr<T> MakeWeakBaseObject(Args&&... args);
311
+ // Create a BaseObject instance and return a pointer to it.
284
312
  // This variant detaches the object by default, meaning that the caller fully
285
313
  // owns it, and once the last BaseObjectPtr to it is destroyed, the object
286
314
  // itself is also destroyed.