@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
@@ -8,6 +8,7 @@
8
8
  #include "v8.h"
9
9
 
10
10
  #include <algorithm>
11
+ #include "nbytes.h"
11
12
 
12
13
  namespace node {
13
14
 
@@ -31,7 +32,7 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
31
32
  count_ * sizeof(nv_t) +
32
33
  header_string_len);
33
34
 
34
- char* start = AlignUp(buf_.out(), alignof(nv_t));
35
+ char* start = nbytes::AlignUp(buf_.out(), alignof(nv_t));
35
36
  char* header_contents = start + (count_ * sizeof(nv_t));
36
37
  nv_t* const nva = reinterpret_cast<nv_t*>(start);
37
38
 
@@ -24,61 +24,62 @@ class Environment;
24
24
  V(PATH, ":path") \
25
25
  V(PROTOCOL, ":protocol")
26
26
 
27
- #define HTTP_REGULAR_HEADERS(V) \
28
- V(ACCEPT_ENCODING, "accept-encoding") \
29
- V(ACCEPT_LANGUAGE, "accept-language") \
30
- V(ACCEPT_RANGES, "accept-ranges") \
31
- V(ACCEPT, "accept") \
32
- V(ACCESS_CONTROL_ALLOW_CREDENTIALS, "access-control-allow-credentials") \
33
- V(ACCESS_CONTROL_ALLOW_HEADERS, "access-control-allow-headers") \
34
- V(ACCESS_CONTROL_ALLOW_METHODS, "access-control-allow-methods") \
35
- V(ACCESS_CONTROL_ALLOW_ORIGIN, "access-control-allow-origin") \
36
- V(ACCESS_CONTROL_EXPOSE_HEADERS, "access-control-expose-headers") \
37
- V(ACCESS_CONTROL_REQUEST_HEADERS, "access-control-request-headers") \
38
- V(ACCESS_CONTROL_REQUEST_METHOD, "access-control-request-method") \
39
- V(AGE, "age") \
40
- V(AUTHORIZATION, "authorization") \
41
- V(CACHE_CONTROL, "cache-control") \
42
- V(CONNECTION, "connection") \
43
- V(CONTENT_DISPOSITION, "content-disposition") \
44
- V(CONTENT_ENCODING, "content-encoding") \
45
- V(CONTENT_LENGTH, "content-length") \
46
- V(CONTENT_TYPE, "content-type") \
47
- V(COOKIE, "cookie") \
48
- V(DATE, "date") \
49
- V(ETAG, "etag") \
50
- V(FORWARDED, "forwarded") \
51
- V(HOST, "host") \
52
- V(IF_MODIFIED_SINCE, "if-modified-since") \
53
- V(IF_NONE_MATCH, "if-none-match") \
54
- V(IF_RANGE, "if-range") \
55
- V(LAST_MODIFIED, "last-modified") \
56
- V(LINK, "link") \
57
- V(LOCATION, "location") \
58
- V(RANGE, "range") \
59
- V(REFERER, "referer") \
60
- V(SERVER, "server") \
61
- V(SET_COOKIE, "set-cookie") \
62
- V(STRICT_TRANSPORT_SECURITY, "strict-transport-security") \
63
- V(TRANSFER_ENCODING, "transfer-encoding") \
64
- V(TE, "te") \
65
- V(UPGRADE_INSECURE_REQUESTS, "upgrade-insecure-requests") \
66
- V(UPGRADE, "upgrade") \
67
- V(USER_AGENT, "user-agent") \
68
- V(VARY, "vary") \
69
- V(X_CONTENT_TYPE_OPTIONS, "x-content-type-options") \
70
- V(X_FRAME_OPTIONS, "x-frame-options") \
71
- V(KEEP_ALIVE, "keep-alive") \
72
- V(PROXY_CONNECTION, "proxy-connection") \
73
- V(X_XSS_PROTECTION, "x-xss-protection") \
74
- V(ALT_SVC, "alt-svc") \
75
- V(CONTENT_SECURITY_POLICY, "content-security-policy") \
76
- V(EARLY_DATA, "early-data") \
77
- V(EXPECT_CT, "expect-ct") \
78
- V(ORIGIN, "origin") \
79
- V(PURPOSE, "purpose") \
80
- V(TIMING_ALLOW_ORIGIN, "timing-allow-origin") \
81
- V(X_FORWARDED_FOR, "x-forwarded-for")
27
+ #define HTTP_REGULAR_HEADERS(V) \
28
+ V(ACCEPT_ENCODING, "accept-encoding") \
29
+ V(ACCEPT_LANGUAGE, "accept-language") \
30
+ V(ACCEPT_RANGES, "accept-ranges") \
31
+ V(ACCEPT, "accept") \
32
+ V(ACCESS_CONTROL_ALLOW_CREDENTIALS, "access-control-allow-credentials") \
33
+ V(ACCESS_CONTROL_ALLOW_HEADERS, "access-control-allow-headers") \
34
+ V(ACCESS_CONTROL_ALLOW_METHODS, "access-control-allow-methods") \
35
+ V(ACCESS_CONTROL_ALLOW_ORIGIN, "access-control-allow-origin") \
36
+ V(ACCESS_CONTROL_EXPOSE_HEADERS, "access-control-expose-headers") \
37
+ V(ACCESS_CONTROL_REQUEST_HEADERS, "access-control-request-headers") \
38
+ V(ACCESS_CONTROL_REQUEST_METHOD, "access-control-request-method") \
39
+ V(AGE, "age") \
40
+ V(AUTHORIZATION, "authorization") \
41
+ V(CACHE_CONTROL, "cache-control") \
42
+ V(CONNECTION, "connection") \
43
+ V(CONTENT_DISPOSITION, "content-disposition") \
44
+ V(CONTENT_ENCODING, "content-encoding") \
45
+ V(CONTENT_LENGTH, "content-length") \
46
+ V(CONTENT_TYPE, "content-type") \
47
+ V(COOKIE, "cookie") \
48
+ V(DATE, "date") \
49
+ V(ETAG, "etag") \
50
+ V(FORWARDED, "forwarded") \
51
+ V(HOST, "host") \
52
+ V(IF_MODIFIED_SINCE, "if-modified-since") \
53
+ V(IF_NONE_MATCH, "if-none-match") \
54
+ V(IF_RANGE, "if-range") \
55
+ V(LAST_MODIFIED, "last-modified") \
56
+ V(LINK, "link") \
57
+ V(LOCATION, "location") \
58
+ V(RANGE, "range") \
59
+ V(REFERER, "referer") \
60
+ V(SERVER, "server") \
61
+ V(SET_COOKIE, "set-cookie") \
62
+ V(STRICT_TRANSPORT_SECURITY, "strict-transport-security") \
63
+ V(TRANSFER_ENCODING, "transfer-encoding") \
64
+ V(TE, "te") \
65
+ V(UPGRADE_INSECURE_REQUESTS, "upgrade-insecure-requests") \
66
+ V(UPGRADE, "upgrade") \
67
+ V(USER_AGENT, "user-agent") \
68
+ V(VARY, "vary") \
69
+ V(X_CONTENT_TYPE_OPTIONS, "x-content-type-options") \
70
+ V(X_FRAME_OPTIONS, "x-frame-options") \
71
+ V(KEEP_ALIVE, "keep-alive") \
72
+ V(PROXY_CONNECTION, "proxy-connection") \
73
+ V(X_XSS_PROTECTION, "x-xss-protection") \
74
+ V(ALT_SVC, "alt-svc") \
75
+ V(CONTENT_SECURITY_POLICY, "content-security-policy") \
76
+ V(EARLY_DATA, "early-data") \
77
+ V(EXPECT_CT, "expect-ct") \
78
+ V(ORIGIN, "origin") \
79
+ V(PURPOSE, "purpose") \
80
+ V(TIMING_ALLOW_ORIGIN, "timing-allow-origin") \
81
+ V(X_FORWARDED_FOR, "x-forwarded-for") \
82
+ V(PRIORITY, "priority")
82
83
 
83
84
  #define HTTP_ADDITIONAL_HEADERS(V) \
84
85
  V(ACCEPT_CHARSET, "accept-charset") \
@@ -38,34 +38,21 @@
38
38
  namespace node {
39
39
  namespace i18n {
40
40
 
41
- bool InitializeICUDirectory(const std::string& path);
41
+ bool InitializeICUDirectory(const std::string& path, std::string* error);
42
42
 
43
43
  void SetDefaultTimeZone(const char* tzid);
44
44
 
45
- enum idna_mode {
45
+ enum class idna_mode {
46
46
  // Default mode for maximum compatibility.
47
- IDNA_DEFAULT,
47
+ kDefault,
48
48
  // Ignore all errors in IDNA conversion, if possible.
49
- IDNA_LENIENT,
49
+ kLenient,
50
50
  // Enforce STD3 rules (UseSTD3ASCIIRules) and DNS length restrictions
51
51
  // (VerifyDnsLength). Corresponds to `beStrict` flag in the "domain to ASCII"
52
52
  // algorithm.
53
- IDNA_STRICT
53
+ kStrict
54
54
  };
55
55
 
56
- // Implements the WHATWG URL Standard "domain to ASCII" algorithm.
57
- // https://url.spec.whatwg.org/#concept-domain-to-ascii
58
- int32_t ToASCII(MaybeStackBuffer<char>* buf,
59
- const char* input,
60
- size_t length,
61
- enum idna_mode mode = IDNA_DEFAULT);
62
-
63
- // Implements the WHATWG URL Standard "domain to Unicode" algorithm.
64
- // https://url.spec.whatwg.org/#concept-domain-to-unicode
65
- int32_t ToUnicode(MaybeStackBuffer<char>* buf,
66
- const char* input,
67
- size_t length);
68
-
69
56
  struct ConverterDeleter {
70
57
  void operator()(UConverter* pointer) const { ucnv_close(pointer); }
71
58
  };
@@ -43,8 +43,8 @@ struct sockaddr;
43
43
 
44
44
  namespace node {
45
45
 
46
- namespace native_module {
47
- class NativeModuleLoader;
46
+ namespace builtins {
47
+ class BuiltinLoader;
48
48
  }
49
49
 
50
50
  namespace per_process {
@@ -66,9 +66,8 @@ v8::MaybeLocal<v8::Object> AddressToJS(
66
66
  template <typename T, int (*F)(const typename T::HandleType*, sockaddr*, int*)>
67
67
  void GetSockOrPeerName(const v8::FunctionCallbackInfo<v8::Value>& args) {
68
68
  T* wrap;
69
- ASSIGN_OR_RETURN_UNWRAP(&wrap,
70
- args.Holder(),
71
- args.GetReturnValue().Set(UV_EBADF));
69
+ ASSIGN_OR_RETURN_UNWRAP(
70
+ &wrap, args.This(), args.GetReturnValue().Set(UV_EBADF));
72
71
  CHECK(args[0]->IsObject());
73
72
  sockaddr_storage storage;
74
73
  int addrlen = sizeof(storage);
@@ -79,11 +78,30 @@ void GetSockOrPeerName(const v8::FunctionCallbackInfo<v8::Value>& args) {
79
78
  args.GetReturnValue().Set(err);
80
79
  }
81
80
 
82
- void PrintStackTrace(v8::Isolate* isolate, v8::Local<v8::StackTrace> stack);
81
+ constexpr int kMaxFrameCountForLogging = 10;
82
+ v8::MaybeLocal<v8::StackTrace> GetCurrentStackTrace(
83
+ v8::Isolate* isolate, int frame_count = kMaxFrameCountForLogging);
84
+
85
+ enum class StackTracePrefix {
86
+ kAt, // " at "
87
+ kNumber
88
+ };
89
+ void PrintCurrentStackTrace(v8::Isolate* isolate,
90
+ StackTracePrefix prefix = StackTracePrefix::kAt);
91
+ void PrintStackTrace(v8::Isolate* isolate,
92
+ v8::Local<v8::StackTrace> stack,
93
+ StackTracePrefix prefix = StackTracePrefix::kAt);
83
94
  void PrintCaughtException(v8::Isolate* isolate,
84
95
  v8::Local<v8::Context> context,
85
96
  const v8::TryCatch& try_catch);
86
-
97
+ std::string FormatCaughtException(v8::Isolate* isolate,
98
+ v8::Local<v8::Context> context,
99
+ const v8::TryCatch& try_catch);
100
+ std::string FormatErrorMessage(v8::Isolate* isolate,
101
+ v8::Local<v8::Context> context,
102
+ const std::string& reason,
103
+ v8::Local<v8::Message> message,
104
+ bool add_source_line = true);
87
105
  void ResetStdio(); // Safe to call more than once and from signal handlers.
88
106
  #ifdef __POSIX__
89
107
  void SignalExit(int signal, siginfo_t* info, void* ucontext);
@@ -92,8 +110,10 @@ void SignalExit(int signal, siginfo_t* info, void* ucontext);
92
110
  std::string GetProcessTitle(const char* default_title);
93
111
  std::string GetHumanReadableProcessName();
94
112
 
95
- v8::Maybe<bool> InitializeContextRuntime(v8::Local<v8::Context> context);
96
- v8::Maybe<bool> InitializePrimordials(v8::Local<v8::Context> context);
113
+ v8::Maybe<void> InitializeBaseContextForSnapshot(
114
+ v8::Local<v8::Context> context);
115
+ v8::Maybe<void> InitializeContextRuntime(v8::Local<v8::Context> context);
116
+ v8::Maybe<void> InitializePrimordials(v8::Local<v8::Context> context);
97
117
 
98
118
  class NodeArrayBufferAllocator : public ArrayBufferAllocator {
99
119
  public:
@@ -102,7 +122,6 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
102
122
  void* Allocate(size_t size) override; // Defined in src/node.cc
103
123
  void* AllocateUninitialized(size_t size) override;
104
124
  void Free(void* data, size_t size) override;
105
- void* Reallocate(void* data, size_t old_size, size_t size) override;
106
125
  virtual void RegisterPointer(void* data, size_t size) {
107
126
  total_mem_usage_.fetch_add(size, std::memory_order_relaxed);
108
127
  }
@@ -118,6 +137,10 @@ class NodeArrayBufferAllocator : public ArrayBufferAllocator {
118
137
  private:
119
138
  uint32_t zero_fill_field_ = 1; // Boolean but exposed as uint32 to JS land.
120
139
  std::atomic<size_t> total_mem_usage_ {0};
140
+
141
+ // Delegate to V8's allocator for compatibility with the V8 memory cage.
142
+ std::unique_ptr<v8::ArrayBuffer::Allocator> allocator_{
143
+ v8::ArrayBuffer::Allocator::NewDefaultAllocator()};
121
144
  };
122
145
 
123
146
  class DebuggingArrayBufferAllocator final : public NodeArrayBufferAllocator {
@@ -126,7 +149,6 @@ class DebuggingArrayBufferAllocator final : public NodeArrayBufferAllocator {
126
149
  void* Allocate(size_t size) override;
127
150
  void* AllocateUninitialized(size_t size) override;
128
151
  void Free(void* data, size_t size) override;
129
- void* Reallocate(void* data, size_t old_size, size_t size) override;
130
152
  void RegisterPointer(void* data, size_t size) override;
131
153
  void UnregisterPointer(void* data, size_t size) override;
132
154
 
@@ -171,16 +193,13 @@ static v8::MaybeLocal<v8::Object> New(Environment* env,
171
193
  char* src = reinterpret_cast<char*>(buf->out());
172
194
  const size_t len_in_bytes = buf->length() * sizeof(buf->out()[0]);
173
195
 
174
- if (buf->IsAllocated())
196
+ if (buf->IsAllocated()) {
175
197
  ret = New(env, src, len_in_bytes);
176
- else if (!buf->IsInvalidated())
177
- ret = Copy(env, src, len_in_bytes);
178
-
179
- if (ret.IsEmpty())
180
- return ret;
181
-
182
- if (buf->IsAllocated())
198
+ // new always takes ownership of src
183
199
  buf->Release();
200
+ } else if (!buf->IsInvalidated()) {
201
+ ret = Copy(env, src, len_in_bytes);
202
+ }
184
203
 
185
204
  return ret;
186
205
  }
@@ -193,7 +212,17 @@ v8::MaybeLocal<v8::Value> InternalMakeCallback(
193
212
  const v8::Local<v8::Function> callback,
194
213
  int argc,
195
214
  v8::Local<v8::Value> argv[],
196
- async_context asyncContext);
215
+ async_context asyncContext,
216
+ v8::Local<v8::Value> context_frame);
217
+
218
+ v8::MaybeLocal<v8::Value> InternalMakeCallback(
219
+ v8::Isolate* isolate,
220
+ v8::Local<v8::Object> recv,
221
+ const v8::Local<v8::Function> callback,
222
+ int argc,
223
+ v8::Local<v8::Value> argv[],
224
+ async_context asyncContext,
225
+ v8::Local<v8::Value> context_frame);
197
226
 
198
227
  v8::MaybeLocal<v8::Value> MakeSyncCallback(v8::Isolate* isolate,
199
228
  v8::Local<v8::Object> recv,
@@ -213,10 +242,13 @@ class InternalCallbackScope {
213
242
  // compatibility issues, but it shouldn't.)
214
243
  kSkipTaskQueues = 2
215
244
  };
216
- InternalCallbackScope(Environment* env,
217
- v8::Local<v8::Object> object,
218
- const async_context& asyncContext,
219
- int flags = kNoFlags);
245
+ InternalCallbackScope(
246
+ Environment* env,
247
+ v8::Local<v8::Object> object,
248
+ const async_context& asyncContext,
249
+ int flags = kNoFlags,
250
+ v8::Local<v8::Value> context_frame = v8::Local<v8::Value>());
251
+
220
252
  // Utility that can be used by AsyncWrap classes.
221
253
  explicit InternalCallbackScope(AsyncWrap* async_wrap, int flags = 0);
222
254
  ~InternalCallbackScope();
@@ -234,6 +266,7 @@ class InternalCallbackScope {
234
266
  bool failed_ = false;
235
267
  bool pushed_ids_ = false;
236
268
  bool closed_ = false;
269
+ v8::Global<v8::Value> prior_context_frame_;
237
270
  };
238
271
 
239
272
  class DebugSealHandleScope {
@@ -252,7 +285,8 @@ class DebugSealHandleScope {
252
285
 
253
286
  class ThreadPoolWork {
254
287
  public:
255
- explicit inline ThreadPoolWork(Environment* env) : env_(env) {
288
+ explicit inline ThreadPoolWork(Environment* env, const char* type)
289
+ : env_(env), type_(type) {
256
290
  CHECK_NOT_NULL(env);
257
291
  }
258
292
  inline virtual ~ThreadPoolWork() = default;
@@ -268,6 +302,7 @@ class ThreadPoolWork {
268
302
  private:
269
303
  Environment* env_;
270
304
  uv_work_t work_req_;
305
+ const char* type_;
271
306
  };
272
307
 
273
308
  #define TRACING_CATEGORY_NODE "node"
@@ -286,48 +321,43 @@ class ThreadPoolWork {
286
321
  #endif // defined(__POSIX__) && !defined(__ANDROID__) && !defined(__CloudABI__)
287
322
 
288
323
  namespace credentials {
289
- bool SafeGetenv(const char* key, std::string* text, Environment* env = nullptr);
324
+ bool SafeGetenv(const char* key,
325
+ std::string* text,
326
+ std::shared_ptr<KVStore> env_vars = nullptr);
290
327
  } // namespace credentials
291
328
 
292
329
  void DefineZlibConstants(v8::Local<v8::Object> target);
293
330
  v8::Isolate* NewIsolate(v8::Isolate::CreateParams* params,
294
331
  uv_loop_t* event_loop,
295
- MultiIsolatePlatform* platform);
332
+ MultiIsolatePlatform* platform,
333
+ const SnapshotData* snapshot_data = nullptr,
334
+ const IsolateSettings& settings = {});
296
335
  // This overload automatically picks the right 'main_script_id' if no callback
297
336
  // was provided by the embedder.
298
337
  v8::MaybeLocal<v8::Value> StartExecution(Environment* env,
299
338
  StartExecutionCallback cb = nullptr);
300
339
  v8::MaybeLocal<v8::Object> GetPerContextExports(v8::Local<v8::Context> context);
301
- v8::MaybeLocal<v8::Value> ExecuteBootstrapper(
302
- Environment* env,
303
- const char* id,
304
- std::vector<v8::Local<v8::String>>* parameters,
305
- std::vector<v8::Local<v8::Value>>* arguments);
306
340
  void MarkBootstrapComplete(const v8::FunctionCallbackInfo<v8::Value>& args);
307
341
 
308
- struct InitializationResult {
309
- int exit_code = 0;
310
- std::vector<std::string> args;
311
- std::vector<std::string> exec_args;
312
- bool early_return = false;
313
- };
314
-
315
- enum InitializationSettingsFlags : uint64_t {
316
- kDefaultInitialization = 1 << 0,
317
- kInitializeV8 = 1 << 1,
318
- kRunPlatformInit = 1 << 2,
319
- kInitOpenSSL = 1 << 3
342
+ class InitializationResultImpl final : public InitializationResult {
343
+ public:
344
+ ~InitializationResultImpl() = default;
345
+ int exit_code() const { return static_cast<int>(exit_code_enum()); }
346
+ ExitCode exit_code_enum() const { return exit_code_; }
347
+ bool early_return() const { return early_return_; }
348
+ const std::vector<std::string>& args() const { return args_; }
349
+ const std::vector<std::string>& exec_args() const { return exec_args_; }
350
+ const std::vector<std::string>& errors() const { return errors_; }
351
+ MultiIsolatePlatform* platform() const { return platform_; }
352
+
353
+ ExitCode exit_code_ = ExitCode::kNoFailure;
354
+ std::vector<std::string> args_;
355
+ std::vector<std::string> exec_args_;
356
+ std::vector<std::string> errors_;
357
+ bool early_return_ = false;
358
+ MultiIsolatePlatform* platform_ = nullptr;
320
359
  };
321
360
 
322
- // TODO(codebytere): eventually document and expose to embedders.
323
- InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(int argc,
324
- char** argv);
325
- InitializationResult NODE_EXTERN_PRIVATE InitializeOncePerProcess(
326
- int argc,
327
- char** argv,
328
- InitializationSettingsFlags flags,
329
- ProcessFlags::Flags process_flags = ProcessFlags::kNoFlags);
330
- void NODE_EXTERN_PRIVATE TearDownOncePerProcess();
331
361
  void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s);
332
362
  void SetIsolateMiscHandlers(v8::Isolate* isolate, const IsolateSettings& s);
333
363
  void SetIsolateCreateParamsForNode(v8::Isolate::CreateParams* params);
@@ -346,11 +376,12 @@ bool HasSignalJSHandler(int signum);
346
376
 
347
377
  #ifdef _WIN32
348
378
  typedef SYSTEMTIME TIME_TYPE;
349
- #else // UNIX, OSX
379
+ #else // UNIX, macOS
350
380
  typedef struct tm TIME_TYPE;
351
381
  #endif
352
382
 
353
383
  double GetCurrentTimeInMicroseconds();
384
+ int WriteFileSync(const char* path, uv_buf_t* bufs, size_t buf_count);
354
385
  int WriteFileSync(const char* path, uv_buf_t buf);
355
386
  int WriteFileSync(v8::Isolate* isolate,
356
387
  const char* path,
@@ -380,7 +411,9 @@ class DiagnosticFilename {
380
411
  };
381
412
 
382
413
  namespace heap {
383
- v8::Maybe<void> WriteSnapshot(Environment* env, const char* filename);
414
+ v8::Maybe<void> WriteSnapshot(Environment* env,
415
+ const char* filename,
416
+ v8::HeapProfiler::HeapSnapshotOptions options);
384
417
  }
385
418
 
386
419
  namespace heap {
@@ -393,12 +426,41 @@ BaseObjectPtr<AsyncWrap> CreateHeapSnapshotStream(
393
426
  Environment* env, HeapSnapshotPointer&& snapshot);
394
427
  } // namespace heap
395
428
 
396
- namespace fs {
397
- std::string Basename(const std::string& str, const std::string& extension);
398
- } // namespace fs
399
-
400
429
  node_module napi_module_to_node_module(const napi_module* mod);
401
430
 
431
+ std::ostream& operator<<(std::ostream& output, const SnapshotFlags& flags);
432
+ std::ostream& operator<<(std::ostream& output,
433
+ const std::vector<SnapshotIndex>& v);
434
+ std::ostream& operator<<(std::ostream& output,
435
+ const std::vector<std::string>& vec);
436
+ std::ostream& operator<<(std::ostream& output,
437
+ const std::vector<PropInfo>& vec);
438
+ std::ostream& operator<<(std::ostream& output, const PropInfo& d);
439
+ std::ostream& operator<<(std::ostream& output, const EnvSerializeInfo& d);
440
+ std::ostream& operator<<(std::ostream& output,
441
+ const ImmediateInfo::SerializeInfo& d);
442
+ std::ostream& operator<<(std::ostream& output,
443
+ const TickInfo::SerializeInfo& d);
444
+ std::ostream& operator<<(std::ostream& output,
445
+ const AsyncHooks::SerializeInfo& d);
446
+ std::ostream& operator<<(std::ostream& output, const SnapshotMetadata& d);
447
+
448
+ namespace performance {
449
+ std::ostream& operator<<(std::ostream& output,
450
+ const PerformanceState::SerializeInfo& d);
451
+ }
452
+
453
+ bool linux_at_secure();
454
+
455
+ namespace heap {
456
+ v8::HeapProfiler::HeapSnapshotOptions GetHeapSnapshotOptions(
457
+ v8::Local<v8::Value> options);
458
+ } // namespace heap
459
+
460
+ enum encoding ParseEncoding(v8::Isolate* isolate,
461
+ v8::Local<v8::Value> encoding_v,
462
+ v8::Local<v8::Value> encoding_id,
463
+ enum encoding default_encoding);
402
464
  } // namespace node
403
465
 
404
466
  #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
@@ -7,6 +7,7 @@
7
7
  #include <memory>
8
8
 
9
9
  #include "node.h"
10
+ #include "node_exit_code.h"
10
11
  #include "util.h"
11
12
  #include "uv.h"
12
13
  #include "v8.h"
@@ -21,33 +22,6 @@ struct SnapshotData;
21
22
  // We may be able to create an abstract class to reuse some of the routines.
22
23
  class NodeMainInstance {
23
24
  public:
24
- // To create a main instance that does not own the isolate,
25
- // The caller needs to do:
26
- //
27
- // Isolate* isolate = Isolate::Allocate();
28
- // platform->RegisterIsolate(isolate, loop);
29
- // isolate->Initialize(...);
30
- // isolate->Enter();
31
- // std::unique_ptr<NodeMainInstance> main_instance =
32
- // NodeMainInstance::Create(isolate, loop, args, exec_args);
33
- //
34
- // When tearing it down:
35
- //
36
- // main_instance->Cleanup(); // While the isolate is entered
37
- // isolate->Exit();
38
- // isolate->Dispose();
39
- // platform->UnregisterIsolate(isolate);
40
- //
41
- // After calling Dispose() the main_instance is no longer accessible.
42
- static std::unique_ptr<NodeMainInstance> Create(
43
- v8::Isolate* isolate,
44
- uv_loop_t* event_loop,
45
- MultiIsolatePlatform* platform,
46
- const std::vector<std::string>& args,
47
- const std::vector<std::string>& exec_args);
48
-
49
- void Dispose();
50
-
51
25
  // Create a main instance that owns the isolate
52
26
  NodeMainInstance(const SnapshotData* snapshot_data,
53
27
  uv_loop_t* event_loop,
@@ -57,13 +31,13 @@ class NodeMainInstance {
57
31
  ~NodeMainInstance();
58
32
 
59
33
  // Start running the Node.js instances, return the exit code when finished.
60
- int Run();
61
- void Run(int* exit_code, Environment* env);
34
+ ExitCode Run();
35
+ void Run(ExitCode* exit_code, Environment* env);
62
36
 
63
37
  IsolateData* isolate_data() { return isolate_data_.get(); }
64
38
 
65
39
  DeleteFnPtr<Environment, FreeEnvironment> CreateMainEnvironment(
66
- int* exit_code);
40
+ ExitCode* exit_code);
67
41
 
68
42
  NodeMainInstance(const NodeMainInstance&) = delete;
69
43
  NodeMainInstance& operator=(const NodeMainInstance&) = delete;
@@ -77,7 +51,6 @@ class NodeMainInstance {
77
51
  const std::vector<std::string>& args,
78
52
  const std::vector<std::string>& exec_args);
79
53
 
80
- static std::unique_ptr<ExternalReferenceRegistry> registry_;
81
54
  std::vector<std::string> args_;
82
55
  std::vector<std::string> exec_args_;
83
56
  std::unique_ptr<ArrayBufferAllocator> array_buffer_allocator_;
@@ -88,6 +88,9 @@ class Message : public MemoryRetainer {
88
88
  // Internal method of Message that is called when a new WebAssembly.Module
89
89
  // object is encountered in the incoming value's structure.
90
90
  uint32_t AddWASMModule(v8::CompiledWasmModule&& mod);
91
+ // Internal method of Message that is called when a shared value is
92
+ // encountered for the first time in the incoming value's structure.
93
+ void AdoptSharedValueConveyor(v8::SharedValueConveyor&& conveyor);
91
94
 
92
95
  // The host objects that will be transferred, as recorded by Serialize()
93
96
  // (e.g. MessagePorts).
@@ -114,6 +117,7 @@ class Message : public MemoryRetainer {
114
117
  std::vector<std::shared_ptr<v8::BackingStore>> shared_array_buffers_;
115
118
  std::vector<std::unique_ptr<TransferData>> transferables_;
116
119
  std::vector<v8::CompiledWasmModule> wasm_modules_;
120
+ std::optional<v8::SharedValueConveyor> shared_value_conveyor_;
117
121
 
118
122
  friend class MessagePort;
119
123
  };
@@ -286,7 +290,7 @@ class MessagePort : public HandleWrap {
286
290
  // NULL pointer to the C++ MessagePort object is also detached.
287
291
  inline bool IsDetached() const;
288
292
 
289
- TransferMode GetTransferMode() const override;
293
+ BaseObject::TransferMode GetTransferMode() const override;
290
294
  std::unique_ptr<TransferData> TransferForMessaging() override;
291
295
 
292
296
  void MemoryInfo(MemoryTracker* tracker) const override;
@@ -315,20 +319,28 @@ class MessagePort : public HandleWrap {
315
319
  friend class MessagePortData;
316
320
  };
317
321
 
318
- // Provide a base class from which JS classes that should be transferable or
319
- // cloneable by postMesssage() can inherit.
322
+ // Provide a wrapper class created when a built-in JS classes that being
323
+ // transferable or cloneable by postMessage().
320
324
  // See e.g. FileHandle in internal/fs/promises.js for an example.
321
325
  class JSTransferable : public BaseObject {
322
326
  public:
323
- JSTransferable(Environment* env, v8::Local<v8::Object> obj);
324
- static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
325
-
326
- TransferMode GetTransferMode() const override;
327
+ static BaseObjectPtr<JSTransferable> Wrap(Environment* env,
328
+ v8::Local<v8::Object> target);
329
+ static bool IsJSTransferable(Environment* env,
330
+ v8::Local<v8::Context> context,
331
+ v8::Local<v8::Object> object);
332
+
333
+ JSTransferable(Environment* env,
334
+ v8::Local<v8::Object> obj,
335
+ v8::Local<v8::Object> target);
336
+ ~JSTransferable();
337
+
338
+ BaseObject::TransferMode GetTransferMode() const override;
327
339
  std::unique_ptr<TransferData> TransferForMessaging() override;
328
340
  std::unique_ptr<TransferData> CloneForMessaging() const override;
329
341
  v8::Maybe<std::vector<BaseObjectPtr<BaseObject>>>
330
342
  NestedTransferables() const override;
331
- v8::Maybe<bool> FinalizeTransferRead(
343
+ v8::Maybe<void> FinalizeTransferRead(
332
344
  v8::Local<v8::Context> context,
333
345
  v8::ValueDeserializer* deserializer) override;
334
346
 
@@ -336,8 +348,13 @@ class JSTransferable : public BaseObject {
336
348
  SET_MEMORY_INFO_NAME(JSTransferable)
337
349
  SET_SELF_SIZE(JSTransferable)
338
350
 
351
+ v8::Local<v8::Object> target() const;
352
+
339
353
  private:
340
- std::unique_ptr<TransferData> TransferOrClone(TransferMode mode) const;
354
+ template <TransferMode mode>
355
+ std::unique_ptr<TransferData> TransferOrClone() const;
356
+
357
+ v8::Global<v8::Object> target_;
341
358
 
342
359
  class Data : public TransferData {
343
360
  public:
@@ -362,7 +379,7 @@ class JSTransferable : public BaseObject {
362
379
  };
363
380
 
364
381
  v8::Local<v8::FunctionTemplate> GetMessagePortConstructorTemplate(
365
- Environment* env);
382
+ IsolateData* isolate_data);
366
383
 
367
384
  } // namespace worker
368
385
  } // namespace node