@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
@@ -54,19 +54,19 @@ void* NgLibMemoryManager<Class, T>::ReallocImpl(void* ptr,
54
54
  if (mem != nullptr) {
55
55
  // Adjust the memory info counter.
56
56
  // TODO(addaleax): Avoid the double bookkeeping we do with
57
- // current_nghttp2_memory_ + AdjustAmountOfExternalAllocatedMemory
57
+ // current_nghttp2_memory_ + ExternalMemoryAccounter
58
58
  // and provide versions of our memory allocation utilities that take an
59
59
  // Environment*/Isolate* parameter and call the V8 method transparently.
60
60
  const int64_t new_size = size - previous_size;
61
61
  manager->IncreaseAllocatedSize(new_size);
62
- manager->env()->isolate()->AdjustAmountOfExternalAllocatedMemory(
63
- new_size);
62
+ manager->env()->external_memory_accounter()->Increase(
63
+ manager->env()->isolate(), new_size);
64
64
  *reinterpret_cast<size_t*>(mem) = size;
65
65
  mem += sizeof(size_t);
66
66
  } else if (size == 0) {
67
67
  manager->DecreaseAllocatedSize(previous_size);
68
- manager->env()->isolate()->AdjustAmountOfExternalAllocatedMemory(
69
- -static_cast<int64_t>(previous_size));
68
+ manager->env()->external_memory_accounter()->Decrease(
69
+ manager->env()->isolate(), previous_size);
70
70
  }
71
71
  return mem;
72
72
  }
@@ -99,8 +99,8 @@ void NgLibMemoryManager<Class, T>::StopTrackingMemory(void* ptr) {
99
99
  static_cast<char*>(ptr) - sizeof(size_t));
100
100
  Class* manager = static_cast<Class*>(this);
101
101
  manager->DecreaseAllocatedSize(*original_ptr);
102
- manager->env()->isolate()->AdjustAmountOfExternalAllocatedMemory(
103
- -static_cast<int64_t>(*original_ptr));
102
+ manager->env()->external_memory_accounter()->Decrease(
103
+ manager->env()->isolate(), *original_ptr);
104
104
  *original_ptr = 0;
105
105
  }
106
106
 
@@ -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
  };
@@ -257,7 +261,6 @@ class MessagePort : public HandleWrap {
257
261
  static void PostMessage(const v8::FunctionCallbackInfo<v8::Value>& args);
258
262
  static void Start(const v8::FunctionCallbackInfo<v8::Value>& args);
259
263
  static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args);
260
- static void CheckType(const v8::FunctionCallbackInfo<v8::Value>& args);
261
264
  static void Drain(const v8::FunctionCallbackInfo<v8::Value>& args);
262
265
  static void ReceiveMessage(const v8::FunctionCallbackInfo<v8::Value>& args);
263
266
 
@@ -286,7 +289,7 @@ class MessagePort : public HandleWrap {
286
289
  // NULL pointer to the C++ MessagePort object is also detached.
287
290
  inline bool IsDetached() const;
288
291
 
289
- TransferMode GetTransferMode() const override;
292
+ BaseObject::TransferMode GetTransferMode() const override;
290
293
  std::unique_ptr<TransferData> TransferForMessaging() override;
291
294
 
292
295
  void MemoryInfo(MemoryTracker* tracker) const override;
@@ -315,20 +318,28 @@ class MessagePort : public HandleWrap {
315
318
  friend class MessagePortData;
316
319
  };
317
320
 
318
- // Provide a base class from which JS classes that should be transferable or
319
- // cloneable by postMesssage() can inherit.
321
+ // Provide a wrapper class created when a built-in JS classes that being
322
+ // transferable or cloneable by postMessage().
320
323
  // See e.g. FileHandle in internal/fs/promises.js for an example.
321
324
  class JSTransferable : public BaseObject {
322
325
  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;
326
+ static BaseObjectPtr<JSTransferable> Wrap(Environment* env,
327
+ v8::Local<v8::Object> target);
328
+ static bool IsJSTransferable(Environment* env,
329
+ v8::Local<v8::Context> context,
330
+ v8::Local<v8::Object> object);
331
+
332
+ JSTransferable(Environment* env,
333
+ v8::Local<v8::Object> obj,
334
+ v8::Local<v8::Object> target);
335
+ ~JSTransferable();
336
+
337
+ BaseObject::TransferMode GetTransferMode() const override;
327
338
  std::unique_ptr<TransferData> TransferForMessaging() override;
328
339
  std::unique_ptr<TransferData> CloneForMessaging() const override;
329
340
  v8::Maybe<std::vector<BaseObjectPtr<BaseObject>>>
330
341
  NestedTransferables() const override;
331
- v8::Maybe<bool> FinalizeTransferRead(
342
+ v8::Maybe<void> FinalizeTransferRead(
332
343
  v8::Local<v8::Context> context,
333
344
  v8::ValueDeserializer* deserializer) override;
334
345
 
@@ -336,8 +347,13 @@ class JSTransferable : public BaseObject {
336
347
  SET_MEMORY_INFO_NAME(JSTransferable)
337
348
  SET_SELF_SIZE(JSTransferable)
338
349
 
350
+ v8::Local<v8::Object> target() const;
351
+
339
352
  private:
340
- std::unique_ptr<TransferData> TransferOrClone(TransferMode mode) const;
353
+ template <TransferMode mode>
354
+ std::unique_ptr<TransferData> TransferOrClone() const;
355
+
356
+ v8::Global<v8::Object> target_;
341
357
 
342
358
  class Data : public TransferData {
343
359
  public:
@@ -362,7 +378,7 @@ class JSTransferable : public BaseObject {
362
378
  };
363
379
 
364
380
  v8::Local<v8::FunctionTemplate> GetMessagePortConstructorTemplate(
365
- Environment* env);
381
+ IsolateData* isolate_data);
366
382
 
367
383
  } // namespace worker
368
384
  } // namespace node
@@ -3,11 +3,16 @@
3
3
 
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
+ #include <array>
6
7
  #include <string>
8
+ #include <utility>
7
9
  #include "node_version.h"
8
10
 
9
11
  #if HAVE_OPENSSL
10
12
  #include <openssl/crypto.h>
13
+ #if NODE_OPENSSL_HAS_QUIC
14
+ #include <openssl/quic.h>
15
+ #endif
11
16
  #endif // HAVE_OPENSSL
12
17
 
13
18
  namespace node {
@@ -24,20 +29,42 @@ namespace node {
24
29
  #define NODE_HAS_RELEASE_URLS
25
30
  #endif
26
31
 
32
+ #if HAVE_AMARO && !defined(NODE_SHARED_BUILTIN_AMARO_DIST_INDEX_PATH)
33
+ #define NODE_VERSIONS_KEY_AMARO(V) V(amaro)
34
+ #else
35
+ #define NODE_VERSIONS_KEY_AMARO(V)
36
+ #endif
37
+
38
+ #ifndef NODE_SHARED_BUILTIN_UNDICI_UNDICI_PATH
39
+ #define NODE_VERSIONS_KEY_UNDICI(V) V(undici)
40
+ #else
41
+ #define NODE_VERSIONS_KEY_UNDICI(V)
42
+ #endif
43
+
27
44
  #define NODE_VERSIONS_KEYS_BASE(V) \
28
45
  V(node) \
29
46
  V(v8) \
30
47
  V(uv) \
31
48
  V(zlib) \
32
49
  V(brotli) \
50
+ V(zstd) \
33
51
  V(ares) \
34
52
  V(modules) \
35
53
  V(nghttp2) \
36
54
  V(napi) \
37
55
  V(llhttp) \
56
+ V(uvwasi) \
57
+ V(acorn) \
58
+ V(simdjson) \
59
+ V(simdutf) \
60
+ V(ada) \
61
+ V(nbytes) \
62
+ NODE_VERSIONS_KEY_AMARO(V) \
63
+ NODE_VERSIONS_KEY_UNDICI(V) \
64
+ V(cjs_module_lexer)
38
65
 
39
66
  #if HAVE_OPENSSL
40
- #define NODE_VERSIONS_KEY_CRYPTO(V) V(openssl)
67
+ #define NODE_VERSIONS_KEY_CRYPTO(V) V(openssl) V(ncrypto)
41
68
  #else
42
69
  #define NODE_VERSIONS_KEY_CRYPTO(V)
43
70
  #endif
@@ -60,11 +87,22 @@ namespace node {
60
87
  #define NODE_VERSIONS_KEY_QUIC(V)
61
88
  #endif
62
89
 
90
+ #if HAVE_SQLITE
91
+ #define NODE_VERSIONS_KEY_SQLITE(V) V(sqlite)
92
+ #else
93
+ #define NODE_VERSIONS_KEY_SQLITE(V)
94
+ #endif
95
+
63
96
  #define NODE_VERSIONS_KEYS(V) \
64
97
  NODE_VERSIONS_KEYS_BASE(V) \
65
98
  NODE_VERSIONS_KEY_CRYPTO(V) \
66
99
  NODE_VERSIONS_KEY_INTL(V) \
67
- NODE_VERSIONS_KEY_QUIC(V)
100
+ NODE_VERSIONS_KEY_QUIC(V) \
101
+ NODE_VERSIONS_KEY_SQLITE(V)
102
+
103
+ #define V(key) +1
104
+ constexpr int NODE_VERSIONS_KEY_COUNT = NODE_VERSIONS_KEYS(V);
105
+ #undef V
68
106
 
69
107
  class Metadata {
70
108
  public:
@@ -86,6 +124,10 @@ class Metadata {
86
124
  #define V(key) std::string key;
87
125
  NODE_VERSIONS_KEYS(V)
88
126
  #undef V
127
+
128
+ std::array<std::pair<std::string_view, std::string_view>,
129
+ NODE_VERSIONS_KEY_COUNT>
130
+ pairs() const;
89
131
  };
90
132
 
91
133
  struct Release {
@@ -0,0 +1,93 @@
1
+ #ifndef SRC_NODE_MODULES_H_
2
+ #define SRC_NODE_MODULES_H_
3
+
4
+ #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
+
6
+ #include "node.h"
7
+ #include "node_snapshotable.h"
8
+ #include "simdjson.h"
9
+ #include "util.h"
10
+ #include "v8-fast-api-calls.h"
11
+ #include "v8.h"
12
+
13
+ #include <filesystem>
14
+ #include <optional>
15
+ #include <string>
16
+ #include <string_view>
17
+ #include <unordered_map>
18
+
19
+ namespace node {
20
+ class ExternalReferenceRegistry;
21
+
22
+ namespace modules {
23
+
24
+ class BindingData : public SnapshotableObject {
25
+ public:
26
+ using InternalFieldInfo = InternalFieldInfoBase;
27
+
28
+ struct PackageConfig {
29
+ std::string file_path;
30
+ std::optional<std::string> name;
31
+ std::optional<std::string> main;
32
+ std::string type = "none";
33
+ std::optional<std::string> exports;
34
+ std::optional<std::string> imports;
35
+ std::optional<std::string> scripts;
36
+ std::string raw_json;
37
+
38
+ v8::Local<v8::Array> Serialize(Realm* realm) const;
39
+ };
40
+
41
+ struct ErrorContext {
42
+ std::optional<std::string> base;
43
+ std::string specifier;
44
+ bool is_esm;
45
+ };
46
+
47
+ BindingData(Realm* realm,
48
+ v8::Local<v8::Object> obj,
49
+ InternalFieldInfo* info = nullptr);
50
+ SERIALIZABLE_OBJECT_METHODS()
51
+ SET_BINDING_ID(modules_binding_data)
52
+
53
+ void MemoryInfo(MemoryTracker* tracker) const override;
54
+ SET_SELF_SIZE(BindingData)
55
+ SET_MEMORY_INFO_NAME(BindingData)
56
+
57
+ static void ReadPackageJSON(const v8::FunctionCallbackInfo<v8::Value>& args);
58
+ static void GetNearestParentPackageJSON(
59
+ const v8::FunctionCallbackInfo<v8::Value>& args);
60
+ static void GetNearestParentPackageJSONType(
61
+ const v8::FunctionCallbackInfo<v8::Value>& args);
62
+ template <bool return_only_type>
63
+ static void GetPackageScopeConfig(
64
+ const v8::FunctionCallbackInfo<v8::Value>& args);
65
+ static void GetPackageJSONScripts(
66
+ const v8::FunctionCallbackInfo<v8::Value>& args);
67
+
68
+ static void CreatePerIsolateProperties(IsolateData* isolate_data,
69
+ v8::Local<v8::ObjectTemplate> ctor);
70
+ static void CreatePerContextProperties(v8::Local<v8::Object> target,
71
+ v8::Local<v8::Value> unused,
72
+ v8::Local<v8::Context> context,
73
+ void* priv);
74
+ static void RegisterExternalReferences(ExternalReferenceRegistry* registry);
75
+
76
+ private:
77
+ std::unordered_map<std::string, PackageConfig> package_configs_;
78
+ simdjson::ondemand::parser json_parser;
79
+ // returns null on error
80
+ static const PackageConfig* GetPackageJSON(
81
+ Realm* realm,
82
+ std::string_view path,
83
+ ErrorContext* error_context = nullptr);
84
+ static const PackageConfig* TraverseParent(
85
+ Realm* realm, const std::filesystem::path& check_path);
86
+ };
87
+
88
+ } // namespace modules
89
+ } // namespace node
90
+
91
+ #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
92
+
93
+ #endif // SRC_NODE_MODULES_H_
@@ -3,7 +3,9 @@
3
3
 
4
4
  #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5
5
 
6
+ #include <algorithm>
6
7
  #include <cstdlib>
8
+ #include <ranges>
7
9
  #include "node_options.h"
8
10
  #include "util.h"
9
11
 
@@ -17,103 +19,140 @@ EnvironmentOptions* PerIsolateOptions::get_per_env_options() {
17
19
  return per_env.get();
18
20
  }
19
21
 
22
+ std::shared_ptr<PerIsolateOptions> PerIsolateOptions::Clone() const {
23
+ auto options =
24
+ std::shared_ptr<PerIsolateOptions>(new PerIsolateOptions(*this));
25
+ options->per_env = std::make_shared<EnvironmentOptions>(*per_env);
26
+ return options;
27
+ }
28
+
20
29
  namespace options_parser {
21
30
 
22
31
  template <typename Options>
23
32
  void OptionsParser<Options>::AddOption(const char* name,
24
33
  const char* help_text,
25
- bool Options::* field,
34
+ bool Options::*field,
26
35
  OptionEnvvarSettings env_setting,
27
- bool default_is_true) {
36
+ bool default_is_true,
37
+ OptionNamespaces namespace_id) {
28
38
  options_.emplace(name,
29
39
  OptionInfo{kBoolean,
30
40
  std::make_shared<SimpleOptionField<bool>>(field),
31
41
  env_setting,
32
42
  help_text,
33
- default_is_true});
43
+ default_is_true,
44
+ NamespaceEnumToString(namespace_id)});
34
45
  }
35
46
 
36
47
  template <typename Options>
37
48
  void OptionsParser<Options>::AddOption(const char* name,
38
49
  const char* help_text,
39
- uint64_t Options::* field,
40
- OptionEnvvarSettings env_setting) {
50
+ uint64_t Options::*field,
51
+ OptionEnvvarSettings env_setting,
52
+ OptionNamespaces namespace_id) {
41
53
  options_.emplace(
42
54
  name,
43
55
  OptionInfo{kUInteger,
44
56
  std::make_shared<SimpleOptionField<uint64_t>>(field),
45
57
  env_setting,
46
- help_text});
58
+ help_text,
59
+ false,
60
+ NamespaceEnumToString(namespace_id)});
47
61
  }
48
62
 
49
63
  template <typename Options>
50
64
  void OptionsParser<Options>::AddOption(const char* name,
51
65
  const char* help_text,
52
- int64_t Options::* field,
53
- OptionEnvvarSettings env_setting) {
66
+ int64_t Options::*field,
67
+ OptionEnvvarSettings env_setting,
68
+ OptionNamespaces namespace_id) {
54
69
  options_.emplace(
55
70
  name,
56
71
  OptionInfo{kInteger,
57
72
  std::make_shared<SimpleOptionField<int64_t>>(field),
58
73
  env_setting,
59
- help_text});
74
+ help_text,
75
+ false,
76
+ NamespaceEnumToString(namespace_id)});
60
77
  }
61
78
 
62
79
  template <typename Options>
63
80
  void OptionsParser<Options>::AddOption(const char* name,
64
81
  const char* help_text,
65
- std::string Options::* field,
66
- OptionEnvvarSettings env_setting) {
82
+ std::string Options::*field,
83
+ OptionEnvvarSettings env_setting,
84
+ OptionNamespaces namespace_id) {
67
85
  options_.emplace(
68
86
  name,
69
87
  OptionInfo{kString,
70
88
  std::make_shared<SimpleOptionField<std::string>>(field),
71
89
  env_setting,
72
- help_text});
90
+ help_text,
91
+ false,
92
+ NamespaceEnumToString(namespace_id)});
73
93
  }
74
94
 
75
95
  template <typename Options>
76
- void OptionsParser<Options>::AddOption(
77
- const char* name,
78
- const char* help_text,
79
- std::vector<std::string> Options::* field,
80
- OptionEnvvarSettings env_setting) {
81
- options_.emplace(name, OptionInfo {
82
- kStringList,
83
- std::make_shared<SimpleOptionField<std::vector<std::string>>>(field),
84
- env_setting,
85
- help_text
86
- });
96
+ void OptionsParser<Options>::AddOption(const char* name,
97
+ const char* help_text,
98
+ std::vector<std::string> Options::*field,
99
+ OptionEnvvarSettings env_setting,
100
+ OptionNamespaces namespace_id) {
101
+ options_.emplace(
102
+ name,
103
+ OptionInfo{
104
+ kStringList,
105
+ std::make_shared<SimpleOptionField<std::vector<std::string>>>(field),
106
+ env_setting,
107
+ help_text,
108
+ false,
109
+ NamespaceEnumToString(namespace_id)});
87
110
  }
88
111
 
89
112
  template <typename Options>
90
113
  void OptionsParser<Options>::AddOption(const char* name,
91
114
  const char* help_text,
92
- HostPort Options::* field,
93
- OptionEnvvarSettings env_setting) {
115
+ HostPort Options::*field,
116
+ OptionEnvvarSettings env_setting,
117
+ OptionNamespaces namespace_id) {
94
118
  options_.emplace(
95
119
  name,
96
120
  OptionInfo{kHostPort,
97
121
  std::make_shared<SimpleOptionField<HostPort>>(field),
98
122
  env_setting,
99
- help_text});
123
+ help_text,
124
+ false,
125
+ NamespaceEnumToString(namespace_id)});
100
126
  }
101
127
 
102
128
  template <typename Options>
103
129
  void OptionsParser<Options>::AddOption(const char* name,
104
130
  const char* help_text,
105
131
  NoOp no_op_tag,
106
- OptionEnvvarSettings env_setting) {
107
- options_.emplace(name, OptionInfo{kNoOp, nullptr, env_setting, help_text});
132
+ OptionEnvvarSettings env_setting,
133
+ OptionNamespaces namespace_id) {
134
+ options_.emplace(name,
135
+ OptionInfo{kNoOp,
136
+ nullptr,
137
+ env_setting,
138
+ help_text,
139
+ false,
140
+ NamespaceEnumToString(namespace_id)});
108
141
  }
109
142
 
110
143
  template <typename Options>
111
144
  void OptionsParser<Options>::AddOption(const char* name,
112
145
  const char* help_text,
113
146
  V8Option v8_option_tag,
114
- OptionEnvvarSettings env_setting) {
147
+ OptionEnvvarSettings env_setting,
148
+ OptionNamespaces namespace_id) {
115
149
  options_.emplace(name,
116
- OptionInfo{kV8Option, nullptr, env_setting, help_text});
150
+ OptionInfo{kV8Option,
151
+ nullptr,
152
+ env_setting,
153
+ help_text,
154
+ false,
155
+ NamespaceEnumToString(namespace_id)});
117
156
  }
118
157
 
119
158
  template <typename Options>
@@ -189,7 +228,8 @@ auto OptionsParser<Options>::Convert(
189
228
  Convert(original.field, get_child),
190
229
  original.env_setting,
191
230
  original.help_text,
192
- original.default_is_true};
231
+ original.default_is_true,
232
+ original.namespace_id};
193
233
  }
194
234
 
195
235
  template <typename Options>
@@ -302,7 +342,7 @@ void OptionsParser<Options>::Parse(
302
342
  const std::string arg = args.pop_first();
303
343
 
304
344
  if (arg == "--") {
305
- if (required_env_settings == kAllowedInEnvironment)
345
+ if (required_env_settings == kAllowedInEnvvar)
306
346
  errors->push_back(NotAllowedInEnvErr("--"));
307
347
  break;
308
348
  }
@@ -374,8 +414,8 @@ void OptionsParser<Options>::Parse(
374
414
  auto it = options_.find(name);
375
415
 
376
416
  if ((it == options_.end() ||
377
- it->second.env_setting == kDisallowedInEnvironment) &&
378
- required_env_settings == kAllowedInEnvironment) {
417
+ it->second.env_setting == kDisallowedInEnvvar) &&
418
+ required_env_settings == kAllowedInEnvvar) {
379
419
  errors->push_back(NotAllowedInEnvErr(original_name));
380
420
  break;
381
421
  }
@@ -386,15 +426,16 @@ void OptionsParser<Options>::Parse(
386
426
  // Implications for negated options are defined with "--no-".
387
427
  implied_name.insert(2, "no-");
388
428
  }
389
- auto implications = implications_.equal_range(implied_name);
390
- for (auto it = implications.first; it != implications.second; ++it) {
391
- if (it->second.type == kV8Option) {
392
- v8_args->push_back(it->second.name);
393
- } else {
394
- *it->second.target_field->template Lookup<bool>(options) =
395
- it->second.target_value;
396
- }
397
- }
429
+ auto [f, l] = implications_.equal_range(implied_name);
430
+ std::ranges::for_each(std::ranges::subrange(f, l) | std::views::values,
431
+ [&](const auto& value) {
432
+ if (value.type == kV8Option) {
433
+ v8_args->push_back(value.name);
434
+ } else {
435
+ *value.target_field->template Lookup<bool>(
436
+ options) = value.target_value;
437
+ }
438
+ });
398
439
  }
399
440
 
400
441
  if (it == options_.end()) {
@@ -440,11 +481,17 @@ void OptionsParser<Options>::Parse(
440
481
  case kBoolean:
441
482
  *Lookup<bool>(info.field, options) = !is_negation;
442
483
  break;
443
- case kInteger:
484
+ case kInteger: {
485
+ // Special case to pass --stack-trace-limit down to V8.
486
+ if (name == "--stack-trace-limit") {
487
+ v8_args->push_back(arg);
488
+ }
444
489
  *Lookup<int64_t>(info.field, options) = std::atoll(value.c_str());
445
490
  break;
491
+ }
446
492
  case kUInteger:
447
- *Lookup<uint64_t>(info.field, options) = std::stoull(value);
493
+ *Lookup<uint64_t>(info.field, options) =
494
+ std::strtoull(value.c_str(), nullptr, 10);
448
495
  break;
449
496
  case kString:
450
497
  *Lookup<std::string>(info.field, options) = value;
@@ -466,7 +513,7 @@ void OptionsParser<Options>::Parse(
466
513
  UNREACHABLE();
467
514
  }
468
515
  }
469
- options->CheckOptions(errors);
516
+ options->CheckOptions(errors, orig_args);
470
517
  }
471
518
 
472
519
  } // namespace options_parser